@rtsee/ngx 0.0.48 → 0.0.51

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 (80) hide show
  1. package/dist/ngx/esm2022/lib/common/components/preloader/preloader.component.mjs +6 -8
  2. package/dist/ngx/esm2022/lib/components/constans/common.const.mjs +9 -0
  3. package/dist/ngx/esm2022/lib/components/enums/form.enum.mjs +10 -0
  4. package/dist/ngx/esm2022/lib/components/rtsee/rtsee-conference.component.mjs +4 -6
  5. package/dist/ngx/esm2022/lib/components/rtsee/rtsee-controls/rtsee-controls.component.mjs +4 -6
  6. package/dist/ngx/esm2022/lib/components/rtsee-auth/auth/auth.component.mjs +19 -0
  7. package/dist/ngx/esm2022/lib/components/rtsee-auth/forgot-password/forgot-password.component.mjs +28 -0
  8. package/dist/ngx/esm2022/lib/components/rtsee-auth/reset-password/reset-password.component.mjs +70 -0
  9. package/dist/ngx/esm2022/lib/components/rtsee-auth/services/utils.service.mjs +24 -0
  10. package/dist/ngx/esm2022/lib/components/rtsee-auth/sign-in/sign-in.component.mjs +36 -0
  11. package/dist/ngx/esm2022/lib/components/rtsee-auth/sign-up/sign-up.component.mjs +43 -0
  12. package/dist/ngx/esm2022/lib/components/rtsee-auth/types/auth-form.type.mjs +2 -0
  13. package/dist/ngx/esm2022/lib/components/rtsee-auth/vendors/vendors.component.mjs +11 -0
  14. package/dist/ngx/esm2022/lib/components/rtsee-container/rtsee-bottom-nav/rtsee-bottom-nav.component.mjs +18 -0
  15. package/dist/ngx/esm2022/lib/components/rtsee-container/rtsee-container.component.mjs +24 -6
  16. package/dist/ngx/esm2022/lib/components/rtsee-container/rtsee-sidenav/rtsee-sidenav.component.mjs +25 -0
  17. package/dist/ngx/esm2022/lib/components/rtsee-events-dashboard/components/event-thumbnail/event-thumbnail.component.mjs +3 -10
  18. package/dist/ngx/esm2022/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client/rtsee-events-dashboard-client.component.mjs +3 -3
  19. package/dist/ngx/esm2022/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client-thumbnail/rtsee-events-dashboard-client-thumbnail.component.mjs +3 -7
  20. package/dist/ngx/esm2022/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-session/rtsee-events-dashboard-session.component.mjs +3 -5
  21. package/dist/ngx/esm2022/lib/components/rtsee-events-dashboard/rtsee-events-dashboard.component.mjs +4 -5
  22. package/dist/ngx/esm2022/lib/components/rtsee-messenger/chat/chat.component.mjs +4 -6
  23. package/dist/ngx/esm2022/lib/components/rtsee-messenger/chat-input/chat-input.component.mjs +10 -10
  24. package/dist/ngx/esm2022/lib/components/rtsee-messenger/chat-thumbnail/chat-thumbnail.component.mjs +4 -7
  25. package/dist/ngx/esm2022/lib/components/rtsee-messenger/chats-list/chats-list.component.mjs +3 -5
  26. package/dist/ngx/esm2022/lib/components/rtsee-messenger/main-menu/components/contacts-multiselect/contacts-multiselect.component.mjs +3 -5
  27. package/dist/ngx/esm2022/lib/components/rtsee-messenger/main-menu/components/manage-chat/manage-chat.component.mjs +3 -5
  28. package/dist/ngx/esm2022/lib/components/rtsee-messenger/main-menu/components/search/search.component.mjs +6 -6
  29. package/dist/ngx/esm2022/lib/components/rtsee-messenger/main-menu/main-menu.component.mjs +9 -9
  30. package/dist/ngx/esm2022/lib/components/rtsee-messenger/message/components/message-time-and-status/message-time-and-status.component.mjs +3 -7
  31. package/dist/ngx/esm2022/lib/components/rtsee-messenger/message/message.component.mjs +3 -11
  32. package/dist/ngx/esm2022/lib/components/rtsee-messenger/message-widgets/call-widget/call-widget.component.mjs +3 -6
  33. package/dist/ngx/esm2022/lib/components/rtsee-messenger/messages-list/messages-list.component.mjs +3 -8
  34. package/dist/ngx/esm2022/lib/components/rtsee-messenger/messenger/messenger.component.mjs +3 -5
  35. package/dist/ngx/esm2022/lib/components/rtsee-messenger/messenger-header/messenger-header.component.mjs +4 -7
  36. package/dist/ngx/esm2022/lib/components/rtsee-messenger/profile/profile.component.mjs +3 -4
  37. package/dist/ngx/esm2022/lib/components/rtsee-peer/rtsee-peer.component.mjs +4 -9
  38. package/dist/ngx/esm2022/lib/components/rtsee-peers-list/rtsee-peers-list.component.mjs +3 -3
  39. package/dist/ngx/esm2022/lib/components/rtsee-presentation/presentation/presentation.component.mjs +18 -0
  40. package/dist/ngx/esm2022/lib/components/rtsee-presentation/presentation-header/presentation-header.component.mjs +14 -0
  41. package/dist/ngx/esm2022/lib/components/rtsee-presentation/slide/slide.component.mjs +25 -0
  42. package/dist/ngx/esm2022/lib/components/rtsee-presentation/story-player/story-player.component.mjs +18 -0
  43. package/dist/ngx/esm2022/lib/components/rtsee-presentation/story-thumbnail/story-thumbnail.component.mjs +17 -0
  44. package/dist/ngx/esm2022/lib/components/rtsee-settings/rtsee-settings.component.mjs +20 -16
  45. package/dist/ngx/esm2022/lib/components/rtsee-soundbar/rtsee-soundbar.component.mjs +3 -9
  46. package/dist/ngx/esm2022/lib/directives/shave.directive.mjs +3 -4
  47. package/dist/ngx/esm2022/lib/directives/widget.directive.mjs +3 -4
  48. package/dist/ngx/esm2022/lib/ngx.module.mjs +71 -11
  49. package/dist/ngx/esm2022/lib/ngx.service.mjs +3 -4
  50. package/dist/ngx/esm2022/lib/services/default-images.service.mjs +6 -4
  51. package/dist/ngx/esm2022/lib/services/events-widgets.service.mjs +6 -4
  52. package/dist/ngx/esm2022/lib/services/message-widgets.service.mjs +8 -6
  53. package/dist/ngx/esm2022/lib/services/time-format-helper.service.mjs +3 -3
  54. package/dist/ngx/esm2022/public-api.mjs +3 -1
  55. package/dist/ngx/fesm2022/rtsee-ngx.mjs +511 -197
  56. package/dist/ngx/fesm2022/rtsee-ngx.mjs.map +1 -1
  57. package/dist/ngx/lib/components/constans/common.const.d.ts +8 -0
  58. package/dist/ngx/lib/components/enums/form.enum.d.ts +8 -0
  59. package/dist/ngx/lib/components/rtsee-auth/auth/auth.component.d.ts +6 -0
  60. package/dist/ngx/lib/components/rtsee-auth/forgot-password/forgot-password.component.d.ts +13 -0
  61. package/dist/ngx/lib/components/rtsee-auth/reset-password/reset-password.component.d.ts +21 -0
  62. package/dist/ngx/lib/components/rtsee-auth/services/utils.service.d.ts +7 -0
  63. package/dist/ngx/lib/components/rtsee-auth/sign-in/sign-in.component.d.ts +14 -0
  64. package/dist/ngx/lib/components/rtsee-auth/sign-up/sign-up.component.d.ts +12 -0
  65. package/dist/ngx/lib/components/rtsee-auth/types/auth-form.type.d.ts +27 -0
  66. package/dist/ngx/lib/components/rtsee-auth/vendors/vendors.component.d.ts +5 -0
  67. package/dist/ngx/lib/components/rtsee-container/rtsee-bottom-nav/rtsee-bottom-nav.component.d.ts +9 -0
  68. package/dist/ngx/lib/components/rtsee-container/rtsee-container.component.d.ts +8 -1
  69. package/dist/ngx/lib/components/rtsee-container/rtsee-sidenav/rtsee-sidenav.component.d.ts +11 -0
  70. package/dist/ngx/lib/components/rtsee-events-dashboard/rtsee-events-dashboard.component.d.ts +1 -1
  71. package/dist/ngx/lib/components/rtsee-presentation/presentation/presentation.component.d.ts +8 -0
  72. package/dist/ngx/lib/components/rtsee-presentation/presentation-header/presentation-header.component.d.ts +7 -0
  73. package/dist/ngx/lib/components/rtsee-presentation/slide/slide.component.d.ts +9 -0
  74. package/dist/ngx/lib/components/rtsee-presentation/story-player/story-player.component.d.ts +9 -0
  75. package/dist/ngx/lib/components/rtsee-presentation/story-thumbnail/story-thumbnail.component.d.ts +8 -0
  76. package/dist/ngx/lib/components/rtsee-settings/rtsee-settings.component.d.ts +6 -3
  77. package/dist/ngx/lib/ngx.module.d.ts +25 -10
  78. package/dist/ngx/public-api.d.ts +2 -0
  79. package/dist/ngx/src/lib/common/compiled-scss/styles.scss +3262 -106
  80. package/package.json +9 -6
@@ -1,14 +1,14 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Component, Input, ViewChild, Directive, EventEmitter, Output, NgModule } from '@angular/core';
2
+ import { Injectable, Component, Input, ViewChild, Directive, EventEmitter, Output, NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
- import { CommonModule } from '@angular/common';
4
+ import { CommonModule, NgOptimizedImage } from '@angular/common';
5
5
  import * as i2 from '@angular/material/button';
6
6
  import { MatButtonModule } from '@angular/material/button';
7
7
  import * as i3 from '@angular/material/form-field';
8
8
  import { MatFormFieldModule } from '@angular/material/form-field';
9
9
  import { interval } from 'rxjs';
10
10
  import * as i1$1 from '@angular/forms';
11
- import { FormGroup, FormControl, Validators, ReactiveFormsModule } from '@angular/forms';
11
+ import { FormGroup, FormControl, Validators, ReactiveFormsModule, FormsModule } from '@angular/forms';
12
12
  import * as i3$1 from 'ngx-infinite-scroll';
13
13
  import { InfiniteScrollModule } from 'ngx-infinite-scroll';
14
14
  import { RTSeeChatEvents } from '@rtsee/messenger';
@@ -19,17 +19,20 @@ import { AutosizeModule } from 'ngx-autosize';
19
19
  import { RTSeeChatTypes } from '@rtsee/common';
20
20
  import shave from 'shave';
21
21
  import { debounceTime } from 'rxjs/operators';
22
+ import * as i3$2 from '@angular/material/tabs';
23
+ import { MatTabsModule } from '@angular/material/tabs';
24
+ import * as i2$2 from '@angular/router';
25
+ import { RouterLink, RouterLinkActive } from '@angular/router';
22
26
  import { MatIconModule } from '@angular/material/icon';
23
27
  import { MatSelectModule } from '@angular/material/select';
24
28
  import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
25
29
 
26
30
  class NgxService {
27
- lol;
28
31
  constructor() {
29
32
  this.lol = 'lol';
30
33
  }
31
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgxService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
32
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgxService, providedIn: 'root' });
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgxService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
35
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgxService, providedIn: 'root' }); }
33
36
  }
34
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgxService, decorators: [{
35
38
  type: Injectable,
@@ -39,19 +42,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
39
42
  }], ctorParameters: function () { return []; } });
40
43
 
41
44
  class RTSeeControlsComponent {
42
- rtsee;
43
- fullScreenMode;
44
45
  onPresentClicked() {
45
46
  return this.rtsee.isPresenter
46
47
  ? this.rtsee.stopScreenShare()
47
48
  : this.rtsee.startScreenShare();
48
49
  }
49
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RTSeeControlsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
50
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: RTSeeControlsComponent, selector: "ngx-rtsee-controls", inputs: { rtsee: "rtsee", fullScreenMode: "fullScreenMode" }, ngImport: i0, template: "<div class=\"rtsee-controls\" [ngClass]=\"{'rtsee-full-screen-controls' : fullScreenMode }\">\n <div class=\"rtsee-bottom-panel\">\n <div class=\"mic rtsee-buttons-container\">\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n *ngIf=\"rtsee.microphone\"\n type=\"button\"\n (click)=\"this.rtsee.disableMicrophone()\"\n >\n <span class=\"material-icons-outlined\">mic_none</span>\n </button>\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n *ngIf=\"!rtsee.microphone\"\n type=\"button\" (click)=\"this.rtsee.enableMicrophone()\"\n >\n <span class=\"material-icons-outlined\">mic_off</span>\n </button>\n </div>\n\n <div class=\"video-camera rtsee-buttons-container\">\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n *ngIf=\"rtsee.camera\"\n type=\"button\"\n (click)=\"rtsee.disableCamera()\"\n >\n <span class=\"material-icons-outlined\">videocam</span>\n </button>\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n *ngIf=\"!rtsee.camera\"\n type=\"button\"\n (click)=\"rtsee.enableCamera()\"\n >\n <span class=\"material-icons-outlined\">videocam_off</span>\n </button>\n </div>\n <div class=\"present rtsee-buttons-container\" [ngClass]=\"{'rtsee-present-button-container': rtsee.isPresenter}\">\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n type=\"button\"\n (click)=\"onPresentClicked()\"\n >\n <span class=\"material-icons-outlined\">present_to_all</span>\n </button>\n </div>\n <div class=\"call-end rtsee-buttons-container\">\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n type=\"button\"\n (click)=\"rtsee.end()\"\n >\n <span class=\"material-icons-outlined\">call_end</span>\n </button>\n </div>\n </div>\n</div>\n", styles: [".rtsee-controls{display:inline-block;height:100%}.rtsee-controls .rtsee-buttons-container{height:35px;width:35px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 6px;cursor:pointer}.rtsee-controls .rtsee-buttons-container:last-child{margin-right:0}.rtsee-controls .rtsee-buttons-container:first-child{margin-left:0}.rtsee-controls .rtsee-buttons-container .mdc-icon-button{background-color:#333;color:#fff}.rtsee-controls .rtsee-buttons-container.call-end .mdc-icon-button{background-color:red}.rtsee-controls .rtsee-buttons-container.rtsee-present-button-container .mdc-icon-button{background-color:#090}.rtsee-controls .full-screen{align-self:flex-end;padding:12px;cursor:pointer}.rtsee-controls .rtsee-bottom-panel{padding:12px;display:flex;justify-content:center;align-items:center;border-radius:45px;background-color:#000000b3}.rtsee-controls.rtsee-full-screen-controls .rtsee-buttons-container{height:60px;width:60px}\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.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }] });
50
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RTSeeControlsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
51
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: RTSeeControlsComponent, selector: "ngx-rtsee-controls", inputs: { rtsee: "rtsee", fullScreenMode: "fullScreenMode" }, ngImport: i0, template: "<div class=\"rtsee-controls\" [ngClass]=\"{'rtsee-full-screen-controls' : fullScreenMode }\">\n <div class=\"rtsee-bottom-panel\">\n <div class=\"mic rtsee-buttons-container\">\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n *ngIf=\"rtsee.microphone\"\n type=\"button\"\n (click)=\"this.rtsee.disableMicrophone()\"\n >\n <span class=\"material-icons-outlined\">mic_none</span>\n </button>\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n *ngIf=\"!rtsee.microphone\"\n type=\"button\" (click)=\"this.rtsee.enableMicrophone()\"\n >\n <span class=\"material-icons-outlined\">mic_off</span>\n </button>\n </div>\n\n <div class=\"video-camera rtsee-buttons-container\">\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n *ngIf=\"rtsee.camera\"\n type=\"button\"\n (click)=\"rtsee.disableCamera()\"\n >\n <span class=\"material-icons-outlined\">videocam</span>\n </button>\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n *ngIf=\"!rtsee.camera\"\n type=\"button\"\n (click)=\"rtsee.enableCamera()\"\n >\n <span class=\"material-icons-outlined\">videocam_off</span>\n </button>\n </div>\n <div class=\"present rtsee-buttons-container\" [ngClass]=\"{'rtsee-present-button-container': rtsee.isPresenter}\">\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n type=\"button\"\n (click)=\"onPresentClicked()\"\n >\n <span class=\"material-icons-outlined\">present_to_all</span>\n </button>\n </div>\n <div class=\"call-end rtsee-buttons-container\">\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n type=\"button\"\n (click)=\"rtsee.end()\"\n >\n <span class=\"material-icons-outlined\">call_end</span>\n </button>\n </div>\n </div>\n</div>\n", styles: [".rtsee-controls{display:inline-block;height:100%}.rtsee-controls .rtsee-buttons-container{height:35px;width:35px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 9px;cursor:pointer}.rtsee-controls .rtsee-buttons-container:last-child{margin-right:0}.rtsee-controls .rtsee-buttons-container:first-child{margin-left:0}.rtsee-controls .rtsee-buttons-container .mdc-icon-button{background-color:#333;color:#fff}.rtsee-controls .rtsee-buttons-container.call-end .mdc-icon-button{background-color:red}.rtsee-controls .rtsee-buttons-container.rtsee-present-button-container .mdc-icon-button{background-color:#090}.rtsee-controls .full-screen{align-self:flex-end;padding:12px;cursor:pointer}.rtsee-controls .rtsee-bottom-panel{padding:12px;display:flex;justify-content:center;align-items:center;border-radius:45px;background-color:#000000b3}.rtsee-controls.rtsee-full-screen-controls .rtsee-buttons-container{height:60px;width:60px}\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.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }] }); }
51
52
  }
52
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RTSeeControlsComponent, decorators: [{
53
54
  type: Component,
54
- args: [{ selector: 'ngx-rtsee-controls', template: "<div class=\"rtsee-controls\" [ngClass]=\"{'rtsee-full-screen-controls' : fullScreenMode }\">\n <div class=\"rtsee-bottom-panel\">\n <div class=\"mic rtsee-buttons-container\">\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n *ngIf=\"rtsee.microphone\"\n type=\"button\"\n (click)=\"this.rtsee.disableMicrophone()\"\n >\n <span class=\"material-icons-outlined\">mic_none</span>\n </button>\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n *ngIf=\"!rtsee.microphone\"\n type=\"button\" (click)=\"this.rtsee.enableMicrophone()\"\n >\n <span class=\"material-icons-outlined\">mic_off</span>\n </button>\n </div>\n\n <div class=\"video-camera rtsee-buttons-container\">\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n *ngIf=\"rtsee.camera\"\n type=\"button\"\n (click)=\"rtsee.disableCamera()\"\n >\n <span class=\"material-icons-outlined\">videocam</span>\n </button>\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n *ngIf=\"!rtsee.camera\"\n type=\"button\"\n (click)=\"rtsee.enableCamera()\"\n >\n <span class=\"material-icons-outlined\">videocam_off</span>\n </button>\n </div>\n <div class=\"present rtsee-buttons-container\" [ngClass]=\"{'rtsee-present-button-container': rtsee.isPresenter}\">\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n type=\"button\"\n (click)=\"onPresentClicked()\"\n >\n <span class=\"material-icons-outlined\">present_to_all</span>\n </button>\n </div>\n <div class=\"call-end rtsee-buttons-container\">\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n type=\"button\"\n (click)=\"rtsee.end()\"\n >\n <span class=\"material-icons-outlined\">call_end</span>\n </button>\n </div>\n </div>\n</div>\n", styles: [".rtsee-controls{display:inline-block;height:100%}.rtsee-controls .rtsee-buttons-container{height:35px;width:35px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 6px;cursor:pointer}.rtsee-controls .rtsee-buttons-container:last-child{margin-right:0}.rtsee-controls .rtsee-buttons-container:first-child{margin-left:0}.rtsee-controls .rtsee-buttons-container .mdc-icon-button{background-color:#333;color:#fff}.rtsee-controls .rtsee-buttons-container.call-end .mdc-icon-button{background-color:red}.rtsee-controls .rtsee-buttons-container.rtsee-present-button-container .mdc-icon-button{background-color:#090}.rtsee-controls .full-screen{align-self:flex-end;padding:12px;cursor:pointer}.rtsee-controls .rtsee-bottom-panel{padding:12px;display:flex;justify-content:center;align-items:center;border-radius:45px;background-color:#000000b3}.rtsee-controls.rtsee-full-screen-controls .rtsee-buttons-container{height:60px;width:60px}\n"] }]
55
+ args: [{ selector: 'ngx-rtsee-controls', template: "<div class=\"rtsee-controls\" [ngClass]=\"{'rtsee-full-screen-controls' : fullScreenMode }\">\n <div class=\"rtsee-bottom-panel\">\n <div class=\"mic rtsee-buttons-container\">\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n *ngIf=\"rtsee.microphone\"\n type=\"button\"\n (click)=\"this.rtsee.disableMicrophone()\"\n >\n <span class=\"material-icons-outlined\">mic_none</span>\n </button>\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n *ngIf=\"!rtsee.microphone\"\n type=\"button\" (click)=\"this.rtsee.enableMicrophone()\"\n >\n <span class=\"material-icons-outlined\">mic_off</span>\n </button>\n </div>\n\n <div class=\"video-camera rtsee-buttons-container\">\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n *ngIf=\"rtsee.camera\"\n type=\"button\"\n (click)=\"rtsee.disableCamera()\"\n >\n <span class=\"material-icons-outlined\">videocam</span>\n </button>\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n *ngIf=\"!rtsee.camera\"\n type=\"button\"\n (click)=\"rtsee.enableCamera()\"\n >\n <span class=\"material-icons-outlined\">videocam_off</span>\n </button>\n </div>\n <div class=\"present rtsee-buttons-container\" [ngClass]=\"{'rtsee-present-button-container': rtsee.isPresenter}\">\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n type=\"button\"\n (click)=\"onPresentClicked()\"\n >\n <span class=\"material-icons-outlined\">present_to_all</span>\n </button>\n </div>\n <div class=\"call-end rtsee-buttons-container\">\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n type=\"button\"\n (click)=\"rtsee.end()\"\n >\n <span class=\"material-icons-outlined\">call_end</span>\n </button>\n </div>\n </div>\n</div>\n", styles: [".rtsee-controls{display:inline-block;height:100%}.rtsee-controls .rtsee-buttons-container{height:35px;width:35px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 9px;cursor:pointer}.rtsee-controls .rtsee-buttons-container:last-child{margin-right:0}.rtsee-controls .rtsee-buttons-container:first-child{margin-left:0}.rtsee-controls .rtsee-buttons-container .mdc-icon-button{background-color:#333;color:#fff}.rtsee-controls .rtsee-buttons-container.call-end .mdc-icon-button{background-color:red}.rtsee-controls .rtsee-buttons-container.rtsee-present-button-container .mdc-icon-button{background-color:#090}.rtsee-controls .full-screen{align-self:flex-end;padding:12px;cursor:pointer}.rtsee-controls .rtsee-bottom-panel{padding:12px;display:flex;justify-content:center;align-items:center;border-radius:45px;background-color:#000000b3}.rtsee-controls.rtsee-full-screen-controls .rtsee-buttons-container{height:60px;width:60px}\n"] }]
55
56
  }], propDecorators: { rtsee: [{
56
57
  type: Input
57
58
  }], fullScreenMode: [{
@@ -59,12 +60,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
59
60
  }] } });
