@rtsee/ngx 0.0.38 → 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
@@ -0,0 +1,21 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { MainMenuPanels } from '../models/MainMenuState';
3
+ import * as i0 from "@angular/core";
4
+ export class ManageChatComponent {
5
+ messenger;
6
+ menuState;
7
+ onInviteContactsClicked() {
8
+ this.menuState.activePanel = MainMenuPanels.CONTACTS_SELECT;
9
+ }
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ManageChatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", 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: [""] });
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ManageChatComponent, decorators: [{
14
+ type: Component,
15
+ args: [{ selector: 'rtsee-manage-chat', 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" }]
16
+ }], propDecorators: { messenger: [{
17
+ type: Input
18
+ }], menuState: [{
19
+ type: Input
20
+ }] } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLWNoYXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvbWFpbi1tZW51L2NvbXBvbmVudHMvbWFuYWdlLWNoYXQvbWFuYWdlLWNoYXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvbWFpbi1tZW51L2NvbXBvbmVudHMvbWFuYWdlLWNoYXQvbWFuYWdlLWNoYXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFrQixjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFPekUsTUFBTSxPQUFPLG1CQUFtQjtJQUNyQixTQUFTLENBQWtCO0lBQzNCLFNBQVMsQ0FBa0I7SUFFcEMsdUJBQXVCO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQyxlQUFlLENBQUM7SUFDOUQsQ0FBQzt1R0FOVSxtQkFBbUI7MkZBQW5CLG1CQUFtQixxSENUaEMsNEtBSUE7OzJGREthLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxtQkFBbUI7OEJBS3BCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJUU2VlTWVzc2VuZ2VyIH0gZnJvbSAnQHJ0c2VlL21lc3Nlbmdlcic7XG5pbXBvcnQgeyBJTWFpbk1lbnVTdGF0ZSwgTWFpbk1lbnVQYW5lbHMgfSBmcm9tICcuLi9tb2RlbHMvTWFpbk1lbnVTdGF0ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3J0c2VlLW1hbmFnZS1jaGF0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21hbmFnZS1jaGF0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFuYWdlLWNoYXQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTWFuYWdlQ2hhdENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG1lc3NlbmdlciE6IFJUU2VlTWVzc2VuZ2VyO1xuICBASW5wdXQoKSBtZW51U3RhdGUhOiBJTWFpbk1lbnVTdGF0ZTtcblxuICBvbkludml0ZUNvbnRhY3RzQ2xpY2tlZCgpIHtcbiAgICB0aGlzLm1lbnVTdGF0ZS5hY3RpdmVQYW5lbCA9IE1haW5NZW51UGFuZWxzLkNPTlRBQ1RTX1NFTEVDVDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInJ0c2VlLW1lc3Nlbmdlci1tYW5hZ2UtY2hhdFwiPlxuICA8cD5XZSBhcmUgZ29pbmcgdG8gbWFuYWdlIGNoYXQgaGVyZTwvcD5cbiAgPGJ1dHRvbiAoY2xpY2spPVwib25JbnZpdGVDb250YWN0c0NsaWNrZWQoKVwiPkludml0ZSBDb250YWN0czwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,31 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { debounceTime } from 'rxjs/operators';
3
+ import { FormControl } from '@angular/forms';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/forms";
7
+ import * as i3 from "../../../../../common/components/preloader/preloader.component";
8
+ export class SearchComponent {
9
+ queryControl = new FormControl();
10
+ queryCtrlSub;
11
+ search;
12
+ ngOnInit() {
13
+ this.queryCtrlSub = this.queryControl.valueChanges
14
+ .pipe(debounceTime(200))
15
+ .subscribe((value) => this.search.onQueryChange(value));
16
+ }
17
+ ngOnDestroy() {
18
+ if (this.queryCtrlSub) {
19
+ this.queryCtrlSub.unsubscribe();
20
+ }
21
+ }
22
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: SearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", 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", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.PreloaderComponent, selector: "rtsee-preloader", inputs: ["diameter", "color"] }] });
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: SearchComponent, decorators: [{
26
+ type: Component,
27
+ args: [{ selector: 'rtsee-search', 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" }]
28
+ }], propDecorators: { search: [{
29
+ type: Input
30
+ }] } });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC9zcmMvbGliL2NvbXBvbmVudHMvcnRzZWUtbWVzc2VuZ2VyL21haW4tbWVudS9jb21wb25lbnRzL3NlYXJjaC9zZWFyY2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvbWFpbi1tZW51L2NvbXBvbmVudHMvc2VhcmNoL3NlYXJjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFRN0MsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFBWSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7SUFDakMsWUFBWSxDQUFnQjtJQUVuQixNQUFNLENBQXdCO0lBRXZDLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWTthQUMvQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZCLFNBQVMsQ0FBQyxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQzt1R0FoQlUsZUFBZTsyRkFBZixlQUFlLGtGQ1Y1Qix1MUJBc0JBOzsyRkRaYSxlQUFlO2tCQUozQixTQUFTOytCQUNFLGNBQWM7OEJBT2YsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSVFNlZU1lc3NlbmdlclNlYXJjaCB9IGZyb20gJ0BydHNlZS9tZXNzZW5nZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdydHNlZS1zZWFyY2gnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBxdWVyeUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgcXVlcnlDdHJsU3ViPzogU3Vic2NyaXB0aW9uO1xuXG4gIEBJbnB1dCgpIHNlYXJjaCE6IFJUU2VlTWVzc2VuZ2VyU2VhcmNoO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucXVlcnlDdHJsU3ViID0gdGhpcy5xdWVyeUNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoMjAwKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBzdHJpbmcpID0+IHRoaXMuc2VhcmNoLm9uUXVlcnlDaGFuZ2UodmFsdWUpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnF1ZXJ5Q3RybFN1Yikge1xuICAgICAgdGhpcy5xdWVyeUN0cmxTdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJydHNlZS1tZXNzZW5nZXItc2VhcmNoXCI+XG4gIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICBbZm9ybUNvbnRyb2xdPVwicXVlcnlDb250cm9sXCJcbiAgICAgICAgIGNsYXNzPVwicnRzZWUtbWVzc2VuZ2VyLXNlYXJjaC1pbnB1dFwiXG4gICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaFwiLz5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwicnRzZWUtbWVzc2VuZ2VyLXNlYXJjaC1yZXN1bHRzXCI+XG4gIDxydHNlZS1wcmVsb2FkZXIgW2RpYW1ldGVyXT1cIjUwXCIgKm5nSWY9XCJzZWFyY2guc2VhcmNoSW5Qcm9ncmVzc1wiPjwvcnRzZWUtcHJlbG9hZGVyPlxuICA8cD5DaGF0czwvcD5cbiAgPGRpdiBjbGFzcz1cInJ0c2VlLW1lc3Nlbmdlci1zZWFyY2gtcmVzdWx0cy1jaGF0c1wiPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGNoYXQgb2Ygc2VhcmNoLnJlc3VsdHMuY2hhdHNcIiBjbGFzcz1cInJ0c2VlLW1lc3Nlbmdlci1zZWFyY2gtcmVzdWx0cy1jaGF0LXdyYXBwZXJcIj5cbiAgICAgIDxwPnt7Y2hhdC5uYW1lfX08L3A+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8cD5NZXNzYWdlczwvcD5cbiAgPGRpdiBjbGFzcz1cInJ0c2VlLW1lc3Nlbmdlci1zZWFyY2gtcmVzdWx0cy1tZXNzYWdlc1wiPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IG1lc3NhZ2Ugb2Ygc2VhcmNoLnJlc3VsdHMubWVzc2FnZXNcIiBjbGFzcz1cInJ0c2VlLW1lc3Nlbmdlci1zZWFyY2gtcmVzdWx0cy1tZXNzYWdlLXdyYXBwZXJcIj5cbiAgICAgIDxwPnt7bWVzc2FnZS5jaGF0TmFtZSB8fCBtZXNzYWdlLnNlbmRlck5hbWUgfX08L3A+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,32 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { DEFAULT_MAIN_MENU_STATE, MainMenuPanels, } from './components/models/MainMenuState';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "./components/search/search.component";
6
+ import * as i3 from "./components/manage-chat/manage-chat.component";
7
+ import * as i4 from "./components/contacts-multiselect/contacts-multiselect.component";
8
+ export class MainMenuComponent {
9
+ search;
10
+ messenger;
11
+ MainMenuPanels = MainMenuPanels;
12
+ state = {
13
+ activePanel: DEFAULT_MAIN_MENU_STATE,
14
+ };
15
+ onNewGroupClicked() {
16
+ this.state.activePanel = MainMenuPanels.CONTACTS_SELECT;
17
+ }
18
+ onNewChannelClicked() {
19
+ this.state.activePanel = MainMenuPanels.MANAGE_CHAT;
20
+ }
21
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MainMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
22
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", 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", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.SearchComponent, selector: "rtsee-search", inputs: ["search"] }, { kind: "component", type: i3.ManageChatComponent, selector: "rtsee-manage-chat", inputs: ["messenger", "menuState"] }, { kind: "component", type: i4.ContactsMultiselectComponent, selector: "rtsee-contacts-multiselect", inputs: ["menuState", "search"] }] });
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MainMenuComponent, decorators: [{
25
+ type: Component,
26
+ args: [{ selector: 'rtsee-main-menu', 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" }]
27
+ }], propDecorators: { search: [{
28
+ type: Input
29
+ }], messenger: [{
30
+ type: Input
31
+ }] } });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC9zcmMvbGliL2NvbXBvbmVudHMvcnRzZWUtbWVzc2VuZ2VyL21haW4tbWVudS9tYWluLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvbWFpbi1tZW51L21haW4tbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLGNBQWMsR0FDZixNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7QUFNM0MsTUFBTSxPQUFPLGlCQUFpQjtJQUNuQixNQUFNLENBQXdCO0lBQzlCLFNBQVMsQ0FBa0I7SUFFM0IsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUV6QyxLQUFLLEdBQW1CO1FBQ3RCLFdBQVcsRUFBRSx1QkFBdUI7S0FDckMsQ0FBQztJQUVGLGlCQUFpQjtRQUNmLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQyxlQUFlLENBQUM7SUFDMUQsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUMsV0FBVyxDQUFDO0lBQ3RELENBQUM7dUdBaEJVLGlCQUFpQjsyRkFBakIsaUJBQWlCLDZHQ1o5Qix1eUNBZ0NBOzsyRkRwQmEsaUJBQWlCO2tCQUo3QixTQUFTOytCQUNFLGlCQUFpQjs4QkFJbEIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSVFNlZU1lc3NlbmdlciwgUlRTZWVNZXNzZW5nZXJTZWFyY2ggfSBmcm9tICdAcnRzZWUvbWVzc2VuZ2VyJztcbmltcG9ydCB7XG4gIERFRkFVTFRfTUFJTl9NRU5VX1NUQVRFLFxuICBJTWFpbk1lbnVTdGF0ZSxcbiAgTWFpbk1lbnVQYW5lbHMsXG59IGZyb20gJy4vY29tcG9uZW50cy9tb2RlbHMvTWFpbk1lbnVTdGF0ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3J0c2VlLW1haW4tbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYWluLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBNYWluTWVudUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHNlYXJjaCE6IFJUU2VlTWVzc2VuZ2VyU2VhcmNoO1xuICBASW5wdXQoKSBtZXNzZW5nZXIhOiBSVFNlZU1lc3NlbmdlcjtcblxuICByZWFkb25seSBNYWluTWVudVBhbmVscyA9IE1haW5NZW51UGFuZWxzO1xuXG4gIHN0YXRlOiBJTWFpbk1lbnVTdGF0ZSA9IHtcbiAgICBhY3RpdmVQYW5lbDogREVGQVVMVF9NQUlOX01FTlVfU1RBVEUsXG4gIH07XG5cbiAgb25OZXdHcm91cENsaWNrZWQoKSB7XG4gICAgdGhpcy5zdGF0ZS5hY3RpdmVQYW5lbCA9IE1haW5NZW51UGFuZWxzLkNPTlRBQ1RTX1NFTEVDVDtcbiAgfVxuXG4gIG9uTmV3Q2hhbm5lbENsaWNrZWQoKSB7XG4gICAgdGhpcy5zdGF0ZS5hY3RpdmVQYW5lbCA9IE1haW5NZW51UGFuZWxzLk1BTkFHRV9DSEFUO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicnRzZWUtbWVzc2VuZ2VyLW1haW4tbWVudVwiPlxuICA8ZGl2IGNsYXNzPVwicnRzZWUtbWVzc2VuZ2VyLW1haW4tbWVudS1ob21lXCIgKm5nSWY9XCJzdGF0ZS5hY3RpdmVQYW5lbCA9PT0gTWFpbk1lbnVQYW5lbHMuSE9NRVwiPlxuICAgIDx1bCBjbGFzcz1cInJ0c2VlLW1lc3Nlbmdlci1jb250cm9sc1wiPlxuICAgICAgPGxpPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicnRzZWUtbWVzc2VuZ2VyLWNvbnRyb2wtaXRlbVwiIChjbGljayk9XCJvbk5ld0dyb3VwQ2xpY2tlZCgpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJ0c2VlLW1lc3Nlbmdlci1jb250cm9sLWljb25cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj5wZW9wbGU8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHNwYW4+TmV3IEdyb3VwPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbGk+XG4gICAgICA8bGk+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJydHNlZS1tZXNzZW5nZXItY29udHJvbC1pdGVtXCIgKGNsaWNrKT1cIm9uTmV3Q2hhbm5lbENsaWNrZWQoKVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJydHNlZS1tZXNzZW5nZXItY29udHJvbC1pY29uXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkXCI+Y2FtcGFpZ248L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHNwYW4+TmV3IENoYW5uZWw8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICAgIDxydHNlZS1zZWFyY2ggW3NlYXJjaF09XCJzZWFyY2hcIiA+PC9ydHNlZS1zZWFyY2g+XG4gIDwvZGl2PlxuXG4gIDxydHNlZS1tYW5hZ2UtY2hhdCAqbmdJZj1cInN0YXRlLmFjdGl2ZVBhbmVsID09PSBNYWluTWVudVBhbmVscy5NQU5BR0VfQ0hBVFwiXG4gICAgICAgICAgICAgICAgICAgICBbbWVzc2VuZ2VyXT1cIm1lc3NlbmdlclwiXG4gICAgICAgICAgICAgICAgICAgICBbbWVudVN0YXRlXT1cInN0YXRlXCJcbiAgPjwvcnRzZWUtbWFuYWdlLWNoYXQ+XG4gIDxydHNlZS1jb250YWN0cy1tdWx0aXNlbGVjdCBbc2VhcmNoXT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWVudVN0YXRlXT1cInN0YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic3RhdGUuYWN0aXZlUGFuZWwgPT09IE1haW5NZW51UGFuZWxzLkNPTlRBQ1RTX1NFTEVDVFwiXG4gID48L3J0c2VlLWNvbnRhY3RzLW11bHRpc2VsZWN0PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,24 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../../../../services/time-format-helper.service";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "../../../../../common/components/preloader/preloader.component";
6
+ export class MessageTimeAndStatusComponent {
7
+ timeFormatService;
8
+ message;
9
+ hideStatus;
10
+ constructor(timeFormatService) {
11
+ this.timeFormatService = timeFormatService;
12
+ }
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessageTimeAndStatusComponent, deps: [{ token: i1.TimeFormatHelperService }], target: i0.ɵɵFactoryTarget.Component });
14
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", 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", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PreloaderComponent, selector: "rtsee-preloader", inputs: ["diameter", "color"] }] });
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessageTimeAndStatusComponent, decorators: [{
17
+ type: Component,
18
+ args: [{ selector: 'rtsee-message-time-and-status', 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" }]
19
+ }], ctorParameters: function () { return [{ type: i1.TimeFormatHelperService }]; }, propDecorators: { message: [{
20
+ type: Input
21
+ }], hideStatus: [{
22
+ type: Input
23
+ }] } });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS10aW1lLWFuZC1zdGF0dXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvbWVzc2FnZS9jb21wb25lbnRzL21lc3NhZ2UtdGltZS1hbmQtc3RhdHVzL21lc3NhZ2UtdGltZS1hbmQtc3RhdHVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC9zcmMvbGliL2NvbXBvbmVudHMvcnRzZWUtbWVzc2VuZ2VyL21lc3NhZ2UvY29tcG9uZW50cy9tZXNzYWdlLXRpbWUtYW5kLXN0YXR1cy9tZXNzYWdlLXRpbWUtYW5kLXN0YXR1cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFTakQsTUFBTSxPQUFPLDZCQUE2QjtJQUdyQjtJQUZWLE9BQU8sQ0FBb0M7SUFDM0MsVUFBVSxDQUFXO0lBQzlCLFlBQW1CLGlCQUEwQztRQUExQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXlCO0lBQUcsQ0FBQzt1R0FIdEQsNkJBQTZCOzJGQUE3Qiw2QkFBNkIsK0hDVDFDLDJ1QkFTQTs7MkZEQWEsNkJBQTZCO2tCQUp6QyxTQUFTOytCQUNFLCtCQUErQjs4R0FJaEMsT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSVFNlZU1lc3NhZ2UgfSBmcm9tICdAcnRzZWUvbWVzc2VuZ2VyJztcbmltcG9ydCB7IElNZXNzYWdlVGh1bWJuYWlsIH0gZnJvbSAnQHJ0c2VlL2NvbW1vbic7XG5pbXBvcnQgeyBUaW1lRm9ybWF0SGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzL3RpbWUtZm9ybWF0LWhlbHBlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnRzZWUtbWVzc2FnZS10aW1lLWFuZC1zdGF0dXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVzc2FnZS10aW1lLWFuZC1zdGF0dXMuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdlVGltZUFuZFN0YXR1c0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG1lc3NhZ2UhOiBSVFNlZU1lc3NhZ2UgfCBJTWVzc2FnZVRodW1ibmFpbDtcbiAgQElucHV0KCkgaGlkZVN0YXR1cz86IGJvb2xlYW47XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0aW1lRm9ybWF0U2VydmljZTogVGltZUZvcm1hdEhlbHBlclNlcnZpY2UpIHt9XG59XG4iLCI8ZGl2IGNsYXNzPVwicnRzZWUtbWVzc2VuZ2VyLW1lc3NhZ2UtdGltZS1hbmQtc3RhdHVzXCI+XG4gIDxzcGFuIGNsYXNzPVwicnRzZWUtbWVzc2VuZ2VyLW1lc3NhZ2Utc3RhdHVzXCIgKm5nSWY9XCIhaGlkZVN0YXR1c1wiPlxuICAgIDxzcGFuICpuZ0lmPVwibWVzc2FnZS5zdGF0dXMgPT09ICdwZW5kaW5nJ1wiPjxydHNlZS1wcmVsb2FkZXIgW2RpYW1ldGVyXT1cIjVcIj48L3J0c2VlLXByZWxvYWRlcj48L3NwYW4+XG4gICAgPHNwYW4gKm5nSWY9XCJtZXNzYWdlLnN0YXR1cyA9PT0gJ3NlbnQnXCIgY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZCBydHNlZS1tZXNzYWdlLXNlbnQtc3RhdHVzXCI+Y2hlY2s8L3NwYW4+XG4gICAgPHNwYW4gKm5nSWY9XCJtZXNzYWdlLnN0YXR1cyA9PT0gJ2RlbGl2ZXJlZCdcIiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkIHJ0c2VlLW1lc3NhZ2UtZGVsaXZlcmVkLXN0YXR1c1wiPmNoZWNrPC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwibWVzc2FnZS5zdGF0dXMgPT09ICdzZWVuJ1wiIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWQgcnRzZWUtbWVzc2FnZS1zZWVuLXN0YXR1c1wiPmRvbmVfYWxsPC9zcGFuPlxuICA8L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwicnRzZWUtbWVzc2VuZ2VyLW1lc3NhZ2UtdGltZVwiPnt7dGltZUZvcm1hdFNlcnZpY2UuZm9ybWF0VGltZU9yRGF0ZShtZXNzYWdlLmNyZWF0ZWRBdCl9fTwvc3Bhbj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,58 @@
1
+ import { Component, Input, ViewChild, } from '@angular/core';
2
+ import { WidgetDirective } from '../../../directives/widget.directive';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../../services/message-widgets.service";
5
+ import * as i2 from "../../../services/time-format-helper.service";
6
+ import * as i3 from "@angular/common";
7
+ import * as i4 from "../../../directives/widget.directive";
8
+ import * as i5 from "./components/message-time-and-status/message-time-and-status.component";
9
+ export class MessageComponent {
10
+ widgetsService;
11
+ componentFactoryResolver;
12
+ timeFormatService;
13
+ chat;
14
+ message;
15
+ member;
16
+ messenger;
17
+ widgetHost;
18
+ constructor(widgetsService, componentFactoryResolver, timeFormatService) {
19
+ this.widgetsService = widgetsService;
20
+ this.componentFactoryResolver = componentFactoryResolver;
21
+ this.timeFormatService = timeFormatService;
22
+ }
23
+ ngAfterViewInit() {
24
+ /* eslint-disable */
25
+ if (this.message.widget) {
26
+ const widget = this.widgetsService.getWidgetComponentByName(this.message.widget);
27
+ if (!widget) {
28
+ return;
29
+ }
30
+ const viewContainerRef = this.widgetHost.viewContainerRef;
31
+ viewContainerRef.clear();
32
+ const componentToShow = this.componentFactoryResolver.resolveComponentFactory(widget);
33
+ const componentRef = viewContainerRef.createComponent(componentToShow);
34
+ componentRef.instance.message = this.message;
35
+ componentRef.instance.messenger = this.messenger;
36
+ componentRef.changeDetectorRef.detectChanges();
37
+ }
38
+ /* eslint-enable */
39
+ }
40
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessageComponent, deps: [{ token: i1.MessageWidgetsService }, { token: i0.ComponentFactoryResolver }, { token: i2.TimeFormatHelperService }], target: i0.ɵɵFactoryTarget.Component });
41
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", 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.id === 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.id !== messenger.clientId\"\n ></rtsee-message-time-and-status>\n </div>\n </div>\n <div class=\"message-tail\"></div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.WidgetDirective, selector: "[widgetHost]" }, { kind: "component", type: i5.MessageTimeAndStatusComponent, selector: "rtsee-message-time-and-status", inputs: ["message", "hideStatus"] }] });
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessageComponent, decorators: [{
44
+ type: Component,
45
+ args: [{ selector: 'rtsee-message', template: "<div class=\"rtsee-messenger-message-container\" #rtsMessageContainer\n [ngClass]=\"{'rtsee-message-from-me': message.from.id === 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.id !== messenger.clientId\"\n ></rtsee-message-time-and-status>\n </div>\n </div>\n <div class=\"message-tail\"></div>\n</div>\n" }]
46
+ }], ctorParameters: function () { return [{ type: i1.MessageWidgetsService }, { type: i0.ComponentFactoryResolver }, { type: i2.TimeFormatHelperService }]; }, propDecorators: { chat: [{
47
+ type: Input
48
+ }], message: [{
49
+ type: Input
50
+ }], member: [{
51
+ type: Input
52
+ }], messenger: [{
53
+ type: Input
54
+ }], widgetHost: [{
55
+ type: ViewChild,
56
+ args: [WidgetDirective, { static: false }]
57
+ }] } });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3J0c2VlLW1lc3Nlbmdlci9tZXNzYWdlL21lc3NhZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvbWVzc2FnZS9tZXNzYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBR1QsS0FBSyxFQUNMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQVF2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7QUFPdkUsTUFBTSxPQUFPLGdCQUFnQjtJQU9qQjtJQUNBO0lBQ0Q7SUFSQSxJQUFJLENBQWE7SUFDakIsT0FBTyxDQUFnQjtJQUN2QixNQUFNLENBQXdCO0lBQzlCLFNBQVMsQ0FBa0I7SUFDVyxVQUFVLENBQW1CO0lBQzVFLFlBQ1UsY0FBcUMsRUFDckMsd0JBQWtELEVBQ25ELGlCQUEwQztRQUZ6QyxtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDckMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNuRCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXlCO0lBQ2hELENBQUM7SUFFSixlQUFlO1FBQ2Isb0JBQW9CO1FBQ3BCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDdkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FDekQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQ3BCLENBQUM7WUFDRixJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNYLE9BQU87YUFDUjtZQUNELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztZQUMxRCxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN6QixNQUFNLGVBQWUsR0FDbkIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sWUFBWSxHQUNoQixnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDcEQsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUM3QyxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2pELFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUNoRDtRQUNELG1CQUFtQjtJQUNyQixDQUFDO3VHQWhDVSxnQkFBZ0I7MkZBQWhCLGdCQUFnQix5TEFLaEIsZUFBZSxnREMzQjVCLHNzQkFnQkE7OzJGRE1hLGdCQUFnQjtrQkFKNUIsU0FBUzsrQkFDRSxlQUFlO3lMQUloQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUN5QyxVQUFVO3NCQUF4RCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgQ29tcG9uZW50UmVmLFxuICBJbnB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFJUU2VlQ2hhdCxcbiAgUlRTZWVDaGF0TWVtYmVyLFxuICBSVFNlZU1lc3NhZ2UsXG4gIFJUU2VlTWVzc2VuZ2VyLFxufSBmcm9tICdAcnRzZWUvbWVzc2VuZ2VyJztcbmltcG9ydCB7IE1lc3NhZ2VXaWRnZXRzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21lc3NhZ2Utd2lkZ2V0cy5zZXJ2aWNlJztcbmltcG9ydCB7IFdpZGdldERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvd2lkZ2V0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUaW1lRm9ybWF0SGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RpbWUtZm9ybWF0LWhlbHBlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnRzZWUtbWVzc2FnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZXNzYWdlLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBjaGF0ITogUlRTZWVDaGF0O1xuICBASW5wdXQoKSBtZXNzYWdlITogUlRTZWVNZXNzYWdlO1xuICBASW5wdXQoKSBtZW1iZXIhOiBSVFNlZUNoYXRNZW1iZXI8YW55PjtcbiAgQElucHV0KCkgbWVzc2VuZ2VyITogUlRTZWVNZXNzZW5nZXI7XG4gIEBWaWV3Q2hpbGQoV2lkZ2V0RGlyZWN0aXZlLCB7IHN0YXRpYzogZmFsc2UgfSkgd2lkZ2V0SG9zdCE6IFdpZGdldERpcmVjdGl2ZTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB3aWRnZXRzU2VydmljZTogTWVzc2FnZVdpZGdldHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHVibGljIHRpbWVGb3JtYXRTZXJ2aWNlOiBUaW1lRm9ybWF0SGVscGVyU2VydmljZSxcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIGlmICh0aGlzLm1lc3NhZ2Uud2lkZ2V0KSB7XG4gICAgICBjb25zdCB3aWRnZXQgPSB0aGlzLndpZGdldHNTZXJ2aWNlLmdldFdpZGdldENvbXBvbmVudEJ5TmFtZShcbiAgICAgICAgdGhpcy5tZXNzYWdlLndpZGdldCxcbiAgICAgICk7XG4gICAgICBpZiAoIXdpZGdldCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmID0gdGhpcy53aWRnZXRIb3N0LnZpZXdDb250YWluZXJSZWY7XG4gICAgICB2aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgICBjb25zdCBjb21wb25lbnRUb1Nob3cgPVxuICAgICAgICB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh3aWRnZXQpO1xuICAgICAgY29uc3QgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8dHlwZW9mIHdpZGdldD4gPVxuICAgICAgICB2aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRUb1Nob3cpO1xuICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLm1lc3NhZ2UgPSB0aGlzLm1lc3NhZ2U7XG4gICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UubWVzc2VuZ2VyID0gdGhpcy5tZXNzZW5nZXI7XG4gICAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgICAvKiBlc2xpbnQtZW5hYmxlICovXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJydHNlZS1tZXNzZW5nZXItbWVzc2FnZS1jb250YWluZXJcIiAjcnRzTWVzc2FnZUNvbnRhaW5lclxuICAgICBbbmdDbGFzc109XCJ7J3J0c2VlLW1lc3NhZ2UtZnJvbS1tZSc6IG1lc3NhZ2UuZnJvbS5pZCA9PT0gbWVzc2VuZ2VyLmNsaWVudElkfVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJydHNlZS1tZXNzZW5nZXItbWVzc2FnZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cIm1lc3NhZ2Uud2lkZ2V0XCIgd2lkZ2V0SG9zdD48L25nLXRlbXBsYXRlPlxuICAgIDxwICpuZ0lmPVwiIW1lc3NhZ2Uud2lkZ2V0XCJcbiAgICAgICBjbGFzcz1cInJ0c2VlLW1lc3Nlbmdlci1tZXNzYWdlLXRleHRcIlxuICAgID57eyBtZXNzYWdlLnRleHQgfX08L3A+XG4gICAgPGRpdiBjbGFzcz1cInJ0c2VlLW1lc3Nlbmdlci1tZXNzYWdlLWluZm9cIiAjcnRzTWVzc2FnZUluZm8+XG4gICAgIDxydHNlZS1tZXNzYWdlLXRpbWUtYW5kLXN0YXR1cyBbbWVzc2FnZV09XCJtZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRlU3RhdHVzXT1cIm1lc3NhZ2UuZnJvbS5pZCAhPT0gbWVzc2VuZ2VyLmNsaWVudElkXCJcbiAgICAgPjwvcnRzZWUtbWVzc2FnZS10aW1lLWFuZC1zdGF0dXM+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibWVzc2FnZS10YWlsXCI+PC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,34 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class CallWidgetComponent {
5
+ message;
6
+ messenger;
7
+ callerName;
8
+ ngOnInit() {
9
+ if (this.messenger.clientId === this.message.data?.callerId) {
10
+ this.callerName = 'You';
11
+ }
12
+ else {
13
+ this.callerName = this.message.data?.caller?.name;
14
+ }
15
+ }
16
+ joinCall() {
17
+ if (!this.messenger || !this.message.data?.roomId) {
18
+ console.log('No Room Id specified or no messenger!');
19
+ return;
20
+ }
21
+ void this.messenger.joinCall(this.message.data.roomId);
22
+ }
23
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: CallWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
24
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", 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: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: CallWidgetComponent, decorators: [{
27
+ type: Component,
28
+ args: [{ selector: 'ngx-call-widget', 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" }]
29
+ }], propDecorators: { message: [{
30
+ type: Input
31
+ }], messenger: [{
32
+ type: Input
33
+ }] } });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbC13aWRnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvbWVzc2FnZS13aWRnZXRzL2NhbGwtd2lkZ2V0L2NhbGwtd2lkZ2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC9zcmMvbGliL2NvbXBvbmVudHMvcnRzZWUtbWVzc2VuZ2VyL21lc3NhZ2Utd2lkZ2V0cy9jYWxsLXdpZGdldC9jYWxsLXdpZGdldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7O0FBU3pELE1BQU0sT0FBTyxtQkFBbUI7SUFDckIsT0FBTyxDQUE0QjtJQUNuQyxTQUFTLENBQWtCO0lBQ3BDLFVBQVUsQ0FBVTtJQUVwQixRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDM0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7U0FDekI7YUFBTTtZQUNMLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQztTQUNuRDtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDakQsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1lBQ3JELE9BQU87U0FDUjtRQUNELEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekQsQ0FBQzt1R0FuQlUsbUJBQW1COzJGQUFuQixtQkFBbUIsK0dDVGhDLDhSQU1BOzsyRkRHYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsaUJBQWlCOzhCQUtsQixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUlRTZWVNZXNzYWdlLCBSVFNlZU1lc3NlbmdlciB9IGZyb20gJ0BydHNlZS9tZXNzZW5nZXInO1xuaW1wb3J0IHsgSVJUU2VlQ2FsbCB9IGZyb20gJ0BydHNlZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LWNhbGwtd2lkZ2V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGwtd2lkZ2V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FsbC13aWRnZXQuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDYWxsV2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbWVzc2FnZSE6IFJUU2VlTWVzc2FnZTxJUlRTZWVDYWxsPjtcbiAgQElucHV0KCkgbWVzc2VuZ2VyITogUlRTZWVNZXNzZW5nZXI7XG4gIGNhbGxlck5hbWU/OiBzdHJpbmc7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubWVzc2VuZ2VyLmNsaWVudElkID09PSB0aGlzLm1lc3NhZ2UuZGF0YT8uY2FsbGVySWQpIHtcbiAgICAgIHRoaXMuY2FsbGVyTmFtZSA9ICdZb3UnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNhbGxlck5hbWUgPSB0aGlzLm1lc3NhZ2UuZGF0YT8uY2FsbGVyPy5uYW1lO1xuICAgIH1cbiAgfVxuXG4gIGpvaW5DYWxsKCkge1xuICAgIGlmICghdGhpcy5tZXNzZW5nZXIgfHwgIXRoaXMubWVzc2FnZS5kYXRhPy5yb29tSWQpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdObyBSb29tIElkIHNwZWNpZmllZCBvciBubyBtZXNzZW5nZXIhJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZvaWQgdGhpcy5tZXNzZW5nZXIuam9pbkNhbGwodGhpcy5tZXNzYWdlLmRhdGEucm9vbUlkKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInJ0c2VlLWNhbGwtd2lkZ2V0XCI+XG4gIDxwICpuZ0lmPVwiY2FsbGVyTmFtZVwiPiB7eyBjYWxsZXJOYW1lIH19IGhhcyBzdGFydGVkIGEgY2FsbDwvcD5cbiAgPHAgKm5nSWY9XCJjYWxsZXJOYW1lID09PSAnWW91J1wiPiBZb3UgaGF2ZSBzdGFydGVkIGEgY2FsbDwvcD5cbiAgPHAgKm5nSWY9XCIhY2FsbGVyTmFtZVwiPiBUaGUgY2FsbCBoYXMgc3RhcnRlZDwvcD5cbiAgPGJ1dHRvbiAoY2xpY2spPVwiam9pbkNhbGwoKVwiPkpvaW4gQ2FsbDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,70 @@
1
+ import { Component, Input, ViewChild, } from '@angular/core';
2
+ import { RTSeeChatEvents, } from '@rtsee/messenger';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../../services/time-format-helper.service";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "ngx-infinite-scroll";
7
+ import * as i4 from "../message/message.component";
8
+ export class MessagesListComponent {
9
+ timeFormatService;
10
+ bindScrollFunction;
11
+ chat;
12
+ messenger;
13
+ scrollContainer;
14
+ constructor(timeFormatService) {
15
+ this.timeFormatService = timeFormatService;
16
+ this.bindScrollFunction = this.scrollToBottom.bind(this);
17
+ }
18
+ ngOnInit() {
19
+ this.chat.on(RTSeeChatEvents.MESSAGE_ADDED, this.bindScrollFunction);
20
+ }
21
+ ngAfterViewInit() {
22
+ this.scrollToBottom();
23
+ }
24
+ onMessageSent() {
25
+ this.scrollToBottom();
26
+ }
27
+ ngOnDestroy() {
28
+ this.chat.off(RTSeeChatEvents.MESSAGE_ADDED, this.bindScrollFunction);
29
+ }
30
+ onScrolledToTop() {
31
+ if (this.chat.messagesLoadInProgress) {
32
+ return;
33
+ }
34
+ this.chat.loadRemoteMessages('back');
35
+ }
36
+ onScroll() {
37
+ if (this.scrollContainer.nativeElement.scrollTop < 1) {
38
+ this.scrollContainer.nativeElement.scrollTop = 1;
39
+ }
40
+ }
41
+ scrollToBottom() {
42
+ if (!this.scrollContainer?.nativeElement?.scrollHeight) {
43
+ return;
44
+ }
45
+ try {
46
+ this.scrollContainer.nativeElement.scrollTop =
47
+ this.scrollContainer.nativeElement.scrollHeight;
48
+ }
49
+ catch (err) {
50
+ console.log('Failed to Scroll');
51
+ }
52
+ }
53
+ formatDate(message) {
54
+ return this.timeFormatService.formatDate(message.createdAt);
55
+ }
56
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessagesListComponent, deps: [{ token: i1.TimeFormatHelperService }], target: i0.ɵɵFactoryTarget.Component });
57
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", 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 [infiniteScrollDistance]=\"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", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i4.MessageComponent, selector: "rtsee-message", inputs: ["chat", "message", "member", "messenger"] }] });
58
+ }
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessagesListComponent, decorators: [{
60
+ type: Component,
61
+ args: [{ selector: 'rtsee-messages-list', template: "<div class=\"rtsee-messenger-messages-list\"\n #scrollBlock\n infiniteScroll\n [infiniteScrollUpDistance]=\"2\"\n [infiniteScrollDistance]=\"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" }]
62
+ }], ctorParameters: function () { return [{ type: i1.TimeFormatHelperService }]; }, propDecorators: { chat: [{
63
+ type: Input
64
+ }], messenger: [{
65
+ type: Input
66
+ }], scrollContainer: [{
67
+ type: ViewChild,
68
+ args: ['scrollBlock']
69
+ }] } });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3J0c2VlLW1lc3Nlbmdlci9tZXNzYWdlcy1saXN0L21lc3NhZ2VzLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvbWVzc2FnZXMtbGlzdC9tZXNzYWdlcy1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsS0FBSyxFQUdMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBSUwsZUFBZSxHQUNoQixNQUFNLGtCQUFrQixDQUFDOzs7Ozs7QUFPMUIsTUFBTSxPQUFPLHFCQUFxQjtJQU1aO0lBTHBCLGtCQUFrQixDQUFhO0lBRXRCLElBQUksQ0FBYTtJQUNqQixTQUFTLENBQWtCO0lBQ1YsZUFBZSxDQUE4QjtJQUN2RSxZQUFvQixpQkFBMEM7UUFBMUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF5QjtRQUM1RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFlLENBQUM7SUFDekUsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUNwQyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFFO1lBQ3BELElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7U0FDbEQ7SUFDSCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUU7WUFDdEQsT0FBTztTQUNSO1FBRUQsSUFBSTtZQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFNBQVM7Z0JBQzFDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztTQUNuRDtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1osT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUFxQjtRQUM5QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlELENBQUM7dUdBdERVLHFCQUFxQjsyRkFBckIscUJBQXFCLDZOQ3JCbEMsNnhCQW9CQTs7MkZEQ2EscUJBQXFCO2tCQUpqQyxTQUFTOytCQUNFLHFCQUFxQjs4R0FNdEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ29CLGVBQWU7c0JBQXhDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgUlRTZWVDaGF0LFxuICBSVFNlZU1lc3NlbmdlcixcbiAgUlRTZWVNZXNzYWdlLFxuICBSVFNlZUNoYXRFdmVudHMsXG59IGZyb20gJ0BydHNlZS9tZXNzZW5nZXInO1xuaW1wb3J0IHsgVGltZUZvcm1hdEhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90aW1lLWZvcm1hdC1oZWxwZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3J0c2VlLW1lc3NhZ2VzLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVzc2FnZXMtbGlzdC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIE1lc3NhZ2VzTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgYmluZFNjcm9sbEZ1bmN0aW9uOiAoKSA9PiB2b2lkO1xuXG4gIEBJbnB1dCgpIGNoYXQhOiBSVFNlZUNoYXQ7XG4gIEBJbnB1dCgpIG1lc3NlbmdlciE6IFJUU2VlTWVzc2VuZ2VyO1xuICBAVmlld0NoaWxkKCdzY3JvbGxCbG9jaycpIHNjcm9sbENvbnRhaW5lciE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRpbWVGb3JtYXRTZXJ2aWNlOiBUaW1lRm9ybWF0SGVscGVyU2VydmljZSkge1xuICAgIHRoaXMuYmluZFNjcm9sbEZ1bmN0aW9uID0gdGhpcy5zY3JvbGxUb0JvdHRvbS5iaW5kKHRoaXMpIGFzICgpID0+IHZvaWQ7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNoYXQub24oUlRTZWVDaGF0RXZlbnRzLk1FU1NBR0VfQURERUQsIHRoaXMuYmluZFNjcm9sbEZ1bmN0aW9uKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnNjcm9sbFRvQm90dG9tKCk7XG4gIH1cblxuICBvbk1lc3NhZ2VTZW50KCkge1xuICAgIHRoaXMuc2Nyb2xsVG9Cb3R0b20oKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuY2hhdC5vZmYoUlRTZWVDaGF0RXZlbnRzLk1FU1NBR0VfQURERUQsIHRoaXMuYmluZFNjcm9sbEZ1bmN0aW9uKTtcbiAgfVxuXG4gIG9uU2Nyb2xsZWRUb1RvcCgpIHtcbiAgICBpZiAodGhpcy5jaGF0Lm1lc3NhZ2VzTG9hZEluUHJvZ3Jlc3MpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jaGF0LmxvYWRSZW1vdGVNZXNzYWdlcygnYmFjaycpO1xuICB9XG5cbiAgb25TY3JvbGwoKSB7XG4gICAgaWYgKHRoaXMuc2Nyb2xsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wIDwgMSkge1xuICAgICAgdGhpcy5zY3JvbGxDb250YWluZXIubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSAxO1xuICAgIH1cbiAgfVxuXG4gIHNjcm9sbFRvQm90dG9tKCkge1xuICAgIGlmICghdGhpcy5zY3JvbGxDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQ/LnNjcm9sbEhlaWdodCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB0aGlzLnNjcm9sbENvbnRhaW5lci5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9XG4gICAgICAgIHRoaXMuc2Nyb2xsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0O1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5sb2coJ0ZhaWxlZCB0byBTY3JvbGwnKTtcbiAgICB9XG4gIH1cblxuICBmb3JtYXREYXRlKG1lc3NhZ2U6IFJUU2VlTWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLnRpbWVGb3JtYXRTZXJ2aWNlLmZvcm1hdERhdGUobWVzc2FnZS5jcmVhdGVkQXQpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicnRzZWUtbWVzc2VuZ2VyLW1lc3NhZ2VzLWxpc3RcIlxuICAgICAjc2Nyb2xsQmxvY2tcbiAgICAgaW5maW5pdGVTY3JvbGxcbiAgICAgW2luZmluaXRlU2Nyb2xsVXBEaXN0YW5jZV09XCIyXCJcbiAgICAgW2luZmluaXRlU2Nyb2xsRGlzdGFuY2VdPVwiMlwiXG4gICAgIFtpbmZpbml0ZVNjcm9sbFRocm90dGxlXT1cIjUwXCJcbiAgICAgW3Njcm9sbFdpbmRvd109XCJmYWxzZVwiXG4gICAgIChzY3JvbGxlZFVwKT1cIm9uU2Nyb2xsZWRUb1RvcCgpXCJcbiAgICAgKHNjcm9sbCk9XCJvblNjcm9sbCgpXCJcbj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBjaGF0Lm1lc3NhZ2VzOyBsZXQgaSA9IGluZGV4O1wiXG4gICAgICAgW25nQ2xhc3NdPVwieydydHNlZS1tZXNzZW5nZXItbWVzc2FnZS13cmFwcGVyLWNvbnNlY3V0aXZlJzogbWVzc2FnZS5mcm9tID09PSBjaGF0Lm1lc3NhZ2VzW2krMV0/LmZyb219XCJcbiAgICAgICBjbGFzcz1cInJ0c2VlLW1lc3Nlbmdlci1tZXNzYWdlLXdyYXBwZXJcIlxuICA+XG4gICAgPGRpdiAqbmdJZj1cIm1lc3NhZ2UuaGFzRGF0ZUNoYW5nZWRcIiBjbGFzcz1cInJ0c2VlLW1lc3Nlbmdlci1tZXNzYWdlLWRhdGVcIj5cbiAgICAgIDxzcGFuPnt7Zm9ybWF0RGF0ZShtZXNzYWdlKX19PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxydHNlZS1tZXNzYWdlIFttZXNzYWdlXT1cIm1lc3NhZ2VcIiBbbWVzc2VuZ2VyXT1cIm1lc3NlbmdlclwiIFtjaGF0XT1cImNoYXRcIj48L3J0c2VlLW1lc3NhZ2U+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,31 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "ngx-infinite-scroll";
5
+ import * as i3 from "../chat/chat.component";
6
+ import * as i4 from "../chats-list/chats-list.component";
7
+ import * as i5 from "../messenger-header/messenger-header.component";
8
+ import * as i6 from "../main-menu/main-menu.component";
9
+ import * as i7 from "../../../common/components/preloader/preloader.component";
10
+ export class MessengerComponent {
11
+ isHeaderExpanded;
12
+ messenger;
13
+ constructor() {
14
+ this.isHeaderExpanded = false;
15
+ }
16
+ onScroll() {
17
+ this.messenger.loadChats();
18
+ }
19
+ onHeaderExpandToggled(value) {
20
+ this.isHeaderExpanded = value;
21
+ }
22
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessengerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", 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", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i3.ChatComponent, selector: "rtsee-chat", inputs: ["chat", "messenger"] }, { kind: "component", type: i4.ChatsListComponent, selector: "rtsee-chats-list", inputs: ["messenger", "chats"] }, { kind: "component", type: i5.MessengerHeaderComponent, selector: "rtsee-messenger-header", inputs: ["isExpanded", "messenger"], outputs: ["expandToggled"] }, { kind: "component", type: i6.MainMenuComponent, selector: "rtsee-main-menu", inputs: ["search", "messenger"] }, { kind: "component", type: i7.PreloaderComponent, selector: "rtsee-preloader", inputs: ["diameter", "color"] }] });
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessengerComponent, decorators: [{
26
+ type: Component,
27
+ args: [{ selector: 'rtsee-messenger', 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" }]
28
+ }], ctorParameters: function () { return []; }, propDecorators: { messenger: [{
29
+ type: Input
30
+ }] } });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2VuZ2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC9zcmMvbGliL2NvbXBvbmVudHMvcnRzZWUtbWVzc2VuZ2VyL21lc3Nlbmdlci9tZXNzZW5nZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvbWVzc2VuZ2VyL21lc3Nlbmdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBT2pELE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsZ0JBQWdCLENBQVU7SUFFakIsU0FBUyxDQUFrQjtJQUNwQztRQUNFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUFjO1FBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQzt1R0FkVSxrQkFBa0I7MkZBQWxCLGtCQUFrQiwyRkNQL0IseXZDQTRCQTs7MkZEckJhLGtCQUFrQjtrQkFKOUIsU0FBUzsrQkFDRSxpQkFBaUI7MEVBTWxCLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSVFNlZU1lc3NlbmdlciB9IGZyb20gJ0BydHNlZS9tZXNzZW5nZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdydHNlZS1tZXNzZW5nZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVzc2VuZ2VyLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgTWVzc2VuZ2VyQ29tcG9uZW50IHtcbiAgaXNIZWFkZXJFeHBhbmRlZDogYm9vbGVhbjtcblxuICBASW5wdXQoKSBtZXNzZW5nZXIhOiBSVFNlZU1lc3NlbmdlcjtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pc0hlYWRlckV4cGFuZGVkID0gZmFsc2U7XG4gIH1cblxuICBvblNjcm9sbCgpIHtcbiAgICB0aGlzLm1lc3Nlbmdlci5sb2FkQ2hhdHMoKTtcbiAgfVxuXG4gIG9uSGVhZGVyRXhwYW5kVG9nZ2xlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuaXNIZWFkZXJFeHBhbmRlZCA9IHZhbHVlO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicnRzZWUtbWVzc2VuZ2VyXCIgW25nQ2xhc3NdPVwie1xuICAncnRzZWUtbWVzc2VuZ2VyLW1haW4tbWVudS1vcGVuZWQnOiBtZXNzZW5nZXIubWFpbk1lbnVPcGVuZWQsXG4gICdydHNlZS1tZXNzZW5nZXItaGVhZGVyLWV4cGFuZGVkJzogaXNIZWFkZXJFeHBhbmRlZFxufVwiPlxuICA8ZGl2IGNsYXNzPVwicnRzZWUtbWVzc2VuZ2VyLWhlYWRlci1jb250YWluZXJcIj5cbiAgICA8cnRzZWUtbWVzc2VuZ2VyLWhlYWRlciBbbWVzc2VuZ2VyXT1cIm1lc3NlbmdlclwiIChleHBhbmRUb2dnbGVkKT1cIm9uSGVhZGVyRXhwYW5kVG9nZ2xlZCgkZXZlbnQpXCI+PC9ydHNlZS1tZXNzZW5nZXItaGVhZGVyPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInJ0c2VlLW1lc3Nlbmdlci1ib2R5LWNvbnRhaW5lclwiXG4gICAgICAgaW5maW5pdGVTY3JvbGxcbiAgICAgICBbaW5maW5pdGVTY3JvbGxEaXN0YW5jZV09XCIyXCJcbiAgICAgICBbaW5maW5pdGVTY3JvbGxUaHJvdHRsZV09XCI1MFwiXG4gICAgICAgW3Njcm9sbFdpbmRvd109XCJmYWxzZVwiXG4gICAgICAgKHNjcm9sbGVkKT1cIm9uU2Nyb2xsKClcIlxuICA+XG4gICAgPHJ0c2VlLWNoYXRzLWxpc3QgKm5nSWY9XCIhbWVzc2VuZ2VyLm9wZW5lZENoYXRcIiBbY2hhdHNdPVwibWVzc2VuZ2VyLmNoYXRzXCIgW21lc3Nlbmdlcl09XCJtZXNzZW5nZXJcIj48L3J0c2VlLWNoYXRzLWxpc3Q+XG4gICAgPHJ0c2VlLWNoYXQgKm5nSWY9XCJtZXNzZW5nZXIub3BlbmVkQ2hhdFwiIFttZXNzZW5nZXJdPVwibWVzc2VuZ2VyXCIgW2NoYXRdPVwibWVzc2VuZ2VyLm9wZW5lZENoYXRcIj48L3J0c2VlLWNoYXQ+XG4gICAgPHJ0c2VlLXByZWxvYWRlciBbZGlhbWV0ZXJdPVwiNTBcIiAqbmdJZj1cIm1lc3Nlbmdlci5sb2FkaW5nQ2hhdHNJblByb2dyZXNzXCIgPjwvcnRzZWUtcHJlbG9hZGVyPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInJ0c2VlLW1lc3Nlbmdlci1tYWluLW1lbnUtY29udGFpbmVyXCI+XG4gICAgPHJ0c2VlLW1haW4tbWVudVxuICAgICAgKm5nSWY9XCJtZXNzZW5nZXIubWFpbk1lbnVPcGVuZWRcIlxuICAgICAgW3NlYXJjaF09XCJtZXNzZW5nZXIuc2VhcmNoXCJcbiAgICAgIFttZXNzZW5nZXJdPVwibWVzc2VuZ2VyXCI+PC9ydHNlZS1tYWluLW1lbnU+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicnRzZWUtbWVzc2VuZ2VyLW92ZXJsYXlcIiAoY2xpY2spPVwibWVzc2VuZ2VyLm9wZW5NYWluTWVudShmYWxzZSlcIj48L2Rpdj5cbjwvZGl2PlxuXG5cbiJdfQ==
@@ -0,0 +1,33 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../../services/default-images.service";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "../profile/profile.component";
6
+ export class MessengerHeaderComponent {
7
+ defaultImagesService;
8
+ expandToggled = new EventEmitter();
9
+ isExpanded;
10
+ messenger;
11
+ constructor(defaultImagesService) {
12
+ this.defaultImagesService = defaultImagesService;
13
+ this.isExpanded = false;
14
+ this.expandToggled.emit(this.isExpanded);
15
+ }
16
+ toggleExpand() {
17
+ this.isExpanded = !this.isExpanded;
18
+ this.expandToggled.emit(this.isExpanded);
19
+ }
20
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessengerHeaderComponent, deps: [{ token: i1.DefaultImagesService }], target: i0.ɵɵFactoryTarget.Component });
21
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", 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", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ProfileComponent, selector: "rtsee-profile", inputs: ["messenger"] }] });
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessengerHeaderComponent, decorators: [{
24
+ type: Component,
25
+ args: [{ selector: 'rtsee-messenger-header', 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" }]
26
+ }], ctorParameters: function () { return [{ type: i1.DefaultImagesService }]; }, propDecorators: { expandToggled: [{
27
+ type: Output
28
+ }], isExpanded: [{
29
+ type: Input
30
+ }], messenger: [{
31
+ type: Input
32
+ }] } });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2VuZ2VyLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3J0c2VlLW1lc3Nlbmdlci9tZXNzZW5nZXItaGVhZGVyL21lc3Nlbmdlci1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvbWVzc2VuZ2VyLWhlYWRlci9tZXNzZW5nZXItaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBUXZFLE1BQU0sT0FBTyx3QkFBd0I7SUFJaEI7SUFIVCxhQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNwQyxVQUFVLENBQVc7SUFDckIsU0FBUyxDQUFrQjtJQUNwQyxZQUFtQixvQkFBMEM7UUFBMUMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMzRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0MsQ0FBQzt1R0FaVSx3QkFBd0I7MkZBQXhCLHdCQUF3Qix5S0NSckMsMC9EQWlEQTs7MkZEekNhLHdCQUF3QjtrQkFKcEMsU0FBUzsrQkFDRSx3QkFBd0I7MkdBSXhCLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0UsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJUU2VlTWVzc2VuZ2VyIH0gZnJvbSAnQHJ0c2VlL21lc3Nlbmdlcic7XG5pbXBvcnQgeyBEZWZhdWx0SW1hZ2VzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2RlZmF1bHQtaW1hZ2VzLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdydHNlZS1tZXNzZW5nZXItaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lc3Nlbmdlci1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBNZXNzZW5nZXJIZWFkZXJDb21wb25lbnQge1xuICBAT3V0cHV0KCkgZXhwYW5kVG9nZ2xlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQElucHV0KCkgaXNFeHBhbmRlZD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIG1lc3NlbmdlciE6IFJUU2VlTWVzc2VuZ2VyO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGVmYXVsdEltYWdlc1NlcnZpY2U6IERlZmF1bHRJbWFnZXNTZXJ2aWNlKSB7XG4gICAgdGhpcy5pc0V4cGFuZGVkID0gZmFsc2U7XG4gICAgdGhpcy5leHBhbmRUb2dnbGVkLmVtaXQodGhpcy5pc0V4cGFuZGVkKTtcbiAgfVxuXG4gIHRvZ2dsZUV4cGFuZCgpIHtcbiAgICB0aGlzLmlzRXhwYW5kZWQgPSAhdGhpcy5pc0V4cGFuZGVkO1xuICAgIHRoaXMuZXhwYW5kVG9nZ2xlZC5lbWl0KHRoaXMuaXNFeHBhbmRlZCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJydHNlZS1tZXNzZW5nZXItaGVhZGVyXCJcbiAgICAgW25nQ2xhc3NdPVwie1xuICAgICAncnRzZWUtbWVzc2VuZ2VyLWhlYWRlci1jaGF0LW9wZW5lZCc6IG1lc3Nlbmdlci5vcGVuZWRDaGF0LFxuICAgICAncnRzZWUtbWVzc2VuZ2VyLWhlYWRlci1leHBhbmRlZCc6IGlzRXhwYW5kZWRcbiAgICAgIH1cIlxuPlxuICA8ZGl2IGNsYXNzPVwicnRzZWUtbWVzc2VuZ2VyLXByb2ZpbGUtaW1hZ2UtY29udGFpbmVyIFwiPlxuICAgIDxkaXYgKm5nSWY9XCIhbWVzc2VuZ2VyLm9wZW5lZENoYXRcIlxuICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdPVwiJ3VybCgnICsgbWVzc2VuZ2VyLm15UGVlcj8uaW1hZ2VVcmwgfHwgZGVmYXVsdEltYWdlc1NlcnZpY2UuUFJPRklMRSArICcpJ1wiXG4gICAgICAgICBjbGFzcz1cInJ0c2VlLW1lc3Nlbmdlci1wcm9maWxlLWltYWdlXCI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxidXR0b24gY2xhc3M9XCJydHNlZS1tZXNzZW5nZXItY2xvc2UtY2hhdFwiXG4gICAgICAgICAgKm5nSWY9XCJtZXNzZW5nZXIub3BlbmVkQ2hhdFwiXG4gICAgICAgICAgKGNsaWNrKT1cIm1lc3Nlbmdlci5jbG9zZUNoYXQoKVwiXG4gID5cbiAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkXCI+YXJyb3dfYmFjazwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cInVucmVhZC1jb3VudFwiICpuZ0lmPVwibWVzc2VuZ2VyLnVucmVhZE1lc3NhZ2VzQ291bnRcIj57e21lc3Nlbmdlci51bnJlYWRNZXNzYWdlc0NvdW50fX08L3NwYW4+XG4gIDwvYnV0dG9uPlxuXG4gIDxidXR0b24gY2xhc3M9XCJydHNlZS1tZXNzZW5nZXItbWVudS10b2dnbGVcIlxuICAgICAgICAgICpuZ0lmPVwiIW1lc3Nlbmdlci5vcGVuZWRDaGF0XCJcbiAgICAgICAgICAoY2xpY2spPVwibWVzc2VuZ2VyLm9wZW5NYWluTWVudSh0cnVlKVwiXG4gID5cbiAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkIHJ0c2VlLW1lc3Nlbmdlci1tZW51LXRvZ2dsZS1pY29uXCI+bWVudTwvc3Bhbj5cbiAgPC9idXR0b24+XG4gIDxkaXYgKm5nSWY9XCJtZXNzZW5nZXIub3BlbmVkQ2hhdFwiXG4gICAgICAgW25nQ2xhc3NdPVwieydydHNlZS1tZXNzZW5nZXItaGVhZGVyLW9wZW5lZC1jaGF0LWluZm8tZXhwYW5kZWQnOiBpc0V4cGFuZGVkfVwiXG4gICAgICAgY2xhc3M9XCJydHNlZS1tZXNzZW5nZXItaGVhZGVyLW9wZW5lZC1jaGF0LWluZm9cIj5cbiAgICA8ZGl2IGNsYXNzPVwicnRzZWUtbWVzc2VuZ2VyLXByb2ZpbGUtaGVhZGVyLXBsYWNlaG9sZGVyXCI+XG4gICAgICA8cCAqbmdJZj1cIm1lc3Nlbmdlci5vcGVuZWRDaGF0XCJcbiAgICAgICAgIGNsYXNzPVwicnRzZWUtbWVzc2VuZ2VyLWhlYWRlci1jaGF0LXRpdGxlXCJcbiAgICAgID57eyBtZXNzZW5nZXIub3BlbmVkQ2hhdC5uYW1lIH19PC9wPlxuICAgICAgPGRpdiBjbGFzcz1cInJ0c2VlLW1lc3Nlbmdlci1wcm9maWxlLWltYWdlLWNvbnRhaW5lclwiIChjbGljayk9XCJ0b2dnbGVFeHBhbmQoKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicnRzZWUtbWVzc2VuZ2VyLXByb2ZpbGUtaW1hZ2VcIlxuICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cIid1cmwoJyArIG1lc3Nlbmdlci5vcGVuZWRDaGF0LmltYWdlVXJsIHx8IGRlZmF1bHRJbWFnZXNTZXJ2aWNlLlBST0ZJTEUgKyAnKSdcIlxuICAgICAgICA+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicnRzZWUtbWVzc2VuZ2VyLXByb2ZpbGUtZGF0YS1jb250YWluZXJcIj5cbiAgICAgIDxydHNlZS1wcm9maWxlICpuZ0lmPVwiaXNFeHBhbmRlZFwiIFttZXNzZW5nZXJdPVwibWVzc2VuZ2VyXCI+PC9ydHNlZS1wcm9maWxlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8cCAqbmdJZj1cIiFtZXNzZW5nZXIub3BlbmVkQ2hhdFwiXG4gICAgIGNsYXNzPVwicnRzZWUtbWVzc2VuZ2VyLWhlYWRlci10aXRsZVwiXG4gID5NZXNzYWdpbmc8L3A+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,26 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ProfileComponent {
4
+ messenger;
5
+ call() {
6
+ if (!this.messenger.openedChat) {
7
+ return;
8
+ }
9
+ void this.messenger.initializeVideoCall(this.messenger.openedChat);
10
+ }
11
+ videoCall() {
12
+ if (!this.messenger.openedChat) {
13
+ return;
14
+ }
15
+ void this.messenger.initializeVideoCall(this.messenger.openedChat);
16
+ }
17
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ProfileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", 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" });
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ProfileComponent, decorators: [{
21
+ type: Component,
22
+ args: [{ selector: 'rtsee-profile', 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" }]
23
+ }], propDecorators: { messenger: [{
24
+ type: Input
25
+ }] } });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3J0c2VlLW1lc3Nlbmdlci9wcm9maWxlL3Byb2ZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvcHJvZmlsZS9wcm9maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU9qRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQ2xCLFNBQVMsQ0FBa0I7SUFFcEMsSUFBSTtRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRTtZQUM5QixPQUFPO1NBQ1I7UUFDRCxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRTtZQUM5QixPQUFPO1NBQ1I7UUFDRCxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyRSxDQUFDO3VHQWZVLGdCQUFnQjsyRkFBaEIsZ0JBQWdCLHlGQ1A3QixpdUJBb0JBOzsyRkRiYSxnQkFBZ0I7a0JBSjVCLFNBQVM7K0JBQ0UsZUFBZTs4QkFJaEIsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJUU2VlTWVzc2VuZ2VyIH0gZnJvbSAnQHJ0c2VlL21lc3Nlbmdlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3J0c2VlLXByb2ZpbGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZmlsZS5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFByb2ZpbGVDb21wb25lbnQge1xuICBASW5wdXQoKSBtZXNzZW5nZXIhOiBSVFNlZU1lc3NlbmdlcjtcblxuICBjYWxsKCkge1xuICAgIGlmICghdGhpcy5tZXNzZW5nZXIub3BlbmVkQ2hhdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2b2lkIHRoaXMubWVzc2VuZ2VyLmluaXRpYWxpemVWaWRlb0NhbGwodGhpcy5tZXNzZW5nZXIub3BlbmVkQ2hhdCk7XG4gIH1cblxuICB2aWRlb0NhbGwoKSB7XG4gICAgaWYgKCF0aGlzLm1lc3Nlbmdlci5vcGVuZWRDaGF0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZvaWQgdGhpcy5tZXNzZW5nZXIuaW5pdGlhbGl6ZVZpZGVvQ2FsbCh0aGlzLm1lc3Nlbmdlci5vcGVuZWRDaGF0KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInJ0c2VlLW1lc3Nlbmdlci1wcm9maWxlXCI+XG4gIDx1bCBjbGFzcz1cInJ0c2VlLW1lc3Nlbmdlci1wcm9maWxlLWNvbnRyb2xzXCI+XG4gICAgPGxpIGNsYXNzPVwicnRzZWUtbWVzc2VuZ2VyLXByb2ZpbGUtY29udHJvbFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJ0c2VlLW1lc3Nlbmdlci1jb250cm9sLWl0ZW1cIiAoY2xpY2spPVwiY2FsbCgpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJydHNlZS1tZXNzZW5nZXItY29udHJvbC1pY29uXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiPmNhbGw8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c3Bhbj5DYWxsPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9saT5cbiAgICA8bGkgY2xhc3M9XCJydHNlZS1tZXNzZW5nZXItcHJvZmlsZS1jb250cm9sXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicnRzZWUtbWVzc2VuZ2VyLWNvbnRyb2wtaXRlbVwiIChjbGljayk9XCJ2aWRlb0NhbGwoKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicnRzZWUtbWVzc2VuZ2VyLWNvbnRyb2wtaWNvblwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj52aWRlb2NhbTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzcGFuPlZpZGVvPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9saT5cbiAgPC91bD5cbjwvZGl2PlxuIl19
@@ -0,0 +1,36 @@
1
+ import { Component, Input, ViewChild, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "../rtsee-soundbar/rtsee-soundbar.component";
5
+ export class RtseePeerComponent {
6
+ intervalLength;
7
+ noiceLevel;
8
+ audioOutput;
9
+ videoOutput;
10
+ peer;
11
+ constructor() {
12
+ this.intervalLength = 1000;
13
+ this.noiceLevel = 0;
14
+ }
15
+ ngAfterViewInit() {
16
+ if (!this.audioOutput) {
17
+ return;
18
+ }
19
+ this.peer.setAudioOutputElement(this.audioOutput.nativeElement);
20
+ }
21
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseePeerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
22
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", 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 #ffffff}.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}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.RtseeSoundbarComponent, selector: "ngx-rtsee-soundbar", inputs: ["peer"] }] });
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseePeerComponent, decorators: [{
25
+ type: Component,
26
+ args: [{ selector: 'ngx-rtsee-peer', 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 #ffffff}.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}\n"] }]
27
+ }], ctorParameters: function () { return []; }, propDecorators: { audioOutput: [{
28
+ type: ViewChild,
29
+ args: ['audioOutput']
30
+ }], videoOutput: [{
31
+ type: ViewChild,
32
+ args: ['videoOutput']
33
+ }], peer: [{
34
+ type: Input
35
+ }] } });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnRzZWUtcGVlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3J0c2VlLXBlZXIvcnRzZWUtcGVlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3J0c2VlLXBlZXIvcnRzZWUtcGVlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULEtBQUssRUFDTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7Ozs7QUFRdkIsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixjQUFjLENBQVM7SUFDdkIsVUFBVSxDQUFTO0lBRU8sV0FBVyxDQUFjO0lBQ3pCLFdBQVcsQ0FBYztJQUMxQyxJQUFJLENBQXVCO0lBRXBDO1FBQ0UsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNyQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUM3QixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWlDLENBQ25ELENBQUM7SUFDSixDQUFDO3VHQXBCVSxrQkFBa0I7MkZBQWxCLGtCQUFrQix5UkNkL0IsNGhDQTRCQTs7MkZEZGEsa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGdCQUFnQjswRUFRQSxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ0UsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUNmLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSVFNlZVBlZXJDb25uZWN0aW9uIH0gZnJvbSAnQHJ0c2VlL2NvbmZlcmVuY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ3gtcnRzZWUtcGVlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9ydHNlZS1wZWVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcnRzZWUtcGVlci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBSdHNlZVBlZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgaW50ZXJ2YWxMZW5ndGg6IG51bWJlcjtcbiAgbm9pY2VMZXZlbDogbnVtYmVyO1xuXG4gIEBWaWV3Q2hpbGQoJ2F1ZGlvT3V0cHV0JykgYXVkaW9PdXRwdXQ/OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCd2aWRlb091dHB1dCcpIHZpZGVvT3V0cHV0PzogRWxlbWVudFJlZjtcbiAgQElucHV0KCkgcGVlciE6IFJUU2VlUGVlckNvbm5lY3Rpb247XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pbnRlcnZhbExlbmd0aCA9IDEwMDA7XG4gICAgdGhpcy5ub2ljZUxldmVsID0gMDtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYXVkaW9PdXRwdXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5wZWVyLnNldEF1ZGlvT3V0cHV0RWxlbWVudChcbiAgICAgIHRoaXMuYXVkaW9PdXRwdXQubmF0aXZlRWxlbWVudCBhcyBIVE1MQXVkaW9FbGVtZW50LFxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJydHNlZS1wZWVyXCIgW25nQ2xhc3NdPVwie1xuJ3J0c2VlLXBlZXItdmlkZW8tZGlzYWJsZWQnOiAhcGVlci5yZW1vdGVWaWRlb1N0cmVhbSB8fCAhcGVlci5jYW1lcmFcbn1cIj5cbiAgPGRpdiBjbGFzcz1cInJ0c2VlLXBlZXItY29udGVudFwiPlxuICAgIDxkaXYgY2xhc3M9XCJydHNlZS1wZWVyLXBob3RvXCIgKm5nSWY9XCIhcGVlci5jYW1lcmFcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJydHNlZS1wZWVyLXBob3RvLXdyYXBwZXJcIj5cbiAgICAgICAgPGRpdiAgKm5nSWY9XCJwZWVyLmltYWdlVXJsXCJcbiAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdPVwiJ3VybCgnICsgcGVlci5pbWFnZVVybCArICcpJ1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwicnRzZWUtcGVlci1waG90by1pbWFnZVwiXG4gICAgICAgID48L2Rpdj5cbiAgICAgICAgPGltZyAqbmdJZj1cIiFwZWVyLmltYWdlVXJsXCIgW3NyY109XCJcIiBhbHQ9XCJwZWVyX3Bob3RvXCIgY2xhc3M9XCJydHNlZS1wZWVyLXBob3RvLWltYWdlXCI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJydHNlZS1wZWVyLWluZm9cIj5cbiAgICAgICAgPHAgY2xhc3M9XCJydHNlZS1wZWVyLW5hbWVcIiAqbmdJZj1cInBlZXIubmFtZVwiPnt7cGVlci5uYW1lfX08L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICAgIDx2aWRlbyAjdmlkZW9PdXRwdXRcbiAgICAgICAgICAgICBjbGFzcz1cInJ0c2VlLXBlZXItdmlkZW9cIlxuICAgICAgICAgICAgIFthdXRvcGxheV09XCJ0cnVlXCJcbiAgICAgICAgICAgICBbc3JjT2JqZWN0XT1cInBlZXIucmVtb3RlVmlkZW9TdHJlYW1cIlxuICAgICAgICAgICAgIHBsYXlzaW5saW5lPVwidHJ1ZVwiXG4gICAgICA+XG4gICAgICA8L3ZpZGVvPlxuICAgIDxkaXYgY2xhc3M9XCJydHNlZS1wZWVyLXNvdW5kYmFyXCI+XG4gICAgICA8bmd4LXJ0c2VlLXNvdW5kYmFyIFtwZWVyXT1cInBlZXJcIj48L25neC1ydHNlZS1zb3VuZGJhcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,11 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class RtseePeersListComponent {
4
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseePeersListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: RtseePeersListComponent, selector: "ngx-rtsee-peers-list", ngImport: i0, template: "<p>rtsee-peers-list works!</p>\n", styles: [""] });
6
+ }
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseePeersListComponent, decorators: [{
8
+ type: Component,
9
+ args: [{ selector: 'ngx-rtsee-peers-list', template: "<p>rtsee-peers-list works!</p>\n" }]
10
+ }] });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnRzZWUtcGVlcnMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3J0c2VlLXBlZXJzLWxpc3QvcnRzZWUtcGVlcnMtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3J0c2VlLXBlZXJzLWxpc3QvcnRzZWUtcGVlcnMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU8xQyxNQUFNLE9BQU8sdUJBQXVCO3VHQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1Qiw0RENQcEMsa0NBQ0E7OzJGRE1hLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LXJ0c2VlLXBlZXJzLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vcnRzZWUtcGVlcnMtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3J0c2VlLXBlZXJzLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUnRzZWVQZWVyc0xpc3RDb21wb25lbnQge31cbiIsIjxwPnJ0c2VlLXBlZXJzLWxpc3Qgd29ya3MhPC9wPlxuIl19