60
61
 
61
62
  class RtseeSoundbarComponent {
62
- intervalLength;
63
- noiceLevel;
64
- scaleOneLevel;
65
- scaleTwoLevel;
66
- scaleThreeLevel;
67
- peer;
68
63
  constructor() {
69
64
  this.intervalLength = 1000;
70
65
  this.noiceLevel = 0;
@@ -104,8 +99,8 @@ class RtseeSoundbarComponent {
104
99
  this.scaleTwoLevel = scaleTwoValue > 0 ? scaleTwoValue : 0;
105
100
  this.scaleThreeLevel = scaleThreeValue > 0 ? scaleTwoValue : 0;
106
101
  }
107
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeSoundbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
108
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: RtseeSoundbarComponent, selector: "ngx-rtsee-soundbar", inputs: { peer: "peer" }, ngImport: i0, template: "<div class=\"rtsee-soundbar\">\n <div class=\"rtsee-soundbar-scale\">\n <div class=\"rtsee-soundbar-scale-item\">\n <div class=\"rtsee-soundbar-scale-item-level rtsee-soundbar-scale-item-level-one\"\n [style.height.%]=\"scaleOneLevel\"\n ></div>\n </div>\n <div class=\"rtsee-soundbar-scale-item\">\n <div class=\"rtsee-soundbar-scale-item-level rtsee-soundbar-scale-item-level-two\"\n [style.height.%]=\"scaleTwoLevel\"\n ></div>\n </div>\n <div class=\"rtsee-soundbar-scale-item\">\n <div class=\"rtsee-soundbar-scale-item-level rtsee-soundbar-scale-item-level-three\"\n [style.height.%]=\"scaleThreeLevel\"\n ></div>\n </div>\n </div>\n</div>\n", styles: [".rtsee-soundbar{height:19px;width:23px;padding:2px 0 0}.rtsee-soundbar .rtsee-soundbar-scale{height:100%}.rtsee-soundbar .rtsee-soundbar-scale .rtsee-soundbar-scale-item{float:left;height:15px;width:5px;margin-left:2px;position:relative;border-radius:4px}.rtsee-soundbar .rtsee-soundbar-scale .rtsee-soundbar-scale-item:last-child:after{content:\"\";display:block;clear:both}.rtsee-soundbar .rtsee-soundbar-scale .rtsee-soundbar-scale-item .rtsee-soundbar-scale-item-level{position:absolute;bottom:0;left:0;height:10%;width:100%;transition:height .05s;background-color:#00ce00;min-height:25%;border-radius:1px}.rtsee-soundbar .rtsee-soundbar-scale .rtsee-soundbar-scale-item .rtsee-soundbar-scale-item-level.rtsee-soundbar-scale-item-level-one{max-height:33.3%}.rtsee-soundbar .rtsee-soundbar-scale .rtsee-soundbar-scale-item .rtsee-soundbar-scale-item-level.rtsee-soundbar-scale-item-level-two{max-height:66.6%}.rtsee-soundbar .rtsee-soundbar-scale .rtsee-soundbar-scale-item .rtsee-soundbar-scale-item-level.rtsee-soundbar-scale-item-level-three{max-height:100%}\n"] });
102
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeSoundbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
103
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: RtseeSoundbarComponent, selector: "ngx-rtsee-soundbar", inputs: { peer: "peer" }, ngImport: i0, template: "<div class=\"rtsee-soundbar\">\n <div class=\"rtsee-soundbar-scale\">\n <div class=\"rtsee-soundbar-scale-item\">\n <div class=\"rtsee-soundbar-scale-item-level rtsee-soundbar-scale-item-level-one\"\n [style.height.%]=\"scaleOneLevel\"\n ></div>\n </div>\n <div class=\"rtsee-soundbar-scale-item\">\n <div class=\"rtsee-soundbar-scale-item-level rtsee-soundbar-scale-item-level-two\"\n [style.height.%]=\"scaleTwoLevel\"\n ></div>\n </div>\n <div class=\"rtsee-soundbar-scale-item\">\n <div class=\"rtsee-soundbar-scale-item-level rtsee-soundbar-scale-item-level-three\"\n [style.height.%]=\"scaleThreeLevel\"\n ></div>\n </div>\n </div>\n</div>\n", styles: [".rtsee-soundbar{height:19px;width:23px;padding:2px 0 0}.rtsee-soundbar .rtsee-soundbar-scale{height:100%}.rtsee-soundbar .rtsee-soundbar-scale .rtsee-soundbar-scale-item{float:left;height:15px;width:5px;margin-left:2px;position:relative;border-radius:4px}.rtsee-soundbar .rtsee-soundbar-scale .rtsee-soundbar-scale-item:last-child:after{content:\"\";display:block;clear:both}.rtsee-soundbar .rtsee-soundbar-scale .rtsee-soundbar-scale-item .rtsee-soundbar-scale-item-level{position:absolute;bottom:0;left:0;height:10%;width:100%;transition:height .05s;background-color:#00ce00;min-height:25%;border-radius:1px}.rtsee-soundbar .rtsee-soundbar-scale .rtsee-soundbar-scale-item .rtsee-soundbar-scale-item-level.rtsee-soundbar-scale-item-level-one{max-height:33.3%}.rtsee-soundbar .rtsee-soundbar-scale .rtsee-soundbar-scale-item .rtsee-soundbar-scale-item-level.rtsee-soundbar-scale-item-level-two{max-height:66.6%}.rtsee-soundbar .rtsee-soundbar-scale .rtsee-soundbar-scale-item .rtsee-soundbar-scale-item-level.rtsee-soundbar-scale-item-level-three{max-height:100%}\n"] }); }
109
104
  }
110
105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeSoundbarComponent, decorators: [{
111
106
  type: Component,
@@ -115,11 +110,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
115
110
  }] } });
116
111
 
117
112
  class RtseePeerComponent {
118
- intervalLength;
119
- noiceLevel;
120
- audioOutput;
121
- videoOutput;
122
- peer;
123
113
  constructor() {
124
114
  this.intervalLength = 1000;
125
115
  this.noiceLevel = 0;
@@ -130,12 +120,12 @@ class RtseePeerComponent {
130
120
  }
131
121
  this.peer.setAudioOutputElement(this.audioOutput.nativeElement);
132
122
  }
133
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseePeerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
134
- 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: RtseeSoundbarComponent, selector: "ngx-rtsee-soundbar", inputs: ["peer"] }] });
123
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseePeerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
124
+ static { this.ɵ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", 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: RtseeSoundbarComponent, selector: "ngx-rtsee-soundbar", inputs: ["peer"] }] }); }
135
125
  }
136
126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseePeerComponent, decorators: [{
137
127
  type: Component,
138
- 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"] }]
128
+ 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" }]
139
129
  }], ctorParameters: function () { return []; }, propDecorators: { audioOutput: [{
140
130
  type: ViewChild,
141
131
  args: ['audioOutput']
@@ -147,11 +137,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
147
137
  }] } });
148
138
 
149
139
  class RtseeSettingsComponent {
150
- availableAudioInputDevices;
151
- availableVideoInputDevices;
152
- availableAudioOutputDevices;
153
- rtSee;
154
- fullScreenMode;
155
140
  constructor() {
156
141
  this.availableAudioInputDevices = [];
157
142
  this.availableVideoInputDevices = [];
@@ -163,22 +148,31 @@ class RtseeSettingsComponent {
163
148
  refreshSelectOptions() {
164
149
  void this.rtSee.refreshMediaDevicesList();
165
150
  }
166
- setAudioInput(deviceId) {
167
- this.rtSee.setAudioInputDevice(deviceId);
168
- console.log(deviceId);
151
+ audioInputChanged() {
152
+ if (!this.audioInputDeviceId) {
153
+ return;
154
+ }
155
+ this.rtSee.setAudioInputDevice(this.audioInputDeviceId);
156
+ console.log(this.audioInputDeviceId);
169
157
  }
170
- setAudioOutput(deviceId) {
171
- this.rtSee.setAudioOutputDevice(deviceId);
158
+ audioOutputChanged() {
159
+ if (!this.audioOutputDeviceId) {
160
+ return;
161
+ }
162
+ this.rtSee.setAudioOutputDevice(this.audioOutputDeviceId);
172
163
  }
173
- setVideoInput(deviceId) {
174
- this.rtSee.setVideoInputDevice(deviceId);
164
+ videoInputChanged() {
165
+ if (!this.videoInputDeviceId) {
166
+ return;
167
+ }
168
+ this.rtSee.setVideoInputDevice(this.videoInputDeviceId);
175
169
  }
176
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeSettingsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
177
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: RtseeSettingsComponent, selector: "ngx-rtsee-settings", inputs: { rtSee: "rtSee", fullScreenMode: "fullScreenMode" }, ngImport: i0, template: "<div class=\"rtsee-settings\" [ngClass]=\"{'rtsee-full-screen-settings' : fullScreenMode}\">\n <div class=\"rtsee-devices\">\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"audio-input\">Audio Input:</label>\n <select class=\"rtsee-select\" id=\"audio-input\" (click)=\"refreshSelectOptions()\">\n <option *ngFor=\"let device of rtSee.audioInputDevices\" [value]=\"device.deviceId\" (click)=\"setAudioInput(device.deviceId)\">\n {{device.label}}\n </option>\n </select>\n </div>\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"audio-output\">Audio Output:</label>\n <select class=\"rtsee-select\" id=\"audio-output\" (click)=\"refreshSelectOptions()\">\n <option *ngFor=\"let device of rtSee.audioOutputDevices\" [value]=\"device.deviceId\" (click)=\"setAudioOutput(device.deviceId)\">\n {{device.label}}\n </option>\n </select>\n </div>\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"video-input\">Video Input:</label>\n <select class=\"rtsee-select\" id=\"video-input\" (click)=\"refreshSelectOptions()\">\n <option *ngFor=\"let device of rtSee.videoInputDevices\" [value]=\"device.deviceId\" (click)=\"setVideoInput(device.deviceId)\">\n {{device.label}}\n </option>\n </select>\n </div>\n </div>\n</div>\n", styles: [".rtsee-settings{box-sizing:border-box;background-color:#404040;border-bottom:1px solid;max-height:180px;padding:16px 0;overflow:auto;color:#fff}.rtsee-settings .rtsee-device-select-wrapper{padding:0 10px}.rtsee-settings .rtsee-device-select-wrapper .rtsee-select-label{font-family:monospace;display:inline-block;margin:8px}.rtsee-settings.rtsee-full-screen-settings{max-height:unset;overflow:unset}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] });
170
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeSettingsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
171
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: RtseeSettingsComponent, selector: "ngx-rtsee-settings", inputs: { rtSee: "rtSee", fullScreenMode: "fullScreenMode" }, ngImport: i0, template: "<div class=\"rtsee-settings\" [ngClass]=\"{'rtsee-full-screen-settings' : fullScreenMode}\">\n <div class=\"rtsee-devices\">\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"audio-input\">Audio Input:</label>\n <select (click)=\"refreshSelectOptions()\"\n (ngModelChange)=\"audioInputChanged()\"\n [(ngModel)]=\"audioInputDeviceId\"\n class=\"rtsee-select\"\n id=\"audio-input\"\n >\n <option *ngFor=\"let device of rtSee.audioInputDevices\"\n [value]=\"device.deviceId\">\n {{device.label}}\n </option>\n </select>\n </div>\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"audio-output\">Audio Output:</label>\n <select (click)=\"refreshSelectOptions()\"\n (ngModelChange)=\"audioOutputChanged()\"\n [(ngModel)]=\"audioOutputDeviceId\"\n class=\"rtsee-select\"\n id=\"audio-output\"\n >\n <option *ngFor=\"let device of rtSee.audioOutputDevices\" [value]=\"device.deviceId\" >\n {{device.label}}\n </option>\n </select>\n </div>\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"video-input\">Video Input:</label>\n <select (click)=\"refreshSelectOptions()\"\n (ngModelChange)=\"videoInputChanged()\"\n [(ngModel)]=\"videoInputDeviceId\"\n class=\"rtsee-select\"\n id=\"video-input\"\n >\n <option *ngFor=\"let device of rtSee.videoInputDevices\" [value]=\"device.deviceId\">\n {{device.label}}\n </option>\n </select>\n </div>\n </div>\n</div>\n", styles: [".rtsee-settings{box-sizing:border-box;background-color:#404040;border-bottom:1px solid;max-height:180px;padding:16px 0;overflow:auto;color:#fff}.rtsee-settings .rtsee-device-select-wrapper{padding:0 10px}.rtsee-settings .rtsee-device-select-wrapper .rtsee-select-label{font-family:monospace;display:inline-block;margin:8px}.rtsee-settings.rtsee-full-screen-settings{max-height:unset;overflow:unset}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
178
172
  }
179
173
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeSettingsComponent, decorators: [{
180
174
  type: Component,
181
- args: [{ selector: 'ngx-rtsee-settings', template: "<div class=\"rtsee-settings\" [ngClass]=\"{'rtsee-full-screen-settings' : fullScreenMode}\">\n <div class=\"rtsee-devices\">\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"audio-input\">Audio Input:</label>\n <select class=\"rtsee-select\" id=\"audio-input\" (click)=\"refreshSelectOptions()\">\n <option *ngFor=\"let device of rtSee.audioInputDevices\" [value]=\"device.deviceId\" (click)=\"setAudioInput(device.deviceId)\">\n {{device.label}}\n </option>\n </select>\n </div>\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"audio-output\">Audio Output:</label>\n <select class=\"rtsee-select\" id=\"audio-output\" (click)=\"refreshSelectOptions()\">\n <option *ngFor=\"let device of rtSee.audioOutputDevices\" [value]=\"device.deviceId\" (click)=\"setAudioOutput(device.deviceId)\">\n {{device.label}}\n </option>\n </select>\n </div>\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"video-input\">Video Input:</label>\n <select class=\"rtsee-select\" id=\"video-input\" (click)=\"refreshSelectOptions()\">\n <option *ngFor=\"let device of rtSee.videoInputDevices\" [value]=\"device.deviceId\" (click)=\"setVideoInput(device.deviceId)\">\n {{device.label}}\n </option>\n </select>\n </div>\n </div>\n</div>\n", styles: [".rtsee-settings{box-sizing:border-box;background-color:#404040;border-bottom:1px solid;max-height:180px;padding:16px 0;overflow:auto;color:#fff}.rtsee-settings .rtsee-device-select-wrapper{padding:0 10px}.rtsee-settings .rtsee-device-select-wrapper .rtsee-select-label{font-family:monospace;display:inline-block;margin:8px}.rtsee-settings.rtsee-full-screen-settings{max-height:unset;overflow:unset}\n"] }]
175
+ args: [{ selector: 'ngx-rtsee-settings', template: "<div class=\"rtsee-settings\" [ngClass]=\"{'rtsee-full-screen-settings' : fullScreenMode}\">\n <div class=\"rtsee-devices\">\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"audio-input\">Audio Input:</label>\n <select (click)=\"refreshSelectOptions()\"\n (ngModelChange)=\"audioInputChanged()\"\n [(ngModel)]=\"audioInputDeviceId\"\n class=\"rtsee-select\"\n id=\"audio-input\"\n >\n <option *ngFor=\"let device of rtSee.audioInputDevices\"\n [value]=\"device.deviceId\">\n {{device.label}}\n </option>\n </select>\n </div>\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"audio-output\">Audio Output:</label>\n <select (click)=\"refreshSelectOptions()\"\n (ngModelChange)=\"audioOutputChanged()\"\n [(ngModel)]=\"audioOutputDeviceId\"\n class=\"rtsee-select\"\n id=\"audio-output\"\n >\n <option *ngFor=\"let device of rtSee.audioOutputDevices\" [value]=\"device.deviceId\" >\n {{device.label}}\n </option>\n </select>\n </div>\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"video-input\">Video Input:</label>\n <select (click)=\"refreshSelectOptions()\"\n (ngModelChange)=\"videoInputChanged()\"\n [(ngModel)]=\"videoInputDeviceId\"\n class=\"rtsee-select\"\n id=\"video-input\"\n >\n <option *ngFor=\"let device of rtSee.videoInputDevices\" [value]=\"device.deviceId\">\n {{device.label}}\n </option>\n </select>\n </div>\n </div>\n</div>\n", styles: [".rtsee-settings{box-sizing:border-box;background-color:#404040;border-bottom:1px solid;max-height:180px;padding:16px 0;overflow:auto;color:#fff}.rtsee-settings .rtsee-device-select-wrapper{padding:0 10px}.rtsee-settings .rtsee-device-select-wrapper .rtsee-select-label{font-family:monospace;display:inline-block;margin:8px}.rtsee-settings.rtsee-full-screen-settings{max-height:unset;overflow:unset}\n"] }]
182
176
  }], ctorParameters: function () { return []; }, propDecorators: { rtSee: [{
183
177
  type: Input
184
178
  }], fullScreenMode: [{
@@ -186,8 +180,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
186
180
  }] } });
187
181
 
188
182
  class RTSeeConferenceComponent {
189
- settingsViewEnabled;
190
- rtSee;
191
183
  constructor() {
192
184
  this.settingsViewEnabled = false;
193
185
  }
@@ -197,12 +189,12 @@ class RTSeeConferenceComponent {
197
189
  toggleFullScreenMode() {
198
190
  this.rtSee.uiControls.toggle();
199
191
  }
200
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RTSeeConferenceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
201
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: RTSeeConferenceComponent, selector: "rtsee-conference", inputs: { rtSee: "rtSee" }, ngImport: i0, template: "<div class=\"rtsee-shell\" [ngClass]=\"{\n'rtsee-shell-expanded': rtSee.uiControls.isExpanded,\n'rtsee-shell-no-companions': !rtSee.rtcPeerConnections.connections?.length\n}\">\n <div class=\"rtsee-local-peer\" *ngIf=\"rtSee.localStream && rtSee.camera\">\n <video class=\"rtsee-local-video\"\n [autoplay]=\"true\"\n [muted]=\"true\"\n [srcObject]=\"rtSee.localStream\"\n playsinline=\"true\"\n ></video>\n </div>\n <div class=\"rtsee-window-controls\">\n <button mat-icon-button matSuffix\n type=\"button\"\n (click)=\"this.toggleSettings()\"\n class=\"rtsee-window-controls-button rtsee-ripple-button\"\n >\n <span class=\"material-icons-outlined\">settings</span>\n </button>\n <button mat-icon-button matSuffix\n type=\"button\"\n (click)=\"this.toggleFullScreenMode()\"\n class=\"rtsee-window-controls-button rtsee-ripple-button\"\n >\n <span class=\"material-icons-outlined\">open_in_full</span>\n </button>\n </div>\n <div class=\"rtsee-settings-container\" *ngIf=\"settingsViewEnabled\">\n <button mat-icon-button matSuffix\n type=\"button\"\n (click)=\"this.toggleSettings()\"\n class=\"rtsee-close-settings-button\"\n >\n <span class=\"material-icons-outlined\">close</span>\n </button>\n <ngx-rtsee-settings [rtSee]=\"rtSee\" [fullScreenMode]=\"rtSee.uiControls.isExpanded\"></ngx-rtsee-settings>\n </div>\n <div class=\"rtsee-screen-share\" *ngIf=\"rtSee.screenSharePeer\" >\n <video [autoplay]=\"true\"\n [muted]=\"true\"\n [srcObject]=\"rtSee.screenSharePeer.remoteVideoStream\"\n playsinline=\"true\"\n class=\"rtsee-screen-share-video\"\n ></video>\n </div>\n <div class=\"rtsee-peers\" [ngClass]=\"{\n 'rtsee-peers-alone': !rtSee.rtcPeerConnections.connections?.length,\n 'rtsee-peers-one': rtSee.rtcPeerConnections.connections?.length === 1,\n 'rtsee-peers-three-grid': rtSee.rtcPeerConnections.connections?.length\n && rtSee.rtcPeerConnections.connections.length > 1\n && rtSee.rtcPeerConnections.connections.length < 4,\n 'rtsee-peers-six-grid': rtSee.rtcPeerConnections.connections?.length\n && rtSee.rtcPeerConnections.connections.length > 3\n && rtSee.rtcPeerConnections.connections.length < 7,\n 'rtsee-peers-nine-grid': rtSee.rtcPeerConnections.connections?.length\n && rtSee.rtcPeerConnections.connections.length >= 7\n }\">\n <div class=\"rtsee-peer-wrapper\"\n *ngFor=\"let peer of rtSee.rtcPeerConnections.connections\"\n >\n <ngx-rtsee-peer [peer]=\"peer\"></ngx-rtsee-peer>\n </div>\n </div>\n <div class=\"rtsee-peers-list\"></div>\n <div class=\"rtsee-controls-wrapper\">\n <ngx-rtsee-controls [rtsee]=\"rtSee\" [fullScreenMode]=\"rtSee.uiControls.isExpanded\"></ngx-rtsee-controls>\n </div>\n</div>\n\n", styles: [".rtsee-shell{background-color:#333;width:100%;max-width:320px;height:240px;overflow:hidden;border-radius:8px;position:relative}.rtsee-shell:hover .rtsee-controls-wrapper{bottom:8px}.rtsee-shell:hover .rtsee-window-controls{top:8px}.rtsee-shell .rtsee-local-peer{position:absolute;top:8px;left:8px;width:80px;height:60px;text-align:center}.rtsee-shell .rtsee-local-peer .rtsee-local-video{height:100%;max-width:100%;border-radius:8px}.rtsee-shell .rtsee-screen-share{height:100%}.rtsee-shell .rtsee-screen-share .rtsee-screen-share-video{width:100%;height:calc(100% - 50px)}.rtsee-shell .rtsee-peers{height:100%}.rtsee-shell .rtsee-peers .rtsee-peer-wrapper{padding:8px;box-sizing:border-box;height:100%}.rtsee-shell .rtsee-peers .rtsee-peer-wrapper .rtsee-peer{position:relative}.rtsee-shell .rtsee-peers .rtsee-peer-wrapper .rtsee-peer ::ng-deep .rtsee-peer-video{border-radius:8px}.rtsee-shell .rtsee-controls-wrapper{height:60px;width:100%;position:absolute;left:0;bottom:-60px;transition:bottom .1s;text-align:center}.rtsee-shell .rtsee-window-controls{position:absolute;top:-60px;right:8px;transition:top .1s;z-index:4}.rtsee-shell .rtsee-window-controls .rtsee-window-controls-button{margin-left:8px;background-color:#000000b3;color:#fff}.rtsee-shell .rtsee-settings-container{position:absolute;inset:0;overflow:auto;z-index:4}.rtsee-shell.rtsee-shell-no-companions .rtsee-local-peer{box-sizing:border-box;padding:8px;height:100%;width:100%;top:0;bottom:0;left:0}.rtsee-shell .rtsee-close-settings-button{position:absolute;right:25px;top:5px;width:30px;height:30px;line-height:30px}.rtsee-shell.rtsee-shell-expanded{position:fixed;border-radius:0;max-width:unset;height:unset;width:unset;inset:0}.rtsee-shell.rtsee-shell-expanded:hover .rtsee-controls-wrapper{bottom:16px}.rtsee-shell.rtsee-shell-expanded:hover .rtsee-window-controls{top:16px;right:16px}.rtsee-shell.rtsee-shell-expanded .rtsee-local-peer{top:unset;left:unset;width:211.2px;height:158.4px;bottom:16px;right:16px;padding:0;z-index:5}.rtsee-shell.rtsee-shell-expanded .rtsee-peers{width:100%;height:100%;display:table;table-layout:fixed}.rtsee-shell.rtsee-shell-expanded .rtsee-peers .rtsee-peer-wrapper{display:table-cell;vertical-align:middle}.rtsee-shell.rtsee-shell-expanded .rtsee-peers .rtsee-peer-wrapper ::ng-deep .rtsee-peer-video{border-radius:0}.rtsee-shell.rtsee-shell-expanded .rtsee-peers.rtsee-peers-one .rtsee-peer-wrapper{width:100%;height:100%}.rtsee-shell.rtsee-shell-expanded .rtsee-peers.rtsee-peers-one .rtsee-peer-wrapper ::ng-deep .rtsee-peer{height:70%;position:relative}.rtsee-shell.rtsee-shell-expanded .rtsee-peers.rtsee-peers-three-grid .rtsee-peer-wrapper{width:50%;height:100%}.rtsee-shell.rtsee-shell-expanded .rtsee-peers.rtsee-peers-three-grid .rtsee-peer-wrapper ::ng-deep .rtsee-peer{height:70%;position:relative}.rtsee-shell.rtsee-shell-expanded .rtsee-peers.rtsee-peers-six-grid .rtsee-peer-wrapper{width:33.3%;height:50%;float:left}.rtsee-shell.rtsee-shell-expanded .rtsee-peers.rtsee-shell-no-companions .rtsee-local-peer{height:100%;max-width:100%}.rtsee-shell.rtsee-shell-expanded .rtsee-controls-wrapper{height:84px;bottom:-84px}::ng-deep .rtsee-ripple-button{background-position:center;transition:background .2s;outline:none}::ng-deep .rtsee-ripple-button:hover{background:rgba(245,245,245,.1) radial-gradient(circle,transparent 1%,rgba(245,245,245,.1) 1%) center/15000%}::ng-deep .rtsee-ripple-button:active{background-size:100%;transition:background 0s}::ng-deep .rtsee-select{padding:8px;border-radius:4px;width:100%;outline:none}::ng-deep .material-icons-outlined{font-size:18px}::ng-deep .rtsee-shell.rtsee-shell-expanded .material-icons-outlined{font-size:24px}::ng-deep .rtsee-shell.rtsee-shell-expanded .rtsee-ripple-button{height:60px;width:60px;line-height:45px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: RTSeeControlsComponent, selector: "ngx-rtsee-controls", inputs: ["rtsee", "fullScreenMode"] }, { kind: "component", type: RtseePeerComponent, selector: "ngx-rtsee-peer", inputs: ["peer"] }, { kind: "component", type: RtseeSettingsComponent, selector: "ngx-rtsee-settings", inputs: ["rtSee", "fullScreenMode"] }] });
192
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RTSeeConferenceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
193
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: RTSeeConferenceComponent, selector: "rtsee-conference", inputs: { rtSee: "rtSee" }, ngImport: i0, template: "<div class=\"rtsee-conference-shell\" [ngClass]=\"{\n'rtsee-conference-shell-expanded': rtSee.uiControls.isExpanded,\n'rtsee-conference-shell-no-companions': !rtSee.rtcPeerConnections.connections?.length\n}\">\n <div class=\"rtsee-local-peer\" *ngIf=\"rtSee.localStream && rtSee.camera\">\n <video class=\"rtsee-local-video\"\n [autoplay]=\"true\"\n [muted]=\"true\"\n [srcObject]=\"rtSee.localStream\"\n playsinline=\"true\"\n ></video>\n </div>\n <div class=\"rtsee-window-controls\">\n <button mat-icon-button matSuffix\n type=\"button\"\n (click)=\"this.toggleSettings()\"\n class=\"rtsee-window-controls-button rtsee-ripple-button\"\n >\n <span class=\"material-icons-outlined\">settings</span>\n </button>\n <button mat-icon-button matSuffix\n type=\"button\"\n (click)=\"this.toggleFullScreenMode()\"\n class=\"rtsee-window-controls-button rtsee-ripple-button\"\n >\n <span class=\"material-icons-outlined\">open_in_full</span>\n </button>\n </div>\n <div class=\"rtsee-settings-container\" *ngIf=\"settingsViewEnabled\">\n <button mat-icon-button matSuffix\n type=\"button\"\n (click)=\"this.toggleSettings()\"\n class=\"rtsee-close-settings-button\"\n >\n <span class=\"material-icons-outlined\">close</span>\n </button>\n <ngx-rtsee-settings [rtSee]=\"rtSee\" [fullScreenMode]=\"rtSee.uiControls.isExpanded\"></ngx-rtsee-settings>\n </div>\n <div class=\"rtsee-screen-share\" *ngIf=\"rtSee.screenSharePeer\" >\n <video [autoplay]=\"true\"\n [muted]=\"true\"\n [srcObject]=\"rtSee.screenSharePeer.remoteVideoStream\"\n playsinline=\"true\"\n class=\"rtsee-screen-share-video\"\n ></video>\n </div>\n <div class=\"rtsee-peers\" [ngClass]=\"{\n 'rtsee-peers-alone': !rtSee.rtcPeerConnections.connections?.length,\n 'rtsee-peers-one': rtSee.rtcPeerConnections.connections?.length === 1,\n 'rtsee-peers-three-grid': rtSee.rtcPeerConnections.connections?.length\n && rtSee.rtcPeerConnections.connections.length > 1\n && rtSee.rtcPeerConnections.connections.length < 4,\n 'rtsee-peers-six-grid': rtSee.rtcPeerConnections.connections?.length\n && rtSee.rtcPeerConnections.connections.length > 3\n && rtSee.rtcPeerConnections.connections.length < 7,\n 'rtsee-peers-nine-grid': rtSee.rtcPeerConnections.connections?.length\n && rtSee.rtcPeerConnections.connections.length >= 7\n }\">\n <div class=\"rtsee-peer-wrapper\"\n *ngFor=\"let peer of rtSee.rtcPeerConnections.connections\"\n >\n <ngx-rtsee-peer [peer]=\"peer\"></ngx-rtsee-peer>\n </div>\n </div>\n <div class=\"rtsee-peers-list\"></div>\n <div class=\"rtsee-controls-wrapper\">\n <ngx-rtsee-controls [rtsee]=\"rtSee\" [fullScreenMode]=\"rtSee.uiControls.isExpanded\"></ngx-rtsee-controls>\n </div>\n</div>\n\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: RTSeeControlsComponent, selector: "ngx-rtsee-controls", inputs: ["rtsee", "fullScreenMode"] }, { kind: "component", type: RtseePeerComponent, selector: "ngx-rtsee-peer", inputs: ["peer"] }, { kind: "component", type: RtseeSettingsComponent, selector: "ngx-rtsee-settings", inputs: ["rtSee", "fullScreenMode"] }] }); }
202
194
  }
203
195
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RTSeeConferenceComponent, decorators: [{
204
196
  type: Component,
205
- args: [{ selector: 'rtsee-conference', template: "<div class=\"rtsee-shell\" [ngClass]=\"{\n'rtsee-shell-expanded': rtSee.uiControls.isExpanded,\n'rtsee-shell-no-companions': !rtSee.rtcPeerConnections.connections?.length\n}\">\n <div class=\"rtsee-local-peer\" *ngIf=\"rtSee.localStream && rtSee.camera\">\n <video class=\"rtsee-local-video\"\n [autoplay]=\"true\"\n [muted]=\"true\"\n [srcObject]=\"rtSee.localStream\"\n playsinline=\"true\"\n ></video>\n </div>\n <div class=\"rtsee-window-controls\">\n <button mat-icon-button matSuffix\n type=\"button\"\n (click)=\"this.toggleSettings()\"\n class=\"rtsee-window-controls-button rtsee-ripple-button\"\n >\n <span class=\"material-icons-outlined\">settings</span>\n </button>\n <button mat-icon-button matSuffix\n type=\"button\"\n (click)=\"this.toggleFullScreenMode()\"\n class=\"rtsee-window-controls-button rtsee-ripple-button\"\n >\n <span class=\"material-icons-outlined\">open_in_full</span>\n </button>\n </div>\n <div class=\"rtsee-settings-container\" *ngIf=\"settingsViewEnabled\">\n <button mat-icon-button matSuffix\n type=\"button\"\n (click)=\"this.toggleSettings()\"\n class=\"rtsee-close-settings-button\"\n >\n <span class=\"material-icons-outlined\">close</span>\n </button>\n <ngx-rtsee-settings [rtSee]=\"rtSee\" [fullScreenMode]=\"rtSee.uiControls.isExpanded\"></ngx-rtsee-settings>\n </div>\n <div class=\"rtsee-screen-share\" *ngIf=\"rtSee.screenSharePeer\" >\n <video [autoplay]=\"true\"\n [muted]=\"true\"\n [srcObject]=\"rtSee.screenSharePeer.remoteVideoStream\"\n playsinline=\"true\"\n class=\"rtsee-screen-share-video\"\n ></video>\n </div>\n <div class=\"rtsee-peers\" [ngClass]=\"{\n 'rtsee-peers-alone': !rtSee.rtcPeerConnections.connections?.length,\n 'rtsee-peers-one': rtSee.rtcPeerConnections.connections?.length === 1,\n 'rtsee-peers-three-grid': rtSee.rtcPeerConnections.connections?.length\n && rtSee.rtcPeerConnections.connections.length > 1\n && rtSee.rtcPeerConnections.connections.length < 4,\n 'rtsee-peers-six-grid': rtSee.rtcPeerConnections.connections?.length\n && rtSee.rtcPeerConnections.connections.length > 3\n && rtSee.rtcPeerConnections.connections.length < 7,\n 'rtsee-peers-nine-grid': rtSee.rtcPeerConnections.connections?.length\n && rtSee.rtcPeerConnections.connections.length >= 7\n }\">\n <div class=\"rtsee-peer-wrapper\"\n *ngFor=\"let peer of rtSee.rtcPeerConnections.connections\"\n >\n <ngx-rtsee-peer [peer]=\"peer\"></ngx-rtsee-peer>\n </div>\n </div>\n <div class=\"rtsee-peers-list\"></div>\n <div class=\"rtsee-controls-wrapper\">\n <ngx-rtsee-controls [rtsee]=\"rtSee\" [fullScreenMode]=\"rtSee.uiControls.isExpanded\"></ngx-rtsee-controls>\n </div>\n</div>\n\n", styles: [".rtsee-shell{background-color:#333;width:100%;max-width:320px;height:240px;overflow:hidden;border-radius:8px;position:relative}.rtsee-shell:hover .rtsee-controls-wrapper{bottom:8px}.rtsee-shell:hover .rtsee-window-controls{top:8px}.rtsee-shell .rtsee-local-peer{position:absolute;top:8px;left:8px;width:80px;height:60px;text-align:center}.rtsee-shell .rtsee-local-peer .rtsee-local-video{height:100%;max-width:100%;border-radius:8px}.rtsee-shell .rtsee-screen-share{height:100%}.rtsee-shell .rtsee-screen-share .rtsee-screen-share-video{width:100%;height:calc(100% - 50px)}.rtsee-shell .rtsee-peers{height:100%}.rtsee-shell .rtsee-peers .rtsee-peer-wrapper{padding:8px;box-sizing:border-box;height:100%}.rtsee-shell .rtsee-peers .rtsee-peer-wrapper .rtsee-peer{position:relative}.rtsee-shell .rtsee-peers .rtsee-peer-wrapper .rtsee-peer ::ng-deep .rtsee-peer-video{border-radius:8px}.rtsee-shell .rtsee-controls-wrapper{height:60px;width:100%;position:absolute;left:0;bottom:-60px;transition:bottom .1s;text-align:center}.rtsee-shell .rtsee-window-controls{position:absolute;top:-60px;right:8px;transition:top .1s;z-index:4}.rtsee-shell .rtsee-window-controls .rtsee-window-controls-button{margin-left:8px;background-color:#000000b3;color:#fff}.rtsee-shell .rtsee-settings-container{position:absolute;inset:0;overflow:auto;z-index:4}.rtsee-shell.rtsee-shell-no-companions .rtsee-local-peer{box-sizing:border-box;padding:8px;height:100%;width:100%;top:0;bottom:0;left:0}.rtsee-shell .rtsee-close-settings-button{position:absolute;right:25px;top:5px;width:30px;height:30px;line-height:30px}.rtsee-shell.rtsee-shell-expanded{position:fixed;border-radius:0;max-width:unset;height:unset;width:unset;inset:0}.rtsee-shell.rtsee-shell-expanded:hover .rtsee-controls-wrapper{bottom:16px}.rtsee-shell.rtsee-shell-expanded:hover .rtsee-window-controls{top:16px;right:16px}.rtsee-shell.rtsee-shell-expanded .rtsee-local-peer{top:unset;left:unset;width:211.2px;height:158.4px;bottom:16px;right:16px;padding:0;z-index:5}.rtsee-shell.rtsee-shell-expanded .rtsee-peers{width:100%;height:100%;display:table;table-layout:fixed}.rtsee-shell.rtsee-shell-expanded .rtsee-peers .rtsee-peer-wrapper{display:table-cell;vertical-align:middle}.rtsee-shell.rtsee-shell-expanded .rtsee-peers .rtsee-peer-wrapper ::ng-deep .rtsee-peer-video{border-radius:0}.rtsee-shell.rtsee-shell-expanded .rtsee-peers.rtsee-peers-one .rtsee-peer-wrapper{width:100%;height:100%}.rtsee-shell.rtsee-shell-expanded .rtsee-peers.rtsee-peers-one .rtsee-peer-wrapper ::ng-deep .rtsee-peer{height:70%;position:relative}.rtsee-shell.rtsee-shell-expanded .rtsee-peers.rtsee-peers-three-grid .rtsee-peer-wrapper{width:50%;height:100%}.rtsee-shell.rtsee-shell-expanded .rtsee-peers.rtsee-peers-three-grid .rtsee-peer-wrapper ::ng-deep .rtsee-peer{height:70%;position:relative}.rtsee-shell.rtsee-shell-expanded .rtsee-peers.rtsee-peers-six-grid .rtsee-peer-wrapper{width:33.3%;height:50%;float:left}.rtsee-shell.rtsee-shell-expanded .rtsee-peers.rtsee-shell-no-companions .rtsee-local-peer{height:100%;max-width:100%}.rtsee-shell.rtsee-shell-expanded .rtsee-controls-wrapper{height:84px;bottom:-84px}::ng-deep .rtsee-ripple-button{background-position:center;transition:background .2s;outline:none}::ng-deep .rtsee-ripple-button:hover{background:rgba(245,245,245,.1) radial-gradient(circle,transparent 1%,rgba(245,245,245,.1) 1%) center/15000%}::ng-deep .rtsee-ripple-button:active{background-size:100%;transition:background 0s}::ng-deep .rtsee-select{padding:8px;border-radius:4px;width:100%;outline:none}::ng-deep .material-icons-outlined{font-size:18px}::ng-deep .rtsee-shell.rtsee-shell-expanded .material-icons-outlined{font-size:24px}::ng-deep .rtsee-shell.rtsee-shell-expanded .rtsee-ripple-button{height:60px;width:60px;line-height:45px}\n"] }]
197
+ args: [{ selector: 'rtsee-conference', template: "<div class=\"rtsee-conference-shell\" [ngClass]=\"{\n'rtsee-conference-shell-expanded': rtSee.uiControls.isExpanded,\n'rtsee-conference-shell-no-companions': !rtSee.rtcPeerConnections.connections?.length\n}\">\n <div class=\"rtsee-local-peer\" *ngIf=\"rtSee.localStream && rtSee.camera\">\n <video class=\"rtsee-local-video\"\n [autoplay]=\"true\"\n [muted]=\"true\"\n [srcObject]=\"rtSee.localStream\"\n playsinline=\"true\"\n ></video>\n </div>\n <div class=\"rtsee-window-controls\">\n <button mat-icon-button matSuffix\n type=\"button\"\n (click)=\"this.toggleSettings()\"\n class=\"rtsee-window-controls-button rtsee-ripple-button\"\n >\n <span class=\"material-icons-outlined\">settings</span>\n </button>\n <button mat-icon-button matSuffix\n type=\"button\"\n (click)=\"this.toggleFullScreenMode()\"\n class=\"rtsee-window-controls-button rtsee-ripple-button\"\n >\n <span class=\"material-icons-outlined\">open_in_full</span>\n </button>\n </div>\n <div class=\"rtsee-settings-container\" *ngIf=\"settingsViewEnabled\">\n <button mat-icon-button matSuffix\n type=\"button\"\n (click)=\"this.toggleSettings()\"\n class=\"rtsee-close-settings-button\"\n >\n <span class=\"material-icons-outlined\">close</span>\n </button>\n <ngx-rtsee-settings [rtSee]=\"rtSee\" [fullScreenMode]=\"rtSee.uiControls.isExpanded\"></ngx-rtsee-settings>\n </div>\n <div class=\"rtsee-screen-share\" *ngIf=\"rtSee.screenSharePeer\" >\n <video [autoplay]=\"true\"\n [muted]=\"true\"\n [srcObject]=\"rtSee.screenSharePeer.remoteVideoStream\"\n playsinline=\"true\"\n class=\"rtsee-screen-share-video\"\n ></video>\n </div>\n <div class=\"rtsee-peers\" [ngClass]=\"{\n 'rtsee-peers-alone': !rtSee.rtcPeerConnections.connections?.length,\n 'rtsee-peers-one': rtSee.rtcPeerConnections.connections?.length === 1,\n 'rtsee-peers-three-grid': rtSee.rtcPeerConnections.connections?.length\n && rtSee.rtcPeerConnections.connections.length > 1\n && rtSee.rtcPeerConnections.connections.length < 4,\n 'rtsee-peers-six-grid': rtSee.rtcPeerConnections.connections?.length\n && rtSee.rtcPeerConnections.connections.length > 3\n && rtSee.rtcPeerConnections.connections.length < 7,\n 'rtsee-peers-nine-grid': rtSee.rtcPeerConnections.connections?.length\n && rtSee.rtcPeerConnections.connections.length >= 7\n }\">\n <div class=\"rtsee-peer-wrapper\"\n *ngFor=\"let peer of rtSee.rtcPeerConnections.connections\"\n >\n <ngx-rtsee-peer [peer]=\"peer\"></ngx-rtsee-peer>\n </div>\n </div>\n <div class=\"rtsee-peers-list\"></div>\n <div class=\"rtsee-controls-wrapper\">\n <ngx-rtsee-controls [rtsee]=\"rtSee\" [fullScreenMode]=\"rtSee.uiControls.isExpanded\"></ngx-rtsee-controls>\n </div>\n</div>\n\n" }]
206
198
  }], ctorParameters: function () { return []; }, propDecorators: { rtSee: [{
207
199
  type: Input
208
200
  }] } });
@@ -285,8 +277,8 @@ class TimeFormatHelperService {
285
277
  }
286
278
  return this.toDateNumeralWithYear(time);
287
279
  }
288
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: TimeFormatHelperService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
289
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: TimeFormatHelperService, providedIn: 'root' });
280
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: TimeFormatHelperService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
281
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: TimeFormatHelperService, providedIn: 'root' }); }
290
282
  }
291
283
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: TimeFormatHelperService, decorators: [{
292
284
  type: Injectable,
@@ -296,12 +288,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
296
288
  }] });
297
289
 
298
290
  class WidgetDirective {
299
- viewContainerRef;
300
291
  constructor(viewContainerRef) {
301
292
  this.viewContainerRef = viewContainerRef;
302
293
  }
303
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: WidgetDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
304
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.3", type: WidgetDirective, selector: "[widgetHost]", ngImport: i0 });
294
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: WidgetDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
295
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.3", type: WidgetDirective, selector: "[widgetHost]", ngImport: i0 }); }
305
296
  }
306
297
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: WidgetDirective, decorators: [{
307
298
  type: Directive,
@@ -311,9 +302,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
311
302
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; } });
312
303
 
313
304
  class CallWidgetComponent {
314
- message;
315
- messenger;
316
- callerName;
317
305
  ngOnInit() {
318
306
  if (this.messenger.clientId === this.message.data?.callerId) {
319
307
  this.callerName = 'You';
@@ -329,8 +317,8 @@ class CallWidgetComponent {
329
317
  }
330
318
  void this.messenger.joinCall(this.message.data.roomId);
331
319
  }
332
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: CallWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
333
- 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 !== 'You'\"> {{ callerName }} has started a call</p>\n <p *ngIf=\"callerName && callerName === 'You'\"> You have started a call</p>\n <p *ngIf=\"!callerName\"> The call has started</p>\n <button class=\"rtsee-join-call-btn\"\n [ngClass]=\"{'rtsee-join-your-call-btn': callerName && callerName === 'You'}\"\n (click)=\"joinCall()\">\n Join Call\n </button>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
320
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: CallWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
321
+ static { this.ɵ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 !== 'You'\"> {{ callerName }} has started a call</p>\n <p *ngIf=\"callerName && callerName === 'You'\"> You have started a call</p>\n <p *ngIf=\"!callerName\"> The call has started</p>\n <button class=\"rtsee-join-call-btn\"\n [ngClass]=\"{'rtsee-join-your-call-btn': callerName && callerName === 'You'}\"\n (click)=\"joinCall()\">\n Join Call\n </button>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
334
322
  }
335
323
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: CallWidgetComponent, decorators: [{
336
324
  type: Component,
@@ -342,9 +330,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
342
330
  }] } });
343
331
 
344
332
  class MessageWidgetsService {
345
- widgetsMap = [
346
- { name: 'rtsee-call', component: CallWidgetComponent },
347
- ];
333
+ constructor() {
334
+ this.widgetsMap = [
335
+ { name: 'rtsee-call', component: CallWidgetComponent },
336
+ ];
337
+ }
348
338
  getWidgetComponentByName(name) {
349
339
  /* eslint-disable */
350
340
  const mapping = this.widgetsMap.find((e) => e.name === name);
@@ -354,8 +344,8 @@ class MessageWidgetsService {
354
344
  return mapping.component;
355
345
  /* eslint-enable */
356
346
  }
357
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessageWidgetsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
358
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessageWidgetsService, providedIn: 'root' });
347
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessageWidgetsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
348
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessageWidgetsService, providedIn: 'root' }); }
359
349
  }
360
350
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessageWidgetsService, decorators: [{
361
351
  type: Injectable,
@@ -365,12 +355,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
365
355
  }] });
366
356
 
367
357
  class PreloaderComponent {
368
- viewBox = '0 0 100 100';
369
- d = 'M 50 96 a 46 46 0 0 1 0 -92 46 46 0 0 1 0 92';
370
- canvas;
371
- diameter;
372
- color = '#000000';
373
358
  constructor() {
359
+ this.viewBox = '0 0 100 100';
360
+ this.d = 'M 50 96 a 46 46 0 0 1 0 -92 46 46 0 0 1 0 92';
361
+ this.color = '#000000';
374
362
  if (this.diameter) {
375
363
  this.viewBox = `0 0 ${this.diameter} ${this.diameter}`;
376
364
  this.d = `M ${this.diameter / 2} ${this.diameter * 0.96} a ${this.diameter * 0.46} ${this.diameter * 0.46} 0 0 1 0 -${this.diameter * 0.92} ${this.diameter * 0.46} ${this.diameter * 0.46} 0 0 1 0 ${this.diameter * 0.92}`;
@@ -380,8 +368,8 @@ class PreloaderComponent {
380
368
  //viewBox="0 0 100 100"
381
369
  //d="M 50 96 a 46 46 0 0 1 0 -92 46 46 0 0 1 0 92"
382
370
  }
383
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: PreloaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
384
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: PreloaderComponent, selector: "rtsee-preloader", inputs: { diameter: "diameter", color: "color" }, viewQueries: [{ propertyName: "canvas", first: true, predicate: ["canvas"], descendants: true }], ngImport: i0, template: "<div class=\"rtsee-preloader\">\n <svg [style.max-width.px]=\"diameter\" #canvas [attr.viewBox]=\"viewBox\">\n <path [attr.d]=\"d\" [attr.stroke]=\"color\"/>\n </svg>\n</div>\n" });
371
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: PreloaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
372
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: PreloaderComponent, selector: "rtsee-preloader", inputs: { diameter: "diameter", color: "color" }, viewQueries: [{ propertyName: "canvas", first: true, predicate: ["canvas"], descendants: true }], ngImport: i0, template: "<div class=\"rtsee-preloader\">\n <svg [style.max-width.px]=\"diameter\" #canvas [attr.viewBox]=\"viewBox\">\n <path [attr.d]=\"d\" [attr.stroke]=\"color\"/>\n </svg>\n</div>\n" }); }
385
373
  }
386
374
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: PreloaderComponent, decorators: [{
387
375
  type: Component,
@@ -396,15 +384,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
396
384
  }] } });
397
385
 
398
386
  class MessageTimeAndStatusComponent {
399
- timeFormatService;
400
- message;
401
- hideStatus;
402
- inChat;
403
387
  constructor(timeFormatService) {
404
388
  this.timeFormatService = timeFormatService;
405
389
  }
406
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessageTimeAndStatusComponent, deps: [{ token: TimeFormatHelperService }], target: i0.ɵɵFactoryTarget.Component });
407
- 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", inChat: "inChat" }, ngImport: i0, template: "<div class=\"rtsee-messenger-message-time-and-status\">\n <span class=\"rtsee-messenger-message-status\" *ngIf=\"!hideStatus\" [ngClass]=\"{'showing-status-inside-chat': inChat }\">\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: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PreloaderComponent, selector: "rtsee-preloader", inputs: ["diameter", "color"] }] });
390
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessageTimeAndStatusComponent, deps: [{ token: TimeFormatHelperService }], target: i0.ɵɵFactoryTarget.Component }); }
391
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: MessageTimeAndStatusComponent, selector: "rtsee-message-time-and-status", inputs: { message: "message", hideStatus: "hideStatus", inChat: "inChat" }, ngImport: i0, template: "<div class=\"rtsee-messenger-message-time-and-status\">\n <span class=\"rtsee-messenger-message-status\" *ngIf=\"!hideStatus\" [ngClass]=\"{'showing-status-inside-chat': inChat }\">\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: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PreloaderComponent, selector: "rtsee-preloader", inputs: ["diameter", "color"] }] }); }
408
392
  }
409
393
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessageTimeAndStatusComponent, decorators: [{
410
394
  type: Component,
@@ -418,14 +402,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
418
402
  }] } });
419
403
 
420
404
  class MessageComponent {
421
- widgetsService;
422
- componentFactoryResolver;
423
- timeFormatService;
424
- chat;
425
- message;
426
- member;
427
- messenger;
428
- widgetHost;
429
405
  constructor(widgetsService, componentFactoryResolver, timeFormatService) {
430
406
  this.widgetsService = widgetsService;
431
407
  this.componentFactoryResolver = componentFactoryResolver;
@@ -448,8 +424,8 @@ class MessageComponent {
448
424
  }
449
425
  /* eslint-enable */
450
426
  }
451
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessageComponent, deps: [{ token: MessageWidgetsService }, { token: i0.ComponentFactoryResolver }, { token: TimeFormatHelperService }], target: i0.ɵɵFactoryTarget.Component });
452
- 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 [inChat]=\"true\"\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: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: WidgetDirective, selector: "[widgetHost]" }, { kind: "component", type: MessageTimeAndStatusComponent, selector: "rtsee-message-time-and-status", inputs: ["message", "hideStatus", "inChat"] }] });
427
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessageComponent, deps: [{ token: MessageWidgetsService }, { token: i0.ComponentFactoryResolver }, { token: TimeFormatHelperService }], target: i0.ɵɵFactoryTarget.Component }); }
428
+ static { this.ɵ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 [inChat]=\"true\"\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: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: WidgetDirective, selector: "[widgetHost]" }, { kind: "component", type: MessageTimeAndStatusComponent, selector: "rtsee-message-time-and-status", inputs: ["message", "hideStatus", "inChat"] }] }); }
453
429
  }
454
430
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessageComponent, decorators: [{
455
431
  type: Component,
@@ -468,11 +444,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
468
444
  }] } });
469
445
 
470
446
  class MessagesListComponent {
471
- timeFormatService;
472
- bindScrollFunction;
473
- chat;
474
- messenger;
475
- scrollContainer;
476
447
  constructor(timeFormatService) {
477
448
  this.timeFormatService = timeFormatService;
478
449
  this.bindScrollFunction = this.scrollToBottom.bind(this);
@@ -519,8 +490,8 @@ class MessagesListComponent {
519
490
  formatDate(message) {
520
491
  return this.timeFormatService.formatDate(message.createdAt);
521
492
  }
522
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessagesListComponent, deps: [{ token: TimeFormatHelperService }], target: i0.ɵɵFactoryTarget.Component });
523
- 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 <rtsee-message [message]=\"message\" [messenger]=\"messenger\" [chat]=\"chat\"></rtsee-message>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.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: MessageComponent, selector: "rtsee-message", inputs: ["chat", "message", "member", "messenger"] }] });
493
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessagesListComponent, deps: [{ token: TimeFormatHelperService }], target: i0.ɵɵFactoryTarget.Component }); }
494
+ static { this.ɵ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 <rtsee-message [message]=\"message\" [messenger]=\"messenger\" [chat]=\"chat\"></rtsee-message>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.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: MessageComponent, selector: "rtsee-message", inputs: ["chat", "message", "member", "messenger"] }] }); }
524
495
  }
525
496
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessagesListComponent, decorators: [{
526
497
  type: Component,
@@ -535,13 +506,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
535
506
  }] } });
536
507
 
537
508
  class ChatInputComponent {
538
- sendMessageForm = new FormGroup({
539
- /* eslint-disable */
540
- message: new FormControl('', Validators.required),
541
- /* eslint-enable */
542
- });
543
- messenger;
544
- chat;
509
+ constructor() {
510
+ this.sendMessageForm = new FormGroup({
511
+ /* eslint-disable */
512
+ message: new FormControl('', Validators.required),
513
+ /* eslint-enable */
514
+ });
515
+ }
545
516
  sendMessage() {
546
517
  const text = this.sendMessageForm.get('message')?.value;
547
518
  if (!text) {
@@ -550,8 +521,8 @@ class ChatInputComponent {
550
521
  this.chat.sendMessage(text);
551
522
  this.sendMessageForm.get('message')?.setValue('');
552
523
  }
553
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ChatInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
554
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: ChatInputComponent, selector: "rtsee-chat-input", inputs: { messenger: "messenger", chat: "chat" }, ngImport: i0, template: "<div class=\"rtsee-chat-input\" xmlns=\"http://www.w3.org/1999/html\">\n <div class=\"rtsee-send-message\">\n <form [formGroup]=\"sendMessageForm\" class=\"rtsee-chat-input-form\">\n <textarea\n placeholder=\"Type message...\"\n type=\"text\"\n formControlName=\"message\"\n class=\"rtsee-chat-input-field\"\n autosize\n required\n (keyup.enter)=\"sendMessage()\"\n ></textarea>\n </form>\n </div>\n <button (click)=\"sendMessage()\"\n class=\"rtsee-send-message-button\"\n type=\"submit\">\n <span class=\"material-icons-outlined\">send</span>\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2$1.AutosizeDirective, selector: "[autosize]", inputs: ["minRows", "autosize", "maxRows", "onlyGrow", "useImportant"], outputs: ["resized"] }] });
524
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ChatInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
525
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: ChatInputComponent, selector: "rtsee-chat-input", inputs: { messenger: "messenger", chat: "chat" }, ngImport: i0, template: "<div class=\"rtsee-chat-input\" xmlns=\"http://www.w3.org/1999/html\">\n <div class=\"rtsee-send-message\">\n <form [formGroup]=\"sendMessageForm\" class=\"rtsee-chat-input-form\">\n <textarea\n placeholder=\"Type message...\"\n type=\"text\"\n formControlName=\"message\"\n class=\"rtsee-chat-input-field\"\n autosize\n required\n (keyup.enter)=\"sendMessage()\"\n ></textarea>\n </form>\n </div>\n <button (click)=\"sendMessage()\"\n class=\"rtsee-send-message-button\"\n type=\"submit\">\n <span class=\"material-icons-outlined\">send</span>\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2$1.AutosizeDirective, selector: "[autosize]", inputs: ["minRows", "autosize", "maxRows", "onlyGrow", "useImportant"], outputs: ["resized"] }] }); }
555
526
  }
556
527
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ChatInputComponent, decorators: [{
557
528
  type: Component,
@@ -563,14 +534,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
563
534
  }] } });
564
535
 
565
536
  class ChatComponent {
566
- chat;
567
- messenger;
568
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ChatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
569
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: ChatComponent, selector: "rtsee-chat", inputs: { chat: "chat", messenger: "messenger" }, ngImport: i0, template: "<div class=\"rtsee-chat\">\n <div class=\"rtsee-chat-body-container\">\n <rtsee-messages-list [messenger]=\"messenger\" [chat]=\"chat\"></rtsee-messages-list>\n </div>\n <div class=\"rtsee-chat-footer-container\">\n <rtsee-chat-input [messenger]=\"messenger\" [chat]=\"chat\"></rtsee-chat-input>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: MessagesListComponent, selector: "rtsee-messages-list", inputs: ["chat", "messenger"] }, { kind: "component", type: ChatInputComponent, selector: "rtsee-chat-input", inputs: ["messenger", "chat"] }] });
537
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ChatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
538
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: ChatComponent, selector: "rtsee-chat", inputs: { chat: "chat", messenger: "messenger" }, ngImport: i0, template: "<div class=\"rtsee-chat\">\n <div class=\"rtsee-chat-body-container\">\n <rtsee-messages-list [messenger]=\"messenger\" [chat]=\"chat\"></rtsee-messages-list>\n </div>\n <div class=\"rtsee-chat-footer-container\">\n <div class=\"rtsee-chat-footer-container-inner\">\n <rtsee-chat-input [messenger]=\"messenger\" [chat]=\"chat\"></rtsee-chat-input>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: MessagesListComponent, selector: "rtsee-messages-list", inputs: ["chat", "messenger"] }, { kind: "component", type: ChatInputComponent, selector: "rtsee-chat-input", inputs: ["messenger", "chat"] }] }); }
570
539
  }
571
540
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ChatComponent, decorators: [{
572
541
  type: Component,
573
- args: [{ selector: 'rtsee-chat', template: "<div class=\"rtsee-chat\">\n <div class=\"rtsee-chat-body-container\">\n <rtsee-messages-list [messenger]=\"messenger\" [chat]=\"chat\"></rtsee-messages-list>\n </div>\n <div class=\"rtsee-chat-footer-container\">\n <rtsee-chat-input [messenger]=\"messenger\" [chat]=\"chat\"></rtsee-chat-input>\n </div>\n</div>\n" }]
542
+ args: [{ selector: 'rtsee-chat', template: "<div class=\"rtsee-chat\">\n <div class=\"rtsee-chat-body-container\">\n <rtsee-messages-list [messenger]=\"messenger\" [chat]=\"chat\"></rtsee-messages-list>\n </div>\n <div class=\"rtsee-chat-footer-container\">\n <div class=\"rtsee-chat-footer-container-inner\">\n <rtsee-chat-input [messenger]=\"messenger\" [chat]=\"chat\"></rtsee-chat-input>\n </div>\n </div>\n</div>\n" }]
574
543
  }], propDecorators: { chat: [{
575
544
  type: Input
576
545
  }], messenger: [{
@@ -578,7 +547,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
578
547
  }] } });
579
548
 
580
549
  class ShaveDirective {
581
- elem;
582
550
  constructor(elem) {
583
551
  this.elem = elem;
584
552
  }
@@ -586,8 +554,8 @@ class ShaveDirective {
586
554
  const height = this.elem.nativeElement?.offsetHeight;
587
555
  shave(this.elem.nativeElement, height);
588
556
  }
589
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ShaveDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
590
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.3", type: ShaveDirective, selector: "[rtseeShave]", ngImport: i0 });
557
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ShaveDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
558
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.3", type: ShaveDirective, selector: "[rtseeShave]", ngImport: i0 }); }
591
559
  }
592
560
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ShaveDirective, decorators: [{
593
561
  type: Directive,
@@ -597,15 +565,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
597
565
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
598
566
 
599
567
  class ChatThumbnailComponent {
600
- timeFormatService;
601
- chat;
602
- messenger;
603
- RTSeeChatTypes = RTSeeChatTypes;
604
568
  constructor(timeFormatService) {
605
569
  this.timeFormatService = timeFormatService;
570
+ this.RTSeeChatTypes = RTSeeChatTypes;
606
571
  }
607
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ChatThumbnailComponent, deps: [{ token: TimeFormatHelperService }], target: i0.ɵɵFactoryTarget.Component });
608
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: ChatThumbnailComponent, selector: "rtsee-chat-thumbnail", inputs: { chat: "chat", messenger: "messenger" }, ngImport: i0, template: "<div class=\"rtsee-chat-thumbnail\" (click)=\"messenger.openChatById(chat.chatId)\">\n <div class=\"rtsee-chat-thumbnail-image\">\n <img [src]=\"chat.chatImageUrl\" alt=\"chat-img\">\n </div>\n <div class=\"rtsee-chat-thumbnail-left\">\n <div class=\"rtsee-chat-thumbnail-name\">\n <span>{{ chat.chatName }}</span>\n <div class=\"rtsee-chat-thumbnail-status\">\n <rtsee-message-time-and-status [message]=\"chat\"\n [hideStatus]=\"chat && !!(chat.unreadMessagesCount)\">\n </rtsee-message-time-and-status>\n </div>\n </div>\n <div class=\"rtsee-chat-thumbnail-last-message\"\n [ngClass]=\"{'rtsee-has-unread': chat.unreadMessagesCount}\"\n rtseeShave>\n <span class=\"rtsee-chat-thumbnail-last-message-sender\"\n *ngIf=\"chat.chatType !== RTSeeChatTypes.INDIVIDUAL && chat.senderName\"\n >{{chat.senderName}}</span>\n <span class=\"rtsee-chat-thumbnail-last-message-text\"\n *ngIf=\"chat.text\"\n >{{chat.text}}</span>\n <div class=\"rtsee-messenger-thumbnail-unread\" *ngIf=\"chat.unreadMessagesCount\">\n <span class=\"rtsee-messenger-thumbnail-unread-count\">{{chat.unreadMessagesCount}}</span>\n </div>\n </div>\n </div>\n</div>\n", 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: MessageTimeAndStatusComponent, selector: "rtsee-message-time-and-status", inputs: ["message", "hideStatus", "inChat"] }, { kind: "directive", type: ShaveDirective, selector: "[rtseeShave]" }] });
572
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ChatThumbnailComponent, deps: [{ token: TimeFormatHelperService }], target: i0.ɵɵFactoryTarget.Component }); }
573
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: ChatThumbnailComponent, selector: "rtsee-chat-thumbnail", inputs: { chat: "chat", messenger: "messenger" }, ngImport: i0, template: "<div class=\"rtsee-chat-thumbnail\" (click)=\"messenger.openChatById(chat.chatId)\">\n <div class=\"rtsee-chat-thumbnail-image\">\n <img [src]=\"chat.chatImageUrl\" alt=\"chat-img\">\n </div>\n <div class=\"rtsee-chat-thumbnail-left\">\n <div class=\"rtsee-chat-thumbnail-name\">\n <span>{{ chat.chatName }}</span>\n <div class=\"rtsee-chat-thumbnail-status\">\n <rtsee-message-time-and-status [message]=\"chat\"\n [hideStatus]=\"chat && !!(chat.unreadMessagesCount)\">\n </rtsee-message-time-and-status>\n </div>\n </div>\n <div class=\"rtsee-chat-thumbnail-last-message\"\n [ngClass]=\"{'rtsee-has-unread': chat.unreadMessagesCount}\"\n rtseeShave>\n <span class=\"rtsee-chat-thumbnail-last-message-sender\"\n *ngIf=\"chat.chatType !== RTSeeChatTypes.INDIVIDUAL && chat.senderName\"\n >{{chat.senderName}}</span>\n <span class=\"rtsee-chat-thumbnail-last-message-text\"\n *ngIf=\"chat.text\"\n >{{chat.text}}</span>\n <div class=\"rtsee-messenger-thumbnail-unread\" *ngIf=\"chat.unreadMessagesCount\">\n <span class=\"rtsee-messenger-thumbnail-unread-count\">{{chat.unreadMessagesCount}}</span>\n </div>\n </div>\n </div>\n</div>\n", 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: MessageTimeAndStatusComponent, selector: "rtsee-message-time-and-status", inputs: ["message", "hideStatus", "inChat"] }, { kind: "directive", type: ShaveDirective, selector: "[rtseeShave]" }] }); }
609
574
  }
610
575
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ChatThumbnailComponent, decorators: [{
611
576
  type: Component,
@@ -617,13 +582,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
617
582
  }] } });
618
583
 
619
584
  class ChatsListComponent {
620
- messenger;
621
- chats;
622
585
  ngOnInit() {
623
586
  // console.log(this.chats);
624
587
  }
625
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ChatsListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
626
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: ChatsListComponent, selector: "rtsee-chats-list", inputs: { messenger: "messenger", chats: "chats" }, ngImport: i0, template: "<div class=\"rtsee-chats-list\">\n <div class=\"rtsee-chat-thumbnail-container\" *ngFor=\"let chat of chats; let last = last;\">\n <rtsee-chat-thumbnail [chat]=\"chat.thumbnail\" [messenger]=\"messenger\"></rtsee-chat-thumbnail>\n<!-- <div class=\"rtsee-chat-thumbnail-separator\" *ngIf=\"!last\"></div>-->\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ChatThumbnailComponent, selector: "rtsee-chat-thumbnail", inputs: ["chat", "messenger"] }] });
588
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ChatsListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
589
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: ChatsListComponent, selector: "rtsee-chats-list", inputs: { messenger: "messenger", chats: "chats" }, ngImport: i0, template: "<div class=\"rtsee-chats-list\">\n <div class=\"rtsee-chat-thumbnail-container\" *ngFor=\"let chat of chats; let last = last;\">\n <rtsee-chat-thumbnail [chat]=\"chat.thumbnail\" [messenger]=\"messenger\"></rtsee-chat-thumbnail>\n<!-- <div class=\"rtsee-chat-thumbnail-separator\" *ngIf=\"!last\"></div>-->\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ChatThumbnailComponent, selector: "rtsee-chat-thumbnail", inputs: ["chat", "messenger"] }] }); }
627
590
  }
628
591
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ChatsListComponent, decorators: [{
629
592
  type: Component,
@@ -635,9 +598,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
635
598
  }] } });
636
599
 
637
600
  class DefaultImagesService {
638
- PROFILE = 'https://werf-assets.s3.amazonaws.com/default-profile-logo.png';
639
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: DefaultImagesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
640
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: DefaultImagesService, providedIn: 'root' });
601
+ constructor() {
602
+ this.PROFILE = 'https://werf-assets.s3.amazonaws.com/default-profile-logo.png';
603
+ }
604
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: DefaultImagesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
605
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: DefaultImagesService, providedIn: 'root' }); }
641
606
  }
642
607
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: DefaultImagesService, decorators: [{
643
608
  type: Injectable,
@@ -647,7 +612,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
647
612
  }] });
648
613
 
649
614
  class ProfileComponent {
650
- messenger;
651
615
  call() {
652
616
  if (!this.messenger.openedChat) {
653
617
  return;
@@ -660,8 +624,8 @@ class ProfileComponent {
660
624
  }
661
625
  void this.messenger.initializeVideoCall(this.messenger.openedChat);
662
626
  }
663
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ProfileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
664
- 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" });
627
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ProfileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
628
+ static { this.ɵ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" }); }
665
629
  }
666
630
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ProfileComponent, decorators: [{
667
631
  type: Component,
@@ -671,12 +635,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
671
635
  }] } });
672
636
 
673
637
  class MessengerHeaderComponent {
674
- defaultImagesService;
675
- expandToggled = new EventEmitter();
676
- isExpanded;
677
- messenger;
678
638
  constructor(defaultImagesService) {
679
639
  this.defaultImagesService = defaultImagesService;
640
+ this.expandToggled = new EventEmitter();
680
641
  this.isExpanded = false;
681
642
  this.expandToggled.emit(this.isExpanded);
682
643
  }
@@ -684,8 +645,8 @@ class MessengerHeaderComponent {
684
645
  this.isExpanded = !this.isExpanded;
685
646
  this.expandToggled.emit(this.isExpanded);
686
647
  }
687
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessengerHeaderComponent, deps: [{ token: DefaultImagesService }], target: i0.ɵɵFactoryTarget.Component });
688
- 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-chat-header-unread': messenger.openedChat && !messenger.unreadMessagesCount,\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 && false\"\n (click)=\"messenger.openMainMenu(true)\"\n >\n <span class=\"material-icons-outlined rtsee-messenger-menu-toggle-icon\">menu</span>\n </button>\n <button class=\"rtsee-messenger-fold-toggle\"\n (click)=\"messenger.changeChatFoldState(!messenger.folded)\"\n >\n <span *ngIf=\"!messenger.folded\" class=\"material-icons-outlined rtsee-messenger-menu-toggle-icon\">expand_more</span>\n <span *ngIf=\"messenger.folded\" class=\"material-icons-outlined rtsee-messenger-menu-toggle-icon\">expand_less</span>\n </button>\n\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: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ProfileComponent, selector: "rtsee-profile", inputs: ["messenger"] }] });
648
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessengerHeaderComponent, deps: [{ token: DefaultImagesService }], target: i0.ɵɵFactoryTarget.Component }); }
649
+ static { this.ɵ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-chat-header-unread': messenger.openedChat && !messenger.unreadMessagesCount,\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 && false\"\n (click)=\"messenger.openMainMenu(true)\"\n >\n <span class=\"material-icons-outlined rtsee-messenger-menu-toggle-icon\">menu</span>\n </button>\n <button class=\"rtsee-messenger-fold-toggle\"\n (click)=\"messenger.changeChatFoldState(!messenger.folded)\"\n >\n <span *ngIf=\"!messenger.folded\" class=\"material-icons-outlined rtsee-messenger-menu-toggle-icon\">expand_more</span>\n <span *ngIf=\"messenger.folded\" class=\"material-icons-outlined rtsee-messenger-menu-toggle-icon\">expand_less</span>\n </button>\n\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: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ProfileComponent, selector: "rtsee-profile", inputs: ["messenger"] }] }); }
689
650
  }
690
651
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessengerHeaderComponent, decorators: [{
691
652
  type: Component,
@@ -707,9 +668,9 @@ var MainMenuPanels;
707
668
  const DEFAULT_MAIN_MENU_STATE = MainMenuPanels.HOME;
708
669
 
709
670
  class SearchComponent {
710
- queryControl = new FormControl();
711
- queryCtrlSub;
712
- search;
671
+ constructor() {
672
+ this.queryControl = new FormControl();
673
+ }
713
674
  ngOnInit() {
714
675
  this.queryCtrlSub = this.queryControl.valueChanges
715
676
  .pipe(debounceTime(200))
@@ -720,8 +681,8 @@ class SearchComponent {
720
681
  this.queryCtrlSub.unsubscribe();
721
682
  }
722
683
  }
723
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: SearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
724
- 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: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: PreloaderComponent, selector: "rtsee-preloader", inputs: ["diameter", "color"] }] });
684
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: SearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
685
+ static { this.ɵ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: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: PreloaderComponent, selector: "rtsee-preloader", inputs: ["diameter", "color"] }] }); }
725
686
  }
726
687
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: SearchComponent, decorators: [{
727
688
  type: Component,
@@ -731,13 +692,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
731
692
  }] } });
732
693
 
733
694
  class ManageChatComponent {
734
- messenger;
735
- menuState;
736
695
  onInviteContactsClicked() {
737
696
  this.menuState.activePanel = MainMenuPanels.CONTACTS_SELECT;
738
697
  }
739
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ManageChatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
740
- 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: [""] });
698
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ManageChatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
699
+ static { this.ɵ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: [""] }); }
741
700
  }
742
701
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ManageChatComponent, decorators: [{
743
702
  type: Component,
@@ -749,10 +708,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
749
708
  }] } });
750
709
 
751
710
  class ContactsMultiselectComponent {
752
- menuState;
753
- search;
754
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ContactsMultiselectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
755
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: ContactsMultiselectComponent, selector: "rtsee-contacts-multiselect", inputs: { menuState: "menuState", search: "search" }, ngImport: i0, template: "<div class=\"rtsee-messenger-contacts-multiselect\">\n <rtsee-search [search]=\"search\"></rtsee-search>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: SearchComponent, selector: "rtsee-search", inputs: ["search"] }] });
711
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ContactsMultiselectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
712
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: ContactsMultiselectComponent, selector: "rtsee-contacts-multiselect", inputs: { menuState: "menuState", search: "search" }, ngImport: i0, template: "<div class=\"rtsee-messenger-contacts-multiselect\">\n <rtsee-search [search]=\"search\"></rtsee-search>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: SearchComponent, selector: "rtsee-search", inputs: ["search"] }] }); }
756
713
  }
757
714
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ContactsMultiselectComponent, decorators: [{
758
715
  type: Component,
@@ -764,20 +721,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
764
721
  }] } });
765
722
 
766
723
  class MainMenuComponent {
767
- search;
768
- messenger;
769
- MainMenuPanels = MainMenuPanels;
770
- state = {
771
- activePanel: DEFAULT_MAIN_MENU_STATE,
772
- };
724
+ constructor() {
725
+ this.MainMenuPanels = MainMenuPanels;
726
+ this.state = {
727
+ activePanel: DEFAULT_MAIN_MENU_STATE,
728
+ };
729
+ }
773
730
  onNewGroupClicked() {
774
731
  this.state.activePanel = MainMenuPanels.CONTACTS_SELECT;
775
732
  }
776
733
  onNewChannelClicked() {
777
734
  this.state.activePanel = MainMenuPanels.MANAGE_CHAT;
778
735
  }
779
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MainMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
780
- 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: SearchComponent, selector: "rtsee-search", inputs: ["search"] }, { kind: "component", type: ManageChatComponent, selector: "rtsee-manage-chat", inputs: ["messenger", "menuState"] }, { kind: "component", type: ContactsMultiselectComponent, selector: "rtsee-contacts-multiselect", inputs: ["menuState", "search"] }] });
736
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MainMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
737
+ static { this.ɵ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: SearchComponent, selector: "rtsee-search", inputs: ["search"] }, { kind: "component", type: ManageChatComponent, selector: "rtsee-manage-chat", inputs: ["messenger", "menuState"] }, { kind: "component", type: ContactsMultiselectComponent, selector: "rtsee-contacts-multiselect", inputs: ["menuState", "search"] }] }); }
781
738
  }
782
739
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MainMenuComponent, decorators: [{
783
740
  type: Component,
@@ -789,8 +746,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
789
746
  }] } });
790
747
 
791
748
  class MessengerComponent {
792
- isHeaderExpanded;
793
- messenger;
794
749
  constructor() {
795
750
  this.isHeaderExpanded = false;
796
751
  }
@@ -803,8 +758,8 @@ class MessengerComponent {
803
758
  onHeaderExpandToggled(value) {
804
759
  this.isHeaderExpanded = value;
805
760
  }
806
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessengerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
807
- 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 'rtsee-messenger-folded': messenger.folded\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: i3$1.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: ChatComponent, selector: "rtsee-chat", inputs: ["chat", "messenger"] }, { kind: "component", type: ChatsListComponent, selector: "rtsee-chats-list", inputs: ["messenger", "chats"] }, { kind: "component", type: MessengerHeaderComponent, selector: "rtsee-messenger-header", inputs: ["isExpanded", "messenger"], outputs: ["expandToggled"] }, { kind: "component", type: MainMenuComponent, selector: "rtsee-main-menu", inputs: ["search", "messenger"] }, { kind: "component", type: PreloaderComponent, selector: "rtsee-preloader", inputs: ["diameter", "color"] }] });
761
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessengerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
762
+ static { this.ɵ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 'rtsee-messenger-folded': messenger.folded\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: i3$1.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: ChatComponent, selector: "rtsee-chat", inputs: ["chat", "messenger"] }, { kind: "component", type: ChatsListComponent, selector: "rtsee-chats-list", inputs: ["messenger", "chats"] }, { kind: "component", type: MessengerHeaderComponent, selector: "rtsee-messenger-header", inputs: ["isExpanded", "messenger"], outputs: ["expandToggled"] }, { kind: "component", type: MainMenuComponent, selector: "rtsee-main-menu", inputs: ["search", "messenger"] }, { kind: "component", type: PreloaderComponent, selector: "rtsee-preloader", inputs: ["diameter", "color"] }] }); }
808
763
  }
809
764
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MessengerComponent, decorators: [{
810
765
  type: Component,
@@ -814,7 +769,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
814
769
  }] } });
815
770
 
816
771
  class EventsWidgetsService {
817
- widgetsMap = [];
772
+ constructor() {
773
+ this.widgetsMap = [];
774
+ }
818
775
  getWidgetComponentByName(name) {
819
776
  /* eslint-disable */
820
777
  const mapping = this.widgetsMap.find((e) => e.name === name);
@@ -824,8 +781,8 @@ class EventsWidgetsService {
824
781
  return mapping.component;
825
782
  /* eslint-enable */
826
783
  }
827
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: EventsWidgetsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
828
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: EventsWidgetsService, providedIn: 'root' });
784
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: EventsWidgetsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
785
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: EventsWidgetsService, providedIn: 'root' }); }
829
786
  }
830
787
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: EventsWidgetsService, decorators: [{
831
788
  type: Injectable,
@@ -835,13 +792,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
835
792
  }] });
836
793
 
837
794
  class EventThumbnailComponent {
838
- widgetsService;
839
- componentFactoryResolver;
840
- timeFormatService;
841
- cd;
842
- tooltip;
843
- event;
844
- widgetHost;
845
795
  constructor(widgetsService, componentFactoryResolver, timeFormatService, cd) {
846
796
  this.widgetsService = widgetsService;
847
797
  this.componentFactoryResolver = componentFactoryResolver;
@@ -893,8 +843,8 @@ class EventThumbnailComponent {
893
843
  }
894
844
  /* eslint-enable */
895
845
  }
896
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: EventThumbnailComponent, deps: [{ token: EventsWidgetsService }, { token: i0.ComponentFactoryResolver }, { token: TimeFormatHelperService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
897
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: EventThumbnailComponent, selector: "rtsee-event-thumbnail", inputs: { event: "event" }, viewQueries: [{ propertyName: "widgetHost", first: true, predicate: WidgetDirective, descendants: true }], ngImport: i0, template: "<div class=\"rtsee-events-dashboard-event-thumbnail\">\n <ng-template *ngIf=\"event.widget\" widgetHost></ng-template>\n <div *ngIf=\"!event.widget\" class=\"rtsee-events-dashboard-default-event-thumbnail\"\n [ngClass]=\"{'rtsee-events-dashboard-default-event-thumbnail-with-data': event.data}\"\n >\n <div class=\"rtsee-events-dashboard-default-event-thumbnail-name\">{{event.name}}</div>\n <div class=\"rtsee-events-dashboard-default-event-thumbnail-info\">\n <div *ngIf=\"event.data\" class=\"rtsee-events-dashboard-default-event-thumbnail-details\"\n [title]=\"tooltip\"\n >\n <span class=\"rtsee-events-dashboard-default-event-thumbnail-details-icon material-icons-outlined\"\n >info</span>\n </div>\n <div class=\"rtsee-events-dashboard-default-event-thumbnail-time\">\n <span>{{ timeFormatService.toAgo(event.createdAt) }}</span>\n </div>\n </div>\n\n </div>\n</div>\n", 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: WidgetDirective, selector: "[widgetHost]" }] });
846
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: EventThumbnailComponent, deps: [{ token: EventsWidgetsService }, { token: i0.ComponentFactoryResolver }, { token: TimeFormatHelperService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
847
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: EventThumbnailComponent, selector: "rtsee-event-thumbnail", inputs: { event: "event" }, viewQueries: [{ propertyName: "widgetHost", first: true, predicate: WidgetDirective, descendants: true }], ngImport: i0, template: "<div class=\"rtsee-events-dashboard-event-thumbnail\">\n <ng-template *ngIf=\"event.widget\" widgetHost></ng-template>\n <div *ngIf=\"!event.widget\" class=\"rtsee-events-dashboard-default-event-thumbnail\"\n [ngClass]=\"{'rtsee-events-dashboard-default-event-thumbnail-with-data': event.data}\"\n >\n <div class=\"rtsee-events-dashboard-default-event-thumbnail-name\">{{event.name}}</div>\n <div class=\"rtsee-events-dashboard-default-event-thumbnail-info\">\n <div *ngIf=\"event.data\" class=\"rtsee-events-dashboard-default-event-thumbnail-details\"\n [title]=\"tooltip\"\n >\n <span class=\"rtsee-events-dashboard-default-event-thumbnail-details-icon material-icons-outlined\"\n >info</span>\n </div>\n <div class=\"rtsee-events-dashboard-default-event-thumbnail-time\">\n <span>{{ timeFormatService.toAgo(event.createdAt) }}</span>\n </div>\n </div>\n\n </div>\n</div>\n", 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: WidgetDirective, selector: "[widgetHost]" }] }); }
898
848
  }
899
849
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: EventThumbnailComponent, decorators: [{
900
850
  type: Component,
@@ -907,13 +857,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
907
857
  }] } });
908
858
 
909
859
  class RtseeEventsDashboardSessionComponent {
910
- timeFormatService;
911
- session;
912
860
  constructor(timeFormatService) {
913
861
  this.timeFormatService = timeFormatService;
914
862
  }
915
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeEventsDashboardSessionComponent, deps: [{ token: TimeFormatHelperService }], target: i0.ɵɵFactoryTarget.Component });
916
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: RtseeEventsDashboardSessionComponent, selector: "rtsee-rtsee-events-dashboard-session", inputs: { session: "session" }, ngImport: i0, template: "<div class=\"rtsee-events-dashboard-session\">\n <div class=\"rtsee-events-dashboard-session-header\" *ngIf=\"session.info\">\n <p class=\"rtsee-events-dashboard-session-client-info\">{{session.info.clientThumbnail}}</p>\n <p class=\"rtsee-events-dashboard-session-os-info\">{{session.info.osThumbnail}}</p>\n <div class=\"rtsee-events-dashboard-session-device-info\" [title]=\"session.info.deviceThumbnail\">\n <span *ngIf=\"session.info.deviceType === 'smartphone' && !session.info.botName\"\n class=\"material-icons-outlined rtsee-events-dashboard-session-device-info-icon\"\n >phone_iphone</span>\n <span class=\"material-icons-outlined rtsee-events-dashboard-session-device-info-icon\"\n *ngIf=\"session.info.deviceType === 'tablet' && !session.info.botName\"\n >tablet_mac</span>\n <span class=\"material-icons-outlined rtsee-events-dashboard-session-device-info-icon\"\n *ngIf=\"session.info.deviceType === 'desktop' && !session.info.botName\"\n >computer</span>\n <span class=\"material-icons-outlined rtsee-events-dashboard-session-device-info-icon\"\n *ngIf=\"session.info.botName\"\n >smart_toy</span>\n </div>\n </div>\n <ul *ngIf=\"session.events && session.events.length\"\n class=\"rtsee-events-dashboard-session-events-list\"\n >\n <li *ngFor=\"let event of session.events | slice:0:5;\" class=\"rtsee-events-dashboard-session-event\">\n <rtsee-event-thumbnail [event]=\"event\"></rtsee-event-thumbnail>\n </li>\n </ul>\n <div class=\"rtsee-events-dashboard-session-footer\">\n <button *ngIf=\"session.events.length > 5\">{{session.events.length - 5}} more</button>\n </div>\n</div>\n", 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: "component", type: EventThumbnailComponent, selector: "rtsee-event-thumbnail", inputs: ["event"] }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }] });
863
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeEventsDashboardSessionComponent, deps: [{ token: TimeFormatHelperService }], target: i0.ɵɵFactoryTarget.Component }); }
864
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: RtseeEventsDashboardSessionComponent, selector: "rtsee-rtsee-events-dashboard-session", inputs: { session: "session" }, ngImport: i0, template: "<div class=\"rtsee-events-dashboard-session\">\n <div class=\"rtsee-events-dashboard-session-header\" *ngIf=\"session.info\">\n <p class=\"rtsee-events-dashboard-session-client-info\">{{session.info.clientThumbnail}}</p>\n <p class=\"rtsee-events-dashboard-session-os-info\">{{session.info.osThumbnail}}</p>\n <div class=\"rtsee-events-dashboard-session-device-info\" [title]=\"session.info.deviceThumbnail\">\n <span *ngIf=\"session.info.deviceType === 'smartphone' && !session.info.botName\"\n class=\"material-icons-outlined rtsee-events-dashboard-session-device-info-icon\"\n >phone_iphone</span>\n <span class=\"material-icons-outlined rtsee-events-dashboard-session-device-info-icon\"\n *ngIf=\"session.info.deviceType === 'tablet' && !session.info.botName\"\n >tablet_mac</span>\n <span class=\"material-icons-outlined rtsee-events-dashboard-session-device-info-icon\"\n *ngIf=\"session.info.deviceType === 'desktop' && !session.info.botName\"\n >computer</span>\n <span class=\"material-icons-outlined rtsee-events-dashboard-session-device-info-icon\"\n *ngIf=\"session.info.botName\"\n >smart_toy</span>\n </div>\n </div>\n <ul *ngIf=\"session.events && session.events.length\"\n class=\"rtsee-events-dashboard-session-events-list\"\n >\n <li *ngFor=\"let event of session.events | slice:0:5;\" class=\"rtsee-events-dashboard-session-event\">\n <rtsee-event-thumbnail [event]=\"event\"></rtsee-event-thumbnail>\n </li>\n </ul>\n <div class=\"rtsee-events-dashboard-session-footer\">\n <button *ngIf=\"session.events.length > 5\">{{session.events.length - 5}} more</button>\n </div>\n</div>\n", 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: "component", type: EventThumbnailComponent, selector: "rtsee-event-thumbnail", inputs: ["event"] }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }] }); }
917
865
  }
918
866
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeEventsDashboardSessionComponent, decorators: [{
919
867
  type: Component,
@@ -923,10 +871,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
923
871
  }] } });
924
872
 
925
873
  class RtseeEventsDashboardClientThumbnailComponent {
926
- timeFormatService;
927
- defaultImagesService;
928
- dashboard;
929
- client;
930
874
  constructor(timeFormatService, defaultImagesService) {
931
875
  this.timeFormatService = timeFormatService;
932
876
  this.defaultImagesService = defaultImagesService;
@@ -938,8 +882,8 @@ class RtseeEventsDashboardClientThumbnailComponent {
938
882
  console.log('Open Chat Clicked! Client ID #', this.client.id);
939
883
  this.dashboard.openChat(this.client);
940
884
  }
941
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeEventsDashboardClientThumbnailComponent, deps: [{ token: TimeFormatHelperService }, { token: DefaultImagesService }], target: i0.ɵɵFactoryTarget.Component });
942
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: RtseeEventsDashboardClientThumbnailComponent, selector: "ngx-rtsee-events-dashboard-client-thumbnail", inputs: { dashboard: "dashboard", client: "client" }, ngImport: i0, template: "<div class=\"rtsee-dashboard-client-thumbnail\">\n <div class=\"rtsee-dashboard-client-header\">\n <div class=\"rtsee-dashboard-client-header-photo\">\n <div class=\"rtsee-dashboard-client-header-image\"\n [style.background-image]=\"'url(' + client.imageUrl || defaultImagesService.PROFILE + ')'\"\n ></div>\n <div class=\"rtsee-dashboard-client-live-indicator\" *ngIf=\"client.isConnected\"></div>\n </div>\n <p class=\"rtsee-dashboard-client-name\">\n <span class=\"rtsee-dashboard-client-name-text\">{{ client.name || client.id }}</span>\n <button (click)=\"openChat()\" class=\"rtsee-dashboard-client-engage\">\n <span class=\"rtsee-dashboard-client-engage-icon material-icons-outlined\">chat_bubble</span>\n </button>\n </p>\n </div>\n <div class=\"rtsee-dashboard-sessions\">\n <div *ngFor=\"let session of client.sessions\"\n class=\"rtsee-dashboard-sessions-container\">\n <rtsee-rtsee-events-dashboard-session [session]=\"session\"></rtsee-rtsee-events-dashboard-session>\n </div>\n </div>\n</div>\n", 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: "component", type: RtseeEventsDashboardSessionComponent, selector: "rtsee-rtsee-events-dashboard-session", inputs: ["session"] }] });
885
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeEventsDashboardClientThumbnailComponent, deps: [{ token: TimeFormatHelperService }, { token: DefaultImagesService }], target: i0.ɵɵFactoryTarget.Component }); }
886
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: RtseeEventsDashboardClientThumbnailComponent, selector: "ngx-rtsee-events-dashboard-client-thumbnail", inputs: { dashboard: "dashboard", client: "client" }, ngImport: i0, template: "<div class=\"rtsee-dashboard-client-thumbnail\">\n <div class=\"rtsee-dashboard-client-header\">\n <div class=\"rtsee-dashboard-client-header-photo\">\n <div class=\"rtsee-dashboard-client-header-image\"\n [style.background-image]=\"'url(' + client.imageUrl || defaultImagesService.PROFILE + ')'\"\n ></div>\n <div class=\"rtsee-dashboard-client-live-indicator\" *ngIf=\"client.isConnected\"></div>\n </div>\n <p class=\"rtsee-dashboard-client-name\">\n <span class=\"rtsee-dashboard-client-name-text\">{{ client.name || client.id }}</span>\n <button (click)=\"openChat()\" class=\"rtsee-dashboard-client-engage\">\n <span class=\"rtsee-dashboard-client-engage-icon material-icons-outlined\">chat_bubble</span>\n </button>\n </p>\n </div>\n <div class=\"rtsee-dashboard-sessions\">\n <div *ngFor=\"let session of client.sessions\"\n class=\"rtsee-dashboard-sessions-container\">\n <rtsee-rtsee-events-dashboard-session [session]=\"session\"></rtsee-rtsee-events-dashboard-session>\n </div>\n </div>\n</div>\n", 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: "component", type: RtseeEventsDashboardSessionComponent, selector: "rtsee-rtsee-events-dashboard-session", inputs: ["session"] }] }); }
943
887
  }
944
888
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeEventsDashboardClientThumbnailComponent, decorators: [{
945
889
  type: Component,
@@ -951,29 +895,345 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
951
895
  }] } });
952
896
 
953
897
  class RtseeEventsDashboardComponent {
954
- eventsDashboard;
955
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeEventsDashboardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
956
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: RtseeEventsDashboardComponent, selector: "ngx-rtsee-events-dashboard", inputs: { eventsDashboard: "eventsDashboard" }, ngImport: i0, template: "<div class=\"rtsee-events-dashboard\">\n <div class=\"rtsee-events-dashboard-client-thumbnails\">\n <div class=\"rtsee-events-dashboard-client-thumbnail-wrapper\"\n *ngFor=\"let client of eventsDashboard.clients\">\n <ngx-rtsee-events-dashboard-client-thumbnail\n [client]=\"client\"\n [dashboard]=\"eventsDashboard\"\n ></ngx-rtsee-events-dashboard-client-thumbnail>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: RtseeEventsDashboardClientThumbnailComponent, selector: "ngx-rtsee-events-dashboard-client-thumbnail", inputs: ["dashboard", "client"] }] });
898
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeEventsDashboardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
899
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: RtseeEventsDashboardComponent, selector: "rtsee-events-dashboard", inputs: { eventsDashboard: "eventsDashboard" }, ngImport: i0, template: "<div class=\"rtsee-events-dashboard\">\n <div class=\"rtsee-events-dashboard-client-thumbnails\">\n <div class=\"rtsee-events-dashboard-client-thumbnail-wrapper\"\n *ngFor=\"let client of eventsDashboard.clients\">\n <ngx-rtsee-events-dashboard-client-thumbnail\n [client]=\"client\"\n [dashboard]=\"eventsDashboard\"\n ></ngx-rtsee-events-dashboard-client-thumbnail>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: RtseeEventsDashboardClientThumbnailComponent, selector: "ngx-rtsee-events-dashboard-client-thumbnail", inputs: ["dashboard", "client"] }] }); }
957
900
  }
958
901
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeEventsDashboardComponent, decorators: [{
959
902
  type: Component,
960
- args: [{ selector: 'ngx-rtsee-events-dashboard', template: "<div class=\"rtsee-events-dashboard\">\n <div class=\"rtsee-events-dashboard-client-thumbnails\">\n <div class=\"rtsee-events-dashboard-client-thumbnail-wrapper\"\n *ngFor=\"let client of eventsDashboard.clients\">\n <ngx-rtsee-events-dashboard-client-thumbnail\n [client]=\"client\"\n [dashboard]=\"eventsDashboard\"\n ></ngx-rtsee-events-dashboard-client-thumbnail>\n </div>\n </div>\n</div>\n" }]
903
+ args: [{ selector: 'rtsee-events-dashboard', template: "<div class=\"rtsee-events-dashboard\">\n <div class=\"rtsee-events-dashboard-client-thumbnails\">\n <div class=\"rtsee-events-dashboard-client-thumbnail-wrapper\"\n *ngFor=\"let client of eventsDashboard.clients\">\n <ngx-rtsee-events-dashboard-client-thumbnail\n [client]=\"client\"\n [dashboard]=\"eventsDashboard\"\n ></ngx-rtsee-events-dashboard-client-thumbnail>\n </div>\n </div>\n</div>\n" }]
961
904
  }], propDecorators: { eventsDashboard: [{
962
905
  type: Input
963
906
  }] } });
964
907
 
908
+ class SlideComponent {
909
+ slideRewindClicked(forward) {
910
+ if (forward) {
911
+ this.story.nextSlide();
912
+ }
913
+ else {
914
+ this.story.previousSlide();
915
+ }
916
+ }
917
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: SlideComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
918
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: SlideComponent, selector: "rtsee-slide", inputs: { story: "story", slide: "slide" }, ngImport: i0, template: "<div class=\"rtsee-presentation-slide\">\n <ng-template *ngIf=\"slide.widget\" widgetHost></ng-template>\n <div class=\"rtsee-presentation-slide-default\">\n <div class=\"rtsee-presentation-slide-image-container\"\n [ngStyle]=\"{'background-image': 'url(' + slide.imageUrl + ')'}\"\n *ngIf=\"slide.imageUrl\"\n >\n </div>\n <div class=\"rtsee-presentation-slide-text\">\n <p>{{slide.text}}</p>\n </div>\n <div class=\"rtsee-presentation-slide-controls\">\n <button class=\"slide-navigation-btn navigation-prev\"\n (click)=\"slideRewindClicked(false)\"\n *ngIf=\"story.activeSlideNumber !== 1\"\n >\n <span class=\"rtsee-story-thumbnail-info-time-icon material-icons-outlined\"\n >arrow_back_ios</span>\n </button>\n <button class=\"slide-navigation-btn navigation-next\"\n (click)=\"slideRewindClicked(true)\"\n *ngIf=\"story.activeSlideNumber !== this.story.totalSlides\"\n >\n <span class=\"rtsee-story-thumbnail-info-time-icon material-icons-outlined\"\n >arrow_forward_ios</span>\n </button>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: WidgetDirective, selector: "[widgetHost]" }] }); }
919
+ }
920
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: SlideComponent, decorators: [{
921
+ type: Component,
922
+ args: [{ selector: 'rtsee-slide', template: "<div class=\"rtsee-presentation-slide\">\n <ng-template *ngIf=\"slide.widget\" widgetHost></ng-template>\n <div class=\"rtsee-presentation-slide-default\">\n <div class=\"rtsee-presentation-slide-image-container\"\n [ngStyle]=\"{'background-image': 'url(' + slide.imageUrl + ')'}\"\n *ngIf=\"slide.imageUrl\"\n >\n </div>\n <div class=\"rtsee-presentation-slide-text\">\n <p>{{slide.text}}</p>\n </div>\n <div class=\"rtsee-presentation-slide-controls\">\n <button class=\"slide-navigation-btn navigation-prev\"\n (click)=\"slideRewindClicked(false)\"\n *ngIf=\"story.activeSlideNumber !== 1\"\n >\n <span class=\"rtsee-story-thumbnail-info-time-icon material-icons-outlined\"\n >arrow_back_ios</span>\n </button>\n <button class=\"slide-navigation-btn navigation-next\"\n (click)=\"slideRewindClicked(true)\"\n *ngIf=\"story.activeSlideNumber !== this.story.totalSlides\"\n >\n <span class=\"rtsee-story-thumbnail-info-time-icon material-icons-outlined\"\n >arrow_forward_ios</span>\n </button>\n </div>\n </div>\n</div>\n" }]
923
+ }], propDecorators: { story: [{
924
+ type: Input
925
+ }], slide: [{
926
+ type: Input
927
+ }] } });
928
+
929
+ class StoryPlayerComponent {
930
+ ngOnInit() {
931
+ console.log('Story Player: Story = ', this.story);
932
+ }
933
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: StoryPlayerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
934
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: StoryPlayerComponent, selector: "rtsee-story-player", inputs: { story: "story" }, ngImport: i0, template: "<div class=\"rtsee-story-player\">\n <div class=\"rtsee-story-player-slider\">\n <div class=\"story-player-slide-container\"\n *ngFor=\"let slide of story.slides\"\n [ngClass]=\"{'story-player-slide-active': slide.isActive}\"\n >\n <rtsee-slide [slide]=\"slide\" [story]=\"story\"></rtsee-slide>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: SlideComponent, selector: "rtsee-slide", inputs: ["story", "slide"] }] }); }
935
+ }
936
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: StoryPlayerComponent, decorators: [{
937
+ type: Component,
938
+ args: [{ selector: 'rtsee-story-player', template: "<div class=\"rtsee-story-player\">\n <div class=\"rtsee-story-player-slider\">\n <div class=\"story-player-slide-container\"\n *ngFor=\"let slide of story.slides\"\n [ngClass]=\"{'story-player-slide-active': slide.isActive}\"\n >\n <rtsee-slide [slide]=\"slide\" [story]=\"story\"></rtsee-slide>\n </div>\n </div>\n</div>\n" }]
939
+ }], propDecorators: { story: [{
940
+ type: Input
941
+ }] } });
942
+
943
+ class StoryThumbnailComponent {
944
+ constructor() {
945
+ this.Math = Math;
946
+ }
947
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: StoryThumbnailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
948
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: StoryThumbnailComponent, selector: "rtsee-story-thumbnail", inputs: { story: "story" }, ngImport: i0, template: "<div class=\"rtsee-story-thumbnail\">\n <div class=\"rtsee-story-thumbnail-image-container\"\n [ngStyle]=\"{'background-image': 'url(' + story.imageUrl + ')'}\"\n >\n </div>\n <div class=\"rtsee-story-thumbnail-body-container\">\n <div class=\"rtsee-story-thumbnail-title-container\">\n <h4 class=\"rtsee-story-thumbnail-title\">{{story.name}}</h4>\n </div>\n <div class=\"rtsee-story-thumbnail-info-container\" *ngIf=\"story.averageReadTime\">\n <span class=\"rtsee-story-thumbnail-info-time-icon material-icons-outlined\">schedule</span>\n <span class=\"rtsee-story-thumbnail-info-read-time\">{{ Math.ceil(story.averageReadTime / 60) }} \u0445\u0432</span>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
949
+ }
950
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: StoryThumbnailComponent, decorators: [{
951
+ type: Component,
952
+ args: [{ selector: 'rtsee-story-thumbnail', template: "<div class=\"rtsee-story-thumbnail\">\n <div class=\"rtsee-story-thumbnail-image-container\"\n [ngStyle]=\"{'background-image': 'url(' + story.imageUrl + ')'}\"\n >\n </div>\n <div class=\"rtsee-story-thumbnail-body-container\">\n <div class=\"rtsee-story-thumbnail-title-container\">\n <h4 class=\"rtsee-story-thumbnail-title\">{{story.name}}</h4>\n </div>\n <div class=\"rtsee-story-thumbnail-info-container\" *ngIf=\"story.averageReadTime\">\n <span class=\"rtsee-story-thumbnail-info-time-icon material-icons-outlined\">schedule</span>\n <span class=\"rtsee-story-thumbnail-info-read-time\">{{ Math.ceil(story.averageReadTime / 60) }} \u0445\u0432</span>\n </div>\n </div>\n</div>\n" }]
953
+ }], propDecorators: { story: [{
954
+ type: Input
955
+ }] } });
956
+
957
+ class PresentationHeaderComponent {
958
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: PresentationHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
959
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: PresentationHeaderComponent, selector: "rtsee-presentation-header", inputs: { presentation: "presentation" }, ngImport: i0, template: "<div class=\"rtsee-presentation-header\">\n <div class=\"rtsee-presentation-room-block\">\n <div class=\"rtsee-presentation-active-room\" *ngIf=\"presentation.activeRoom\">\n <p>{{presentation.activeRoom.id}}</p>\n <button (click)=\"presentation.emitJoinRoomCallEvent()\">Join Video Call</button>\n </div>\n </div>\n <div class=\"rtsee-story-info\" *ngIf=\"presentation.activeStory\">\n <p>{{presentation.activeStory.name}}</p>\n <span class=\"rtsee-story-thumbnail-info-time-icon material-icons-outlined\"\n (click)=\"presentation.disableActiveStory()\"\n >close</span>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
960
+ }
961
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: PresentationHeaderComponent, decorators: [{
962
+ type: Component,
963
+ args: [{ selector: 'rtsee-presentation-header', template: "<div class=\"rtsee-presentation-header\">\n <div class=\"rtsee-presentation-room-block\">\n <div class=\"rtsee-presentation-active-room\" *ngIf=\"presentation.activeRoom\">\n <p>{{presentation.activeRoom.id}}</p>\n <button (click)=\"presentation.emitJoinRoomCallEvent()\">Join Video Call</button>\n </div>\n </div>\n <div class=\"rtsee-story-info\" *ngIf=\"presentation.activeStory\">\n <p>{{presentation.activeStory.name}}</p>\n <span class=\"rtsee-story-thumbnail-info-time-icon material-icons-outlined\"\n (click)=\"presentation.disableActiveStory()\"\n >close</span>\n </div>\n</div>\n" }]
964
+ }], propDecorators: { presentation: [{
965
+ type: Input
966
+ }] } });
967
+
968
+ class PresentationComponent {
969
+ constructor() { }
970
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: PresentationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
971
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: PresentationComponent, selector: "rtsee-presentation", inputs: { presentation: "presentation" }, ngImport: i0, template: "<div class=\"rtsee-presentation\">\n <div class=\"rtsee-presentation-header-block\">\n <rtsee-presentation-header [presentation]=\"presentation\"\n ></rtsee-presentation-header>\n </div>\n <div class=\"rtsee-presentation-stories-list\"\n *ngIf=\"!presentation.activeStory\"\n >\n <div class=\"rtsee-presentation-story-thumbnail-container\"\n *ngFor=\"let story of presentation.stories\"\n (click)=\"presentation.setActiveStory(story)\"\n >\n <rtsee-story-thumbnail\n [story]=\"story\"\n ></rtsee-story-thumbnail>\n </div>\n </div>\n <div class=\"rtsee-presentation-story-viewer-container\"\n *ngIf=\"presentation.activeStory\"\n >\n <rtsee-story-player [story]=\"presentation.activeStory\"\n ></rtsee-story-player>\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: "component", type: StoryPlayerComponent, selector: "rtsee-story-player", inputs: ["story"] }, { kind: "component", type: StoryThumbnailComponent, selector: "rtsee-story-thumbnail", inputs: ["story"] }, { kind: "component", type: PresentationHeaderComponent, selector: "rtsee-presentation-header", inputs: ["presentation"] }] }); }
972
+ }
973
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: PresentationComponent, decorators: [{
974
+ type: Component,
975
+ args: [{ selector: 'rtsee-presentation', template: "<div class=\"rtsee-presentation\">\n <div class=\"rtsee-presentation-header-block\">\n <rtsee-presentation-header [presentation]=\"presentation\"\n ></rtsee-presentation-header>\n </div>\n <div class=\"rtsee-presentation-stories-list\"\n *ngIf=\"!presentation.activeStory\"\n >\n <div class=\"rtsee-presentation-story-thumbnail-container\"\n *ngFor=\"let story of presentation.stories\"\n (click)=\"presentation.setActiveStory(story)\"\n >\n <rtsee-story-thumbnail\n [story]=\"story\"\n ></rtsee-story-thumbnail>\n </div>\n </div>\n <div class=\"rtsee-presentation-story-viewer-container\"\n *ngIf=\"presentation.activeStory\"\n >\n <rtsee-story-player [story]=\"presentation.activeStory\"\n ></rtsee-story-player>\n </div>\n</div>\n" }]
976
+ }], ctorParameters: function () { return []; }, propDecorators: { presentation: [{
977
+ type: Input
978
+ }] } });
979
+
980
+ class RtseeSidenavComponent {
981
+ constructor() {
982
+ this.toggleClicked = new EventEmitter();
983
+ }
984
+ toggleButtonClicked() {
985
+ this.toggleClicked.emit(true);
986
+ }
987
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeSidenavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
988
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: RtseeSidenavComponent, selector: "rtsee-sidenav", inputs: { config: "config", isExpanded: "isExpanded" }, outputs: { toggleClicked: "toggleClicked" }, ngImport: i0, template: "<div class=\"rtsee-sidenav\"\n [ngClass]=\"{'rtsee-sidenav-expanded': isExpanded}\">\n <div class=\"rtsee-sidenav-header\">\n <div class=\"rtsee-site-logo\">\n <a [routerLink]=\"['/']\" class=\"rtsee-home-link\">\n <span class=\"rtsee-site-logo-wrapper\" *ngIf=\"config.siteLogo\">\n <img [src]=\"config.siteLogo.src\" [ngClass]=\"config.siteLogo.classNames\" [alt]=\"config.siteLogo.alt\">\n </span>\n <span class=\"rtsee-site-name\">{{config.siteName}}</span>\n </a>\n </div>\n </div>\n <div class=\"rtsee-sidenav-body\">\n <div id=\"rtsee-nav-items-container\">\n <ul class=\"rtsee-nav-items\">\n <li *ngFor=\"let route of config.routes\"\n [ngClass]=\"{'rtsee-nav-item-hidden': !route.isEnabled}\">\n <a [routerLink]=\"route.link\"\n routerLinkActive=\"active\"\n class=\"rtsee-nav-item\">\n <span class=\"rtsee-nav-item-icon\" [ngClass]=\"route.iconClassName\"></span>\n <span class=\"rtsee-nav-item-name\">{{route.name}}</span>\n </a>\n </li>\n </ul>\n </div>\n </div>\n <div class=\"rtsee-sidenav-toggle\" (click)=\"toggleButtonClicked()\">\n <i class=\"fa fa-angle-right sidenav-toggle-button\" *ngIf=\"!isExpanded\"></i>\n <i class=\"fa fa-angle-left sidenav-toggle-button\" *ngIf=\"isExpanded\"></i>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2$2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }] }); }
989
+ }
990
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeSidenavComponent, decorators: [{
991
+ type: Component,
992
+ args: [{ selector: 'rtsee-sidenav', template: "<div class=\"rtsee-sidenav\"\n [ngClass]=\"{'rtsee-sidenav-expanded': isExpanded}\">\n <div class=\"rtsee-sidenav-header\">\n <div class=\"rtsee-site-logo\">\n <a [routerLink]=\"['/']\" class=\"rtsee-home-link\">\n <span class=\"rtsee-site-logo-wrapper\" *ngIf=\"config.siteLogo\">\n <img [src]=\"config.siteLogo.src\" [ngClass]=\"config.siteLogo.classNames\" [alt]=\"config.siteLogo.alt\">\n </span>\n <span class=\"rtsee-site-name\">{{config.siteName}}</span>\n </a>\n </div>\n </div>\n <div class=\"rtsee-sidenav-body\">\n <div id=\"rtsee-nav-items-container\">\n <ul class=\"rtsee-nav-items\">\n <li *ngFor=\"let route of config.routes\"\n [ngClass]=\"{'rtsee-nav-item-hidden': !route.isEnabled}\">\n <a [routerLink]=\"route.link\"\n routerLinkActive=\"active\"\n class=\"rtsee-nav-item\">\n <span class=\"rtsee-nav-item-icon\" [ngClass]=\"route.iconClassName\"></span>\n <span class=\"rtsee-nav-item-name\">{{route.name}}</span>\n </a>\n </li>\n </ul>\n </div>\n </div>\n <div class=\"rtsee-sidenav-toggle\" (click)=\"toggleButtonClicked()\">\n <i class=\"fa fa-angle-right sidenav-toggle-button\" *ngIf=\"!isExpanded\"></i>\n <i class=\"fa fa-angle-left sidenav-toggle-button\" *ngIf=\"isExpanded\"></i>\n </div>\n</div>\n" }]
993
+ }], propDecorators: { config: [{
994
+ type: Input
995
+ }], isExpanded: [{
996
+ type: Input
997
+ }], toggleClicked: [{
998
+ type: Output
999
+ }] } });
1000
+
1001
+ class RtseeBottomNavComponent {
1002
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeBottomNavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1003
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: RtseeBottomNavComponent, selector: "rtsee-bottom-nav", inputs: { config: "config", tabPanel: "tabPanel" }, ngImport: i0, template: "<div class=\"rtsee-bottom-nav\">\n <nav mat-tab-nav-bar [tabPanel]=\"tabPanel\" class=\"rtsee-nav-bar\">\n <a *ngFor=\"let route of config.routes\"\n mat-tab-link\n [routerLink]=\"route.link\"\n routerLinkActive #rlaPosSearch=\"routerLinkActive\"\n [ngClass]=\"{'rtsee-nav-item-hidden': !route.isEnabled}\"\n [routerLinkActiveOptions]=\"{exact:true}\"\n [active]=\"rlaPosSearch.isActive\"\n class=\"rtsee-nav-bar-link rtsee-bottom-nav-bar-link\"\n >\n <span class=\"rtsee-nav-bar-link-icon\">\n <span class=\"rtsee-nav-item-icon\" [ngClass]=\"route.iconClassName\"></span>\n </span>\n </a>\n </nav>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2$2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i3$2.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "animationDuration"], exportAs: ["matTabNavBar", "matTabNav"] }, { kind: "component", type: i3$2.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["disabled", "disableRipple", "tabIndex", "active", "id"], exportAs: ["matTabLink"] }] }); }
1004
+ }
1005
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeBottomNavComponent, decorators: [{
1006
+ type: Component,
1007
+ args: [{ selector: 'rtsee-bottom-nav', template: "<div class=\"rtsee-bottom-nav\">\n <nav mat-tab-nav-bar [tabPanel]=\"tabPanel\" class=\"rtsee-nav-bar\">\n <a *ngFor=\"let route of config.routes\"\n mat-tab-link\n [routerLink]=\"route.link\"\n routerLinkActive #rlaPosSearch=\"routerLinkActive\"\n [ngClass]=\"{'rtsee-nav-item-hidden': !route.isEnabled}\"\n [routerLinkActiveOptions]=\"{exact:true}\"\n [active]=\"rlaPosSearch.isActive\"\n class=\"rtsee-nav-bar-link rtsee-bottom-nav-bar-link\"\n >\n <span class=\"rtsee-nav-bar-link-icon\">\n <span class=\"rtsee-nav-item-icon\" [ngClass]=\"route.iconClassName\"></span>\n </span>\n </a>\n </nav>\n</div>\n" }]
1008
+ }], propDecorators: { config: [{
1009
+ type: Input
1010
+ }], tabPanel: [{
1011
+ type: Input
1012
+ }] } });
1013
+
965
1014
  class RTSeeContainerComponent {
966
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RTSeeContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
967
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: RTSeeContainerComponent, selector: "rtsee-container", ngImport: i0, template: "<div class=\"rtsee-container\">\n <ng-content></ng-content>\n</div>\n" });
1015
+ constructor() {
1016
+ this.isSidenavExpanded = true;
1017
+ }
1018
+ onSidenavToggleClicked() {
1019
+ this.isSidenavExpanded = !this.isSidenavExpanded;
1020
+ }
1021
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RTSeeContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1022
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: RTSeeContainerComponent, selector: "rtsee-container", inputs: { rtsee: "rtsee", navigationConfig: "navigationConfig" }, ngImport: i0, template: "<div class=\"rtsee-shell\"\n [ngClass]=\"{\n 'rtsee-shell-conference-mode': rtsee.conference && rtsee.conference.isInActiveCall,\n 'rtsee-shell-messenger-active': rtsee.messenger && rtsee.activeTab === 'messenger',\n 'rtsee-shell-dashboard-active': rtsee.eventsDashboard && rtsee.activeTab === 'events-dashboard',\n 'rtsee-shell-presentation-active': rtsee.presentation && rtsee.activeTab === 'presentation',\n 'rtsee-shell-side-nav-expanded': isSidenavExpanded\n }\"\n>\n <div class=\"rtsee-sidenav-block\">\n <rtsee-sidenav [config]=\"navigationConfig\" [isExpanded]=\"isSidenavExpanded\" (toggleClicked)=\"onSidenavToggleClicked()\"></rtsee-sidenav>\n </div>\n\n <div class=\"rtsee-shell-panel\">\n <div class=\"rtsee-conference-container\"\n *ngIf=\"rtsee.conference && rtsee.conference.isInActiveCall\"\n >\n <rtsee-conference [rtSee]=\"rtsee.conference\"\n ></rtsee-conference>\n </div>\n\n <div class=\"rtsee-messenger-container\"\n *ngIf=\"rtsee.messenger\"\n >\n <rtsee-messenger [messenger]=\"rtsee.messenger\"\n ></rtsee-messenger>\n </div>\n\n <div class=\"rtsee-events-dashboard-container\"\n *ngIf=\"rtsee.eventsDashboard && rtsee.eventsDashboard.isReady\"\n >\n <rtsee-events-dashboard [eventsDashboard]=\"rtsee.eventsDashboard\"\n ></rtsee-events-dashboard>\n </div>\n\n <div class=\"rtsee-presentation-container\" *ngIf=\"rtsee.presentation && rtsee.presentation.isActive\">\n <rtsee-presentation [presentation]=\"rtsee.presentation\"></rtsee-presentation>\n </div>\n </div>\n\n <div class=\"rtsee-content\">\n <mat-tab-nav-panel #tabPanel>\n <ng-content></ng-content>\n </mat-tab-nav-panel>\n </div>\n <div class=\"rtsee-bottom-nav-block\" *ngIf=\"tabPanel\">\n <rtsee-bottom-nav [config]=\"navigationConfig\" [tabPanel]=\"tabPanel\"></rtsee-bottom-nav>\n </div>\n</div>\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: i3$2.MatTabNavPanel, selector: "mat-tab-nav-panel", inputs: ["id"], exportAs: ["matTabNavPanel"] }, { kind: "component", type: RTSeeConferenceComponent, selector: "rtsee-conference", inputs: ["rtSee"] }, { kind: "component", type: MessengerComponent, selector: "rtsee-messenger", inputs: ["messenger"] }, { kind: "component", type: RtseeEventsDashboardComponent, selector: "rtsee-events-dashboard", inputs: ["eventsDashboard"] }, { kind: "component", type: PresentationComponent, selector: "rtsee-presentation", inputs: ["presentation"] }, { kind: "component", type: RtseeSidenavComponent, selector: "rtsee-sidenav", inputs: ["config", "isExpanded"], outputs: ["toggleClicked"] }, { kind: "component", type: RtseeBottomNavComponent, selector: "rtsee-bottom-nav", inputs: ["config", "tabPanel"] }] }); }
968
1023
  }
969
1024
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RTSeeContainerComponent, decorators: [{
970
1025
  type: Component,
971
- args: [{ selector: 'rtsee-container', template: "<div class=\"rtsee-container\">\n <ng-content></ng-content>\n</div>\n" }]
1026
+ args: [{ selector: 'rtsee-container', template: "<div class=\"rtsee-shell\"\n [ngClass]=\"{\n 'rtsee-shell-conference-mode': rtsee.conference && rtsee.conference.isInActiveCall,\n 'rtsee-shell-messenger-active': rtsee.messenger && rtsee.activeTab === 'messenger',\n 'rtsee-shell-dashboard-active': rtsee.eventsDashboard && rtsee.activeTab === 'events-dashboard',\n 'rtsee-shell-presentation-active': rtsee.presentation && rtsee.activeTab === 'presentation',\n 'rtsee-shell-side-nav-expanded': isSidenavExpanded\n }\"\n>\n <div class=\"rtsee-sidenav-block\">\n <rtsee-sidenav [config]=\"navigationConfig\" [isExpanded]=\"isSidenavExpanded\" (toggleClicked)=\"onSidenavToggleClicked()\"></rtsee-sidenav>\n </div>\n\n <div class=\"rtsee-shell-panel\">\n <div class=\"rtsee-conference-container\"\n *ngIf=\"rtsee.conference && rtsee.conference.isInActiveCall\"\n >\n <rtsee-conference [rtSee]=\"rtsee.conference\"\n ></rtsee-conference>\n </div>\n\n <div class=\"rtsee-messenger-container\"\n *ngIf=\"rtsee.messenger\"\n >\n <rtsee-messenger [messenger]=\"rtsee.messenger\"\n ></rtsee-messenger>\n </div>\n\n <div class=\"rtsee-events-dashboard-container\"\n *ngIf=\"rtsee.eventsDashboard && rtsee.eventsDashboard.isReady\"\n >\n <rtsee-events-dashboard [eventsDashboard]=\"rtsee.eventsDashboard\"\n ></rtsee-events-dashboard>\n </div>\n\n <div class=\"rtsee-presentation-container\" *ngIf=\"rtsee.presentation && rtsee.presentation.isActive\">\n <rtsee-presentation [presentation]=\"rtsee.presentation\"></rtsee-presentation>\n </div>\n </div>\n\n <div class=\"rtsee-content\">\n <mat-tab-nav-panel #tabPanel>\n <ng-content></ng-content>\n </mat-tab-nav-panel>\n </div>\n <div class=\"rtsee-bottom-nav-block\" *ngIf=\"tabPanel\">\n <rtsee-bottom-nav [config]=\"navigationConfig\" [tabPanel]=\"tabPanel\"></rtsee-bottom-nav>\n </div>\n</div>\n" }]
1027
+ }], propDecorators: { rtsee: [{
1028
+ type: Input
1029
+ }], navigationConfig: [{
1030
+ type: Input
1031
+ }] } });
1032
+
1033
+ class UtilsService {
1034
+ constructor() {
1035
+ }
1036
+ static getKeysAsValueObject(obj) {
1037
+ if (obj) {
1038
+ return Object.keys(obj).reduce((result, value) => {
1039
+ result[value] = value;
1040
+ return result;
1041
+ }, {});
1042
+ }
1043
+ return {};
1044
+ }
1045
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: UtilsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1046
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: UtilsService, providedIn: 'root' }); }
1047
+ }
1048
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: UtilsService, decorators: [{
1049
+ type: Injectable,
1050
+ args: [{
1051
+ providedIn: 'root'
1052
+ }]
1053
+ }], ctorParameters: function () { return []; } });
1054
+
1055
+ class SignUpComponent {
1056
+ constructor(formBuilder) {
1057
+ this.formBuilder = formBuilder;
1058
+ this.signUpForm = this.formBuilder.group({
1059
+ email: this.formBuilder.control(null, { validators: [Validators.required, Validators.email] }),
1060
+ password: this.formBuilder.control(null, { validators: [Validators.required, Validators.minLength(6)] }),
1061
+ newPassword: this.formBuilder.control(null, { validators: [Validators.required, Validators.minLength(6)] }),
1062
+ roleId: this.formBuilder.control('0fa9bc01-e752-4452-bde0-5bcd0c7082e9', { validators: [Validators.required] }),
1063
+ terms: this.formBuilder.control(false, { nonNullable: true,
1064
+ // validators: [Validators.requiredTrue]
1065
+ }),
1066
+ });
1067
+ this.signUpFormKeys = UtilsService.getKeysAsValueObject(this.signUpForm.getRawValue());
1068
+ }
1069
+ signUp() {
1070
+ if (this.signUpForm.valid) {
1071
+ const formValue = this.signUpForm.getRawValue();
1072
+ // Check if passwords match
1073
+ if (formValue.password !== formValue.newPassword) {
1074
+ console.error('Passwords do not match.');
1075
+ return;
1076
+ }
1077
+ // @ts-ignore
1078
+ delete formValue.password;
1079
+ // Call sign-up API
1080
+ // this.authService.signUp(formValue);
1081
+ }
1082
+ }
1083
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: SignUpComponent, deps: [{ token: i1$1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
1084
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: SignUpComponent, selector: "rtsee-sign-up", ngImport: i0, template: "<div class=\"auth-container\">\n <img ngSrc=\"/assets/img.png\" alt=\"Company Logo\" class=\"logo\" height=\"38\" width=\"37\"/>\n <h2 class=\"auth-title\">\u0420\u0435\u0454\u0441\u0442\u0440\u0430\u0446\u0456\u044F \u0432 \u041E\u0441\u043E\u0431\u0438\u0441\u0442\u0438\u0439 \u041A\u0430\u0431\u0456\u043D\u0435\u0442</h2>\n <p class=\"auth-title-description\">\u0421\u0442\u0432\u043E\u0440\u0456\u0442\u044C \u0441\u0432\u0456\u0439 \u043E\u0441\u043E\u0431\u0438\u0441\u0442\u0438\u0439 \u043A\u0430\u0431\u0456\u043D\u0435\u0442, \u0449\u043E\u0431 \u043F\u0435\u0440\u0435\u0433\u043B\u044F\u0434\u0430\u0442\u0438 \u043A\u0430\u0437\u043A\u0438</p>\n\n <form class=\"auth-form\" [formGroup]=\"signUpForm\" (ngSubmit)=\"signUp()\">\n <!-- Email Field -->\n <label for=\"sign-up-email\" class=\"auth-sm-medium\">\u0415\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430 \u043F\u043E\u0448\u0442\u0430</label>\n <input [formControlName]=\"signUpFormKeys.email\" type=\"email\" id=\"sign-up-email\" placeholder=\"\u0412\u0432\u0435\u0434\u0456\u0442\u044C \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0443 \u043F\u043E\u0448\u0442\u0443\" class=\"auth-input-container email-input\" />\n\n <!-- Password Field -->\n <label for=\"sign-up-password\" class=\"auth-sm-medium\">\u041F\u0430\u0440\u043E\u043B\u044C</label>\n <input [formControlName]=\"signUpFormKeys.password\" type=\"password\" id=\"sign-up-password\" placeholder=\"\u0421\u0442\u0432\u043E\u0440\u0456\u0442\u044C \u043F\u0430\u0440\u043E\u043B\u044C\" class=\"auth-input-container password-input\" />\n\n <!-- Confirm Password Field -->\n <label for=\"confirm-password\" class=\"auth-sm-medium\">\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u044C\u0442\u0435 \u043F\u0430\u0440\u043E\u043B\u044C</label>\n <input [formControlName]=\"signUpFormKeys.newPassword\" type=\"password\" id=\"confirm-password\" placeholder=\"\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u044C\u0442\u0435 \u043F\u0430\u0440\u043E\u043B\u044C\" class=\"auth-input-container password-input\" />\n\n <!-- Terms and Conditions -->\n <div class=\"auth-options\">\n <label class=\"auth-checkbox-label\">\n <input type=\"checkbox\" class=\"auth-deep-blue-sm-medium\" [formControlName]=\"signUpFormKeys.terms\" />\n \u042F \u043F\u043E\u0433\u043E\u0434\u0436\u0443\u044E\u0441\u044C \u0437&nbsp;<a href=\"#\" class=\"auth-deep-blue-sm-medium\">\u0443\u043C\u043E\u0432\u0430\u043C\u0438 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u0430\u043D\u043D\u044F</a>\n </label>\n </div>\n\n <!-- Sign-Up Button -->\n <button type=\"submit\" class=\"auth-btn-container\">\u0417\u0430\u0440\u0435\u0454\u0441\u0442\u0440\u0443\u0432\u0430\u0442\u0438\u0441\u044C</button>\n </form>\n\n <!-- Redirect to Sign-In -->\n <p class=\"auth-media-blue-gray-sm-normal\">\n \u0412\u0436\u0435 \u043C\u0430\u0454\u0442\u0435 \u0430\u043A\u0430\u0443\u043D\u0442? <a href=\"#\" [routerLink]=\"['/', 'sign-in']\" class=\"auth-deep-blue-sm-medium\">\u0423\u0432\u0456\u0439\u0434\u0456\u0442\u044C</a>\n </p>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "src", "srcset"] }, { kind: "directive", type: i2$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
1085
+ }
1086
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: SignUpComponent, decorators: [{
1087
+ type: Component,
1088
+ args: [{ selector: 'rtsee-sign-up', template: "<div class=\"auth-container\">\n <img ngSrc=\"/assets/img.png\" alt=\"Company Logo\" class=\"logo\" height=\"38\" width=\"37\"/>\n <h2 class=\"auth-title\">\u0420\u0435\u0454\u0441\u0442\u0440\u0430\u0446\u0456\u044F \u0432 \u041E\u0441\u043E\u0431\u0438\u0441\u0442\u0438\u0439 \u041A\u0430\u0431\u0456\u043D\u0435\u0442</h2>\n <p class=\"auth-title-description\">\u0421\u0442\u0432\u043E\u0440\u0456\u0442\u044C \u0441\u0432\u0456\u0439 \u043E\u0441\u043E\u0431\u0438\u0441\u0442\u0438\u0439 \u043A\u0430\u0431\u0456\u043D\u0435\u0442, \u0449\u043E\u0431 \u043F\u0435\u0440\u0435\u0433\u043B\u044F\u0434\u0430\u0442\u0438 \u043A\u0430\u0437\u043A\u0438</p>\n\n <form class=\"auth-form\" [formGroup]=\"signUpForm\" (ngSubmit)=\"signUp()\">\n <!-- Email Field -->\n <label for=\"sign-up-email\" class=\"auth-sm-medium\">\u0415\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430 \u043F\u043E\u0448\u0442\u0430</label>\n <input [formControlName]=\"signUpFormKeys.email\" type=\"email\" id=\"sign-up-email\" placeholder=\"\u0412\u0432\u0435\u0434\u0456\u0442\u044C \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0443 \u043F\u043E\u0448\u0442\u0443\" class=\"auth-input-container email-input\" />\n\n <!-- Password Field -->\n <label for=\"sign-up-password\" class=\"auth-sm-medium\">\u041F\u0430\u0440\u043E\u043B\u044C</label>\n <input [formControlName]=\"signUpFormKeys.password\" type=\"password\" id=\"sign-up-password\" placeholder=\"\u0421\u0442\u0432\u043E\u0440\u0456\u0442\u044C \u043F\u0430\u0440\u043E\u043B\u044C\" class=\"auth-input-container password-input\" />\n\n <!-- Confirm Password Field -->\n <label for=\"confirm-password\" class=\"auth-sm-medium\">\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u044C\u0442\u0435 \u043F\u0430\u0440\u043E\u043B\u044C</label>\n <input [formControlName]=\"signUpFormKeys.newPassword\" type=\"password\" id=\"confirm-password\" placeholder=\"\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u044C\u0442\u0435 \u043F\u0430\u0440\u043E\u043B\u044C\" class=\"auth-input-container password-input\" />\n\n <!-- Terms and Conditions -->\n <div class=\"auth-options\">\n <label class=\"auth-checkbox-label\">\n <input type=\"checkbox\" class=\"auth-deep-blue-sm-medium\" [formControlName]=\"signUpFormKeys.terms\" />\n \u042F \u043F\u043E\u0433\u043E\u0434\u0436\u0443\u044E\u0441\u044C \u0437&nbsp;<a href=\"#\" class=\"auth-deep-blue-sm-medium\">\u0443\u043C\u043E\u0432\u0430\u043C\u0438 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u0430\u043D\u043D\u044F</a>\n </label>\n </div>\n\n <!-- Sign-Up Button -->\n <button type=\"submit\" class=\"auth-btn-container\">\u0417\u0430\u0440\u0435\u0454\u0441\u0442\u0440\u0443\u0432\u0430\u0442\u0438\u0441\u044C</button>\n </form>\n\n <!-- Redirect to Sign-In -->\n <p class=\"auth-media-blue-gray-sm-normal\">\n \u0412\u0436\u0435 \u043C\u0430\u0454\u0442\u0435 \u0430\u043A\u0430\u0443\u043D\u0442? <a href=\"#\" [routerLink]=\"['/', 'sign-in']\" class=\"auth-deep-blue-sm-medium\">\u0423\u0432\u0456\u0439\u0434\u0456\u0442\u044C</a>\n </p>\n</div>\n" }]
1089
+ }], ctorParameters: function () { return [{ type: i1$1.FormBuilder }]; } });
1090
+
1091
+ class SignInComponent {
1092
+ constructor(formBuilder, router) {
1093
+ this.formBuilder = formBuilder;
1094
+ this.router = router;
1095
+ this.signInForm = this.formBuilder.group({
1096
+ username: this.formBuilder.control(null, { validators: [Validators.required, Validators.email] }),
1097
+ password: this.formBuilder.control(null, { validators: [Validators.required] }),
1098
+ remember: this.formBuilder.control(false, { nonNullable: true })
1099
+ });
1100
+ this.signInFormKeys = UtilsService.getKeysAsValueObject(this.signInForm.getRawValue());
1101
+ }
1102
+ login() {
1103
+ if (this.signInForm.valid) {
1104
+ // this.authService.signIn(this.signInForm.getRawValue())
1105
+ // .subscribe((success) => {
1106
+ // if (success) {
1107
+ // this.router.navigate(['/']);
1108
+ // }
1109
+ // });
1110
+ }
1111
+ }
1112
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: SignInComponent, deps: [{ token: i1$1.FormBuilder }, { token: i2$2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
1113
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: SignInComponent, selector: "rtsee-sign-in", ngImport: i0, template: "<div class=\"auth-container\">\n <img ngSrc=\"/assets/img.png\" alt=\"Company Logo\" class=\"auth-logo\" height=\"38\" width=\"37\"/>\n <h2 class=\"auth-title\">\u0412\u0445\u0456\u0434 \u0432 \u041E\u0441\u043E\u0431\u0438\u0441\u0442\u0438\u0439 \u041A\u0430\u0431\u0456\u043D\u0435\u0442</h2>\n <p class=\"auth-title-description\">\u0410\u0431\u0438 \u043F\u0435\u0440\u0435\u0433\u043B\u044F\u0434\u0430\u0442\u0438 \u043A\u0430\u0437\u043A\u0438, \u0443\u0432\u0456\u0439\u0434\u0456\u0442\u044C \u0432 \u0441\u0432\u0456\u0439 \u043E\u0441\u043E\u0431\u0438\u0441\u0442\u0438\u0439 \u043A\u0430\u0431\u0456\u043D\u0435\u0442</p>\n\n <form class=\"auth-form\" [formGroup]=\"signInForm\" (ngSubmit)=\"login()\">\n <label for=\"sign-in-email\" class=\"auth-sm-medium\">\u0415\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430 \u043F\u043E\u0448\u0442\u0430</label>\n <input [formControlName]=\"signInFormKeys.username\" type=\"email\" id=\"sign-in-email\" placeholder=\"\u0412\u0432\u0435\u0434\u0456\u0442\u044C \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0443 \u043F\u043E\u0448\u0442\u0443\" class=\"auth-input-container email-input\" />\n\n <label for=\"password\" class=\"auth-sm-medium\">\u041F\u0430\u0440\u043E\u043B\u044C</label>\n <input [formControlName]=\"signInFormKeys.password\" type=\"password\" id=\"password\" placeholder=\"\u041F\u0430\u0440\u043E\u043B\u044C\" class=\"auth-input-container password-input\" />\n\n <div class=\"auth-options\">\n <label class=\"auth-checkbox-label\">\n <input type=\"checkbox\" class=\"auth-deep-blue-sm-medium auth-remember-checkbox\" />\n \u0417\u0430\u043F\u0430\u043C\u2019\u044F\u0442\u0430\u0442\u0438\n </label>\n <a href=\"#\" [routerLink]=\"['/', 'forgot-password']\" class=\"auth-deep-blue-sm-medium\">\u0417\u0430\u0431\u0443\u043B\u0438 \u043F\u0430\u0440\u043E\u043B\u044C?</a>\n </div>\n\n <button type=\"submit\" class=\"auth-btn-container\">\u0423\u0432\u0456\u0439\u0442\u0438</button>\n </form>\n\n <p class=\"auth-media-blue-gray-sm-normal\">\n \u041D\u0435\u043C\u0430\u0454 \u0430\u043A\u0430\u0443\u043D\u0442\u0443? <a href=\"#\" [routerLink]=\"['/', 'sign-up']\" class=\"auth-deep-blue-sm-medium\">\u0421\u0442\u0432\u043E\u0440\u0456\u0442\u044C!</a>\n </p>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "src", "srcset"] }, { kind: "directive", type: i2$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
1114
+ }
1115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: SignInComponent, decorators: [{
1116
+ type: Component,
1117
+ args: [{ selector: 'rtsee-sign-in', template: "<div class=\"auth-container\">\n <img ngSrc=\"/assets/img.png\" alt=\"Company Logo\" class=\"auth-logo\" height=\"38\" width=\"37\"/>\n <h2 class=\"auth-title\">\u0412\u0445\u0456\u0434 \u0432 \u041E\u0441\u043E\u0431\u0438\u0441\u0442\u0438\u0439 \u041A\u0430\u0431\u0456\u043D\u0435\u0442</h2>\n <p class=\"auth-title-description\">\u0410\u0431\u0438 \u043F\u0435\u0440\u0435\u0433\u043B\u044F\u0434\u0430\u0442\u0438 \u043A\u0430\u0437\u043A\u0438, \u0443\u0432\u0456\u0439\u0434\u0456\u0442\u044C \u0432 \u0441\u0432\u0456\u0439 \u043E\u0441\u043E\u0431\u0438\u0441\u0442\u0438\u0439 \u043A\u0430\u0431\u0456\u043D\u0435\u0442</p>\n\n <form class=\"auth-form\" [formGroup]=\"signInForm\" (ngSubmit)=\"login()\">\n <label for=\"sign-in-email\" class=\"auth-sm-medium\">\u0415\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430 \u043F\u043E\u0448\u0442\u0430</label>\n <input [formControlName]=\"signInFormKeys.username\" type=\"email\" id=\"sign-in-email\" placeholder=\"\u0412\u0432\u0435\u0434\u0456\u0442\u044C \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0443 \u043F\u043E\u0448\u0442\u0443\" class=\"auth-input-container email-input\" />\n\n <label for=\"password\" class=\"auth-sm-medium\">\u041F\u0430\u0440\u043E\u043B\u044C</label>\n <input [formControlName]=\"signInFormKeys.password\" type=\"password\" id=\"password\" placeholder=\"\u041F\u0430\u0440\u043E\u043B\u044C\" class=\"auth-input-container password-input\" />\n\n <div class=\"auth-options\">\n <label class=\"auth-checkbox-label\">\n <input type=\"checkbox\" class=\"auth-deep-blue-sm-medium auth-remember-checkbox\" />\n \u0417\u0430\u043F\u0430\u043C\u2019\u044F\u0442\u0430\u0442\u0438\n </label>\n <a href=\"#\" [routerLink]=\"['/', 'forgot-password']\" class=\"auth-deep-blue-sm-medium\">\u0417\u0430\u0431\u0443\u043B\u0438 \u043F\u0430\u0440\u043E\u043B\u044C?</a>\n </div>\n\n <button type=\"submit\" class=\"auth-btn-container\">\u0423\u0432\u0456\u0439\u0442\u0438</button>\n </form>\n\n <p class=\"auth-media-blue-gray-sm-normal\">\n \u041D\u0435\u043C\u0430\u0454 \u0430\u043A\u0430\u0443\u043D\u0442\u0443? <a href=\"#\" [routerLink]=\"['/', 'sign-up']\" class=\"auth-deep-blue-sm-medium\">\u0421\u0442\u0432\u043E\u0440\u0456\u0442\u044C!</a>\n </p>\n</div>\n" }]
1118
+ }], ctorParameters: function () { return [{ type: i1$1.FormBuilder }, { type: i2$2.Router }]; } });
1119
+
1120
+ class ForgotPasswordComponent {
1121
+ constructor(formBuilder) {
1122
+ this.formBuilder = formBuilder;
1123
+ this.isLoading = false;
1124
+ this.emailForm = this.formBuilder.group({
1125
+ email: this.formBuilder.control(null, { validators: [Validators.required, Validators.email] }),
1126
+ });
1127
+ this.forgotPasswordFormKeys = UtilsService.getKeysAsValueObject(this.emailForm.getRawValue());
1128
+ }
1129
+ submitEmail() {
1130
+ if (this.emailForm.valid) {
1131
+ }
1132
+ }
1133
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ForgotPasswordComponent, deps: [{ token: i1$1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
1134
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: ForgotPasswordComponent, selector: "rtsee-forgot-password", ngImport: i0, template: "<div class=\"auth-container\">\n <img ngSrc=\"/assets/img.png\" alt=\"Company Logo\" class=\"auth-logo\" height=\"38\" width=\"37\" />\n <h2 class=\"auth-title\">\u0412\u0456\u0434\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u044F \u043F\u0430\u0440\u043E\u043B\u044E</h2>\n <p class=\"auth-title-description\">\u0412\u0432\u0435\u0434\u0456\u0442\u044C \u0432\u0430\u0448\u0443 \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0443 \u043F\u043E\u0448\u0442\u0443, \u0449\u043E\u0431 \u043E\u0442\u0440\u0438\u043C\u0430\u0442\u0438 \u0456\u043D\u0441\u0442\u0440\u0443\u043A\u0446\u0456\u0457 \u0437 \u0432\u0456\u0434\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u044F \u043F\u0430\u0440\u043E\u043B\u044E</p>\n\n <form class=\"auth-form\" [formGroup]=\"emailForm\" (ngSubmit)=\"submitEmail()\">\n <!-- Email Field -->\n <label for=\"forgot-password-email\" class=\"auth-sm-medium\">\u0415\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430 \u043F\u043E\u0448\u0442\u0430</label>\n <input\n [formControlName]=\"forgotPasswordFormKeys.email\"\n type=\"email\"\n id=\"forgot-password-email\"\n placeholder=\"\u0412\u0432\u0435\u0434\u0456\u0442\u044C \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0443 \u043F\u043E\u0448\u0442\u0443\"\n class=\"auth-input-container email-input\"\n />\n\n <!-- Submit Button -->\n <button type=\"submit\" class=\"auth-btn-container\" [disabled]=\"isLoading\">\n <span> {{isLoading ? '\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F...' : '\u0412\u0456\u0434\u043F\u0440\u0430\u0432\u0438\u0442\u0438'}}</span>\n </button>\n </form>\n\n <!-- Redirect to Sign-In -->\n <p class=\"auth-media-blue-gray-sm-normal\">\n \u041F\u0430\u043C'\u044F\u0442\u0430\u0454\u0442\u0435 \u043F\u0430\u0440\u043E\u043B\u044C? <a [routerLink]=\"['/', 'sign-in']\" class=\"auth-deep-blue-sm-medium\">\u0423\u0432\u0456\u0439\u0434\u0456\u0442\u044C</a>\n </p>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "src", "srcset"] }, { kind: "directive", type: i2$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
1135
+ }
1136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ForgotPasswordComponent, decorators: [{
1137
+ type: Component,
1138
+ args: [{ selector: 'rtsee-forgot-password', template: "<div class=\"auth-container\">\n <img ngSrc=\"/assets/img.png\" alt=\"Company Logo\" class=\"auth-logo\" height=\"38\" width=\"37\" />\n <h2 class=\"auth-title\">\u0412\u0456\u0434\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u044F \u043F\u0430\u0440\u043E\u043B\u044E</h2>\n <p class=\"auth-title-description\">\u0412\u0432\u0435\u0434\u0456\u0442\u044C \u0432\u0430\u0448\u0443 \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0443 \u043F\u043E\u0448\u0442\u0443, \u0449\u043E\u0431 \u043E\u0442\u0440\u0438\u043C\u0430\u0442\u0438 \u0456\u043D\u0441\u0442\u0440\u0443\u043A\u0446\u0456\u0457 \u0437 \u0432\u0456\u0434\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u044F \u043F\u0430\u0440\u043E\u043B\u044E</p>\n\n <form class=\"auth-form\" [formGroup]=\"emailForm\" (ngSubmit)=\"submitEmail()\">\n <!-- Email Field -->\n <label for=\"forgot-password-email\" class=\"auth-sm-medium\">\u0415\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430 \u043F\u043E\u0448\u0442\u0430</label>\n <input\n [formControlName]=\"forgotPasswordFormKeys.email\"\n type=\"email\"\n id=\"forgot-password-email\"\n placeholder=\"\u0412\u0432\u0435\u0434\u0456\u0442\u044C \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0443 \u043F\u043E\u0448\u0442\u0443\"\n class=\"auth-input-container email-input\"\n />\n\n <!-- Submit Button -->\n <button type=\"submit\" class=\"auth-btn-container\" [disabled]=\"isLoading\">\n <span> {{isLoading ? '\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F...' : '\u0412\u0456\u0434\u043F\u0440\u0430\u0432\u0438\u0442\u0438'}}</span>\n </button>\n </form>\n\n <!-- Redirect to Sign-In -->\n <p class=\"auth-media-blue-gray-sm-normal\">\n \u041F\u0430\u043C'\u044F\u0442\u0430\u0454\u0442\u0435 \u043F\u0430\u0440\u043E\u043B\u044C? <a [routerLink]=\"['/', 'sign-in']\" class=\"auth-deep-blue-sm-medium\">\u0423\u0432\u0456\u0439\u0434\u0456\u0442\u044C</a>\n </p>\n</div>\n" }]
1139
+ }], ctorParameters: function () { return [{ type: i1$1.FormBuilder }]; } });
1140
+
1141
+ var FormErrorKey;
1142
+ (function (FormErrorKey) {
1143
+ FormErrorKey["required"] = "required";
1144
+ FormErrorKey["email"] = "email";
1145
+ FormErrorKey["minLength"] = "minlength";
1146
+ FormErrorKey["maxLength"] = "maxlength";
1147
+ FormErrorKey["requiredLength"] = "requiredLength";
1148
+ FormErrorKey["passwordsMismatch"] = "passwordsMismatch";
1149
+ })(FormErrorKey || (FormErrorKey = {}));
1150
+
1151
+ const COMMON_CONSTANTS = {
1152
+ minPasswordLength: 8,
1153
+ requestItemLimit: 20,
1154
+ customTimeFormat: 'HH:mm',
1155
+ customDateFormat: 'dd/MM/YYYY',
1156
+ customDateFormatDaysJs: 'DD/MM/YYYY',
1157
+ customDateTimeFormat: 'dd/MM/YYYY HH:mm',
1158
+ };
1159
+
1160
+ class ResetPasswordComponent {
1161
+ constructor(formBuilder, route, router) {
1162
+ this.formBuilder = formBuilder;
1163
+ this.route = route;
1164
+ this.router = router;
1165
+ this.isLoading = false;
1166
+ this.resetPasswordForm = this.formBuilder.group({
1167
+ password: this.formBuilder.control('', { validators: [Validators.required, Validators.minLength(COMMON_CONSTANTS.minPasswordLength)], nonNullable: true }),
1168
+ passwordConfirm: this.formBuilder.control('', { validators: [Validators.required, Validators.minLength(COMMON_CONSTANTS.minPasswordLength)], nonNullable: true }),
1169
+ }, { validators: [this.passwordMatchValidator()] });
1170
+ this.passwordFormKeys = UtilsService.getKeysAsValueObject(this.resetPasswordForm.value);
1171
+ this.hidePassword = {
1172
+ password: true,
1173
+ passwordConfirm: true
1174
+ };
1175
+ }
1176
+ ngOnInit() {
1177
+ this.token = this.route.snapshot.params['token'];
1178
+ }
1179
+ resetPassword() {
1180
+ if (this.resetPasswordForm.valid) {
1181
+ // this.isLoading = true;
1182
+ // this.accountService.resetPassword({passwords: this.resetPasswordForm.getRawValue(), token: this.token})
1183
+ // .subscribe((success) => {
1184
+ // this.isLoading = false;
1185
+ // if (success) {
1186
+ // this.router.navigate(['/', 'sign-in']);
1187
+ // }
1188
+ // })
1189
+ }
1190
+ }
1191
+ passwordMatchValidator() {
1192
+ // @ts-ignore
1193
+ return (form) => {
1194
+ const password = form.value.password;
1195
+ const passwordConfirm = form.value.passwordConfirm;
1196
+ if (password !== passwordConfirm) {
1197
+ if (form.controls.password.valid) {
1198
+ form.controls.password.setErrors({ [FormErrorKey.passwordsMismatch]: true });
1199
+ }
1200
+ if (form.controls.passwordConfirm.valid) {
1201
+ form.controls.passwordConfirm.setErrors({ [FormErrorKey.passwordsMismatch]: true });
1202
+ }
1203
+ return { [FormErrorKey.passwordsMismatch]: true };
1204
+ }
1205
+ if (form.controls.password.hasError(FormErrorKey.passwordsMismatch)) {
1206
+ form.controls.password.setErrors(null);
1207
+ }
1208
+ if (form.controls.passwordConfirm.hasError(FormErrorKey.passwordsMismatch)) {
1209
+ form.controls.passwordConfirm.setErrors(null);
1210
+ }
1211
+ return null;
1212
+ };
1213
+ }
1214
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ResetPasswordComponent, deps: [{ token: i1$1.FormBuilder }, { token: i2$2.ActivatedRoute }, { token: i2$2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
1215
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: ResetPasswordComponent, selector: "rtsee-reset-password", ngImport: i0, template: "<div class=\"auth-container\">\n <img src=\"assets/img.png\" alt=\"Company Logo\" class=\"logo\" height=\"38\" width=\"37\" />\n <h2 class=\"auth-title\">\u0412\u0456\u0434\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u044F \u041F\u0430\u0440\u043E\u043B\u044F</h2>\n <p class=\"auth-title-description\">\n \u0411\u0443\u0434\u044C \u043B\u0430\u0441\u043A\u0430, \u0432\u0432\u0435\u0434\u0456\u0442\u044C \u043D\u043E\u0432\u0438\u0439 \u043F\u0430\u0440\u043E\u043B\u044C \u0434\u043B\u044F \u0432\u0430\u0448\u043E\u0433\u043E \u0430\u043A\u0430\u0443\u043D\u0442\u0443.\n </p>\n\n <form class=\"auth-form\" [formGroup]=\"resetPasswordForm\" (ngSubmit)=\"resetPassword()\">\n <!-- New Password Field -->\n <label for=\"new-password\" class=\"auth-sm-medium\">\u041D\u043E\u0432\u0438\u0439 \u043F\u0430\u0440\u043E\u043B\u044C</label>\n <input [formControlName]=\"passwordFormKeys.password\" type=\"password\" id=\"new-password\" placeholder=\"\u0412\u0432\u0435\u0434\u0456\u0442\u044C \u043D\u043E\u0432\u0438\u0439 \u043F\u0430\u0440\u043E\u043B\u044C\" class=\"auth-input-container password-input\" />\n\n <!-- Confirm Password Field -->\n <label for=\"confirm-password\" class=\"auth-sm-medium\">\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043D\u043D\u044F \u043F\u0430\u0440\u043E\u043B\u044F</label>\n <input [formControlName]=\"passwordFormKeys.passwordConfirm\" type=\"password\" id=\"confirm-password\" placeholder=\"\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0456\u0442\u044C \u043F\u0430\u0440\u043E\u043B\u044C\" class=\"auth-input-container password-input\" />\n\n <!-- Reset Password Button -->\n <button type=\"submit\" class=\"auth-btn-container\">\u0412\u0456\u0434\u043D\u043E\u0432\u0438\u0442\u0438 \u041F\u0430\u0440\u043E\u043B\u044C</button>\n </form>\n\n <!-- Redirect to Login -->\n <p class=\"auth-media-blue-gray-sm-normal\">\n \u0417\u0433\u0430\u0434\u0430\u043B\u0438 \u043F\u0430\u0440\u043E\u043B\u044C? <a href=\"#\" class=\"auth-deep-blue-sm-medium\">\u0423\u0432\u0456\u0439\u0434\u0456\u0442\u044C</a>\n </p>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
1216
+ }
1217
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ResetPasswordComponent, decorators: [{
1218
+ type: Component,
1219
+ args: [{ selector: 'rtsee-reset-password', template: "<div class=\"auth-container\">\n <img src=\"assets/img.png\" alt=\"Company Logo\" class=\"logo\" height=\"38\" width=\"37\" />\n <h2 class=\"auth-title\">\u0412\u0456\u0434\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u044F \u041F\u0430\u0440\u043E\u043B\u044F</h2>\n <p class=\"auth-title-description\">\n \u0411\u0443\u0434\u044C \u043B\u0430\u0441\u043A\u0430, \u0432\u0432\u0435\u0434\u0456\u0442\u044C \u043D\u043E\u0432\u0438\u0439 \u043F\u0430\u0440\u043E\u043B\u044C \u0434\u043B\u044F \u0432\u0430\u0448\u043E\u0433\u043E \u0430\u043A\u0430\u0443\u043D\u0442\u0443.\n </p>\n\n <form class=\"auth-form\" [formGroup]=\"resetPasswordForm\" (ngSubmit)=\"resetPassword()\">\n <!-- New Password Field -->\n <label for=\"new-password\" class=\"auth-sm-medium\">\u041D\u043E\u0432\u0438\u0439 \u043F\u0430\u0440\u043E\u043B\u044C</label>\n <input [formControlName]=\"passwordFormKeys.password\" type=\"password\" id=\"new-password\" placeholder=\"\u0412\u0432\u0435\u0434\u0456\u0442\u044C \u043D\u043E\u0432\u0438\u0439 \u043F\u0430\u0440\u043E\u043B\u044C\" class=\"auth-input-container password-input\" />\n\n <!-- Confirm Password Field -->\n <label for=\"confirm-password\" class=\"auth-sm-medium\">\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043D\u043D\u044F \u043F\u0430\u0440\u043E\u043B\u044F</label>\n <input [formControlName]=\"passwordFormKeys.passwordConfirm\" type=\"password\" id=\"confirm-password\" placeholder=\"\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0456\u0442\u044C \u043F\u0430\u0440\u043E\u043B\u044C\" class=\"auth-input-container password-input\" />\n\n <!-- Reset Password Button -->\n <button type=\"submit\" class=\"auth-btn-container\">\u0412\u0456\u0434\u043D\u043E\u0432\u0438\u0442\u0438 \u041F\u0430\u0440\u043E\u043B\u044C</button>\n </form>\n\n <!-- Redirect to Login -->\n <p class=\"auth-media-blue-gray-sm-normal\">\n \u0417\u0433\u0430\u0434\u0430\u043B\u0438 \u043F\u0430\u0440\u043E\u043B\u044C? <a href=\"#\" class=\"auth-deep-blue-sm-medium\">\u0423\u0432\u0456\u0439\u0434\u0456\u0442\u044C</a>\n </p>\n</div>\n" }]
1220
+ }], ctorParameters: function () { return [{ type: i1$1.FormBuilder }, { type: i2$2.ActivatedRoute }, { type: i2$2.Router }]; } });
1221
+
1222
+ class AuthComponent {
1223
+ constructor() {
1224
+ this.activeComponent = 'sign-in';
1225
+ }
1226
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: AuthComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1227
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: AuthComponent, selector: "rtsee-auth", ngImport: i0, template: "<div class=\"rtsee-auth\">\n <button (click)=\"activeComponent = 'sign-in'\">Sing In</button>\n <button (click)=\"activeComponent = 'sign-up'\">Sing Up</button>\n <button (click)=\"activeComponent = 'forgot-password'\">Forgot Password</button>\n <button (click)=\"activeComponent = 'reset-password'\">Reset Password</button>\n\n\n <rtsee-sign-in *ngIf=\"activeComponent === 'sign-in'\"></rtsee-sign-in>\n <rtsee-sign-up *ngIf=\"activeComponent === 'sign-up'\"></rtsee-sign-up>\n <rtsee-forgot-password *ngIf=\"activeComponent === 'forgot-password'\"></rtsee-forgot-password>\n <rtsee-reset-password *ngIf=\"activeComponent === 'reset-password'\"></rtsee-reset-password>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SignUpComponent, selector: "rtsee-sign-up" }, { kind: "component", type: SignInComponent, selector: "rtsee-sign-in" }, { kind: "component", type: ForgotPasswordComponent, selector: "rtsee-forgot-password" }, { kind: "component", type: ResetPasswordComponent, selector: "rtsee-reset-password" }] }); }
1228
+ }
1229
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: AuthComponent, decorators: [{
1230
+ type: Component,
1231
+ args: [{ selector: 'rtsee-auth', template: "<div class=\"rtsee-auth\">\n <button (click)=\"activeComponent = 'sign-in'\">Sing In</button>\n <button (click)=\"activeComponent = 'sign-up'\">Sing Up</button>\n <button (click)=\"activeComponent = 'forgot-password'\">Forgot Password</button>\n <button (click)=\"activeComponent = 'reset-password'\">Reset Password</button>\n\n\n <rtsee-sign-in *ngIf=\"activeComponent === 'sign-in'\"></rtsee-sign-in>\n <rtsee-sign-up *ngIf=\"activeComponent === 'sign-up'\"></rtsee-sign-up>\n <rtsee-forgot-password *ngIf=\"activeComponent === 'forgot-password'\"></rtsee-forgot-password>\n <rtsee-reset-password *ngIf=\"activeComponent === 'reset-password'\"></rtsee-reset-password>\n</div>\n" }]
972
1232
  }] });
973
1233
 
974
1234
  class RtseePeersListComponent {
975
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseePeersListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
976
- 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: [""] });
1235
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseePeersListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1236
+ static { this.ɵ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: [""] }); }
977
1237
  }
978
1238
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseePeersListComponent, decorators: [{
979
1239
  type: Component,
@@ -981,17 +1241,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
981
1241
  }] });
982
1242
 
983
1243
  class RtseeEventsDashboardClientComponent {
984
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeEventsDashboardClientComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
985
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: RtseeEventsDashboardClientComponent, selector: "ngx-rtsee-events-dashboard-client", ngImport: i0, template: "<p>rtsee-events-dashboard-client works!</p>\n" });
1244
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeEventsDashboardClientComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1245
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: RtseeEventsDashboardClientComponent, selector: "ngx-rtsee-events-dashboard-client", ngImport: i0, template: "<p>rtsee-events-dashboard-client works!</p>\n" }); }
986
1246
  }
987
1247
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeEventsDashboardClientComponent, decorators: [{
988
1248
  type: Component,
989
1249
  args: [{ selector: 'ngx-rtsee-events-dashboard-client', template: "<p>rtsee-events-dashboard-client works!</p>\n" }]
990
1250
  }] });
991
1251
 
1252
+ class VendorsComponent {
1253
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: VendorsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1254
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: VendorsComponent, selector: "rtsee-vendors", ngImport: i0, template: "<p>vendors works!</p>\n" }); }
1255
+ }
1256
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: VendorsComponent, decorators: [{
1257
+ type: Component,
1258
+ args: [{ selector: 'rtsee-vendors', template: "<p>vendors works!</p>\n" }]
1259
+ }] });
1260
+
992
1261
  class RTSeeModule {
993
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RTSeeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
994
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.3", ngImport: i0, type: RTSeeModule, declarations: [RTSeeConferenceComponent,
1262
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RTSeeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1263
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.3", ngImport: i0, type: RTSeeModule, declarations: [RTSeeConferenceComponent,
995
1264
  RTSeeControlsComponent,
996
1265
  RtseePeerComponent,
997
1266
  RtseeSoundbarComponent,
@@ -1020,7 +1289,20 @@ class RTSeeModule {
1020
1289
  ProfileComponent,
1021
1290
  EventThumbnailComponent,
1022
1291
  RtseeEventsDashboardSessionComponent,
1023
- RTSeeContainerComponent], imports: [CommonModule,
1292
+ RTSeeContainerComponent,
1293
+ PresentationComponent,
1294
+ StoryPlayerComponent,
1295
+ SlideComponent,
1296
+ StoryThumbnailComponent,
1297
+ SignUpComponent,
1298
+ SignInComponent,
1299
+ ForgotPasswordComponent,
1300
+ VendorsComponent,
1301
+ AuthComponent,
1302
+ ResetPasswordComponent,
1303
+ RtseeSidenavComponent,
1304
+ RtseeBottomNavComponent,
1305
+ PresentationHeaderComponent], imports: [CommonModule,
1024
1306
  MatIconModule,
1025
1307
  MatButtonModule,
1026
1308
  MatSelectModule,
@@ -1028,11 +1310,18 @@ class RTSeeModule {
1028
1310
  MatFormFieldModule,
1029
1311
  ReactiveFormsModule,
1030
1312
  AutosizeModule,
1031
- InfiniteScrollModule], exports: [RTSeeConferenceComponent,
1313
+ InfiniteScrollModule,
1314
+ FormsModule,
1315
+ NgOptimizedImage,
1316
+ RouterLink,
1317
+ RouterLinkActive,
1318
+ MatTabsModule], exports: [RTSeeConferenceComponent,
1032
1319
  MessengerComponent,
1033
1320
  RtseeEventsDashboardComponent,
1034
- RTSeeContainerComponent] });
1035
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RTSeeModule, imports: [CommonModule,
1321
+ RTSeeContainerComponent,
1322
+ PresentationComponent,
1323
+ AuthComponent] }); }
1324
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RTSeeModule, imports: [CommonModule,
1036
1325
  MatIconModule,
1037
1326
  MatButtonModule,
1038
1327
  MatSelectModule,
@@ -1040,7 +1329,9 @@ class RTSeeModule {
1040
1329
  MatFormFieldModule,
1041
1330
  ReactiveFormsModule,
1042
1331
  AutosizeModule,
1043
- InfiniteScrollModule] });
1332
+ InfiniteScrollModule,
1333
+ FormsModule,
1334
+ MatTabsModule] }); }
1044
1335
  }
1045
1336
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RTSeeModule, decorators: [{
1046
1337
  type: NgModule,
@@ -1076,6 +1367,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
1076
1367
  EventThumbnailComponent,
1077
1368
  RtseeEventsDashboardSessionComponent,
1078
1369
  RTSeeContainerComponent,
1370
+ PresentationComponent,
1371
+ StoryPlayerComponent,
1372
+ SlideComponent,
1373
+ StoryThumbnailComponent,
1374
+ SignUpComponent,
1375
+ SignInComponent,
1376
+ ForgotPasswordComponent,
1377
+ VendorsComponent,
1378
+ AuthComponent,
1379
+ ResetPasswordComponent,
1380
+ RtseeSidenavComponent,
1381
+ RtseeBottomNavComponent,
1382
+ PresentationHeaderComponent
1079
1383
  ],
1080
1384
  imports: [
1081
1385
  CommonModule,
@@ -1087,12 +1391,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
1087
1391
  ReactiveFormsModule,
1088
1392
  AutosizeModule,
1089
1393
  InfiniteScrollModule,
1394
+ FormsModule,
1395
+ NgOptimizedImage,
1396
+ RouterLink,
1397
+ RouterLinkActive,
1398
+ MatTabsModule,
1090
1399
  ],
1091
1400
  exports: [
1092
1401
  RTSeeConferenceComponent,
1093
1402
  MessengerComponent,
1094
1403
  RtseeEventsDashboardComponent,
1095
1404
  RTSeeContainerComponent,
1405
+ PresentationComponent,
1406
+ AuthComponent,
1407
+ ],
1408
+ schemas: [
1409
+ CUSTOM_ELEMENTS_SCHEMA,
1096
1410
  ],
1097
1411
  }]
1098
1412
  }] });
@@ -1105,5 +1419,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
1105
1419
  * Generated bundle index. Do not edit.
1106
1420
  */
1107
1421
 
1108
- export { MessengerComponent, NgxService, RTSeeConferenceComponent, RTSeeContainerComponent, RTSeeControlsComponent, RTSeeModule, RtseeEventsDashboardComponent };
1422
+ export { AuthComponent, MessengerComponent, NgxService, PresentationComponent, RTSeeConferenceComponent, RTSeeContainerComponent, RTSeeControlsComponent, RTSeeModule, RtseeEventsDashboardComponent };
1109
1423
  //# sourceMappingURL=rtsee-ngx.mjs.map