@rtsee/ngx 0.0.39 → 0.0.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/dist/ngx/esm2022/lib/common/components/preloader/preloader.component.mjs +33 -0
  2. package/dist/ngx/esm2022/lib/components/rtsee/rtsee-controls/rtsee-controls.component.mjs +25 -0
  3. package/dist/ngx/esm2022/lib/components/rtsee/rtsee.component.mjs +32 -0
  4. package/dist/ngx/esm2022/lib/components/rtsee-container/rtsee-container.component.mjs +11 -0
  5. package/dist/ngx/esm2022/lib/components/rtsee-events-dashboard/components/event-thumbnail/event-thumbnail.component.mjs +76 -0
  6. package/dist/ngx/esm2022/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client/rtsee-events-dashboard-client.component.mjs +11 -0
  7. package/dist/ngx/esm2022/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client-thumbnail/rtsee-events-dashboard-client-thumbnail.component.mjs +33 -0
  8. package/dist/ngx/esm2022/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-session/rtsee-events-dashboard-session.component.mjs +21 -0
  9. package/dist/ngx/esm2022/lib/components/rtsee-events-dashboard/rtsee-events-dashboard.component.mjs +16 -0
  10. package/dist/ngx/esm2022/lib/components/rtsee-messenger/chat/chat.component.mjs +19 -0
  11. package/dist/ngx/esm2022/lib/components/rtsee-messenger/chat-input/chat-input.component.mjs +33 -0
  12. package/dist/ngx/esm2022/lib/components/rtsee-messenger/chat-thumbnail/chat-thumbnail.component.mjs +27 -0
  13. package/dist/ngx/esm2022/lib/components/rtsee-messenger/chats-list/chats-list.component.mjs +22 -0
  14. package/dist/ngx/esm2022/lib/components/rtsee-messenger/main-menu/components/contacts-multiselect/contacts-multiselect.component.mjs +18 -0
  15. package/dist/ngx/esm2022/lib/components/rtsee-messenger/main-menu/components/manage-chat/manage-chat.component.mjs +21 -0
  16. package/dist/ngx/esm2022/lib/components/rtsee-messenger/main-menu/components/search/search.component.mjs +31 -0
  17. package/dist/ngx/esm2022/lib/components/rtsee-messenger/main-menu/main-menu.component.mjs +32 -0
  18. package/dist/ngx/esm2022/lib/components/rtsee-messenger/message/components/message-time-and-status/message-time-and-status.component.mjs +24 -0
  19. package/dist/ngx/esm2022/lib/components/rtsee-messenger/message/message.component.mjs +58 -0
  20. package/dist/ngx/esm2022/lib/components/rtsee-messenger/message-widgets/call-widget/call-widget.component.mjs +34 -0
  21. package/dist/ngx/esm2022/lib/components/rtsee-messenger/messages-list/messages-list.component.mjs +74 -0
  22. package/dist/ngx/esm2022/lib/components/rtsee-messenger/messenger/messenger.component.mjs +31 -0
  23. package/dist/ngx/esm2022/lib/components/rtsee-messenger/messenger-header/messenger-header.component.mjs +33 -0
  24. package/dist/ngx/esm2022/lib/components/rtsee-messenger/profile/profile.component.mjs +26 -0
  25. package/dist/ngx/esm2022/lib/components/rtsee-peer/rtsee-peer.component.mjs +36 -0
  26. package/dist/ngx/esm2022/lib/components/rtsee-peers-list/rtsee-peers-list.component.mjs +11 -0
  27. package/dist/ngx/esm2022/lib/components/rtsee-settings/rtsee-settings.component.mjs +43 -0
  28. package/dist/ngx/esm2022/lib/components/rtsee-soundbar/rtsee-soundbar.component.mjs +59 -0
  29. package/dist/ngx/esm2022/lib/directives/shave.directive.mjs +22 -0
  30. package/dist/ngx/esm2022/lib/directives/widget.directive.mjs +17 -0
  31. package/dist/ngx/esm2022/lib/ngx.module.mjs +141 -0
  32. package/dist/ngx/esm2022/lib/ngx.service.mjs +17 -0
  33. package/dist/ngx/esm2022/lib/services/default-images.service.mjs +14 -0
  34. package/dist/ngx/esm2022/lib/services/events-widgets.service.mjs +23 -0
  35. package/dist/ngx/esm2022/lib/services/message-widgets.service.mjs +26 -0
  36. package/dist/ngx/esm2022/lib/services/time-format-helper.service.mjs +92 -0
  37. package/dist/ngx/fesm2022/rtsee-ngx.mjs +1093 -0
  38. package/dist/ngx/fesm2022/rtsee-ngx.mjs.map +1 -0
  39. package/dist/ngx/lib/common/components/preloader/preloader.component.d.ts +1 -1
  40. package/dist/ngx/lib/components/rtsee/rtsee-controls/rtsee-controls.component.d.ts +1 -1
  41. package/dist/ngx/lib/components/rtsee/rtsee.component.d.ts +1 -1
  42. package/dist/ngx/lib/components/rtsee-container/rtsee-container.component.d.ts +1 -1
  43. package/dist/ngx/lib/components/rtsee-events-dashboard/components/event-thumbnail/event-thumbnail.component.d.ts +1 -1
  44. package/dist/ngx/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client/rtsee-events-dashboard-client.component.d.ts +1 -1
  45. package/dist/ngx/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client-thumbnail/rtsee-events-dashboard-client-thumbnail.component.d.ts +1 -1
  46. package/dist/ngx/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-session/rtsee-events-dashboard-session.component.d.ts +1 -1
  47. package/dist/ngx/lib/components/rtsee-events-dashboard/rtsee-events-dashboard.component.d.ts +1 -1
  48. package/dist/ngx/lib/components/rtsee-messenger/chat/chat.component.d.ts +1 -1
  49. package/dist/ngx/lib/components/rtsee-messenger/chat-input/chat-input.component.d.ts +1 -1
  50. package/dist/ngx/lib/components/rtsee-messenger/chat-thumbnail/chat-thumbnail.component.d.ts +1 -1
  51. package/dist/ngx/lib/components/rtsee-messenger/chats-list/chats-list.component.d.ts +1 -1
  52. package/dist/ngx/lib/components/rtsee-messenger/main-menu/components/contacts-multiselect/contacts-multiselect.component.d.ts +1 -1
  53. package/dist/ngx/lib/components/rtsee-messenger/main-menu/components/manage-chat/manage-chat.component.d.ts +1 -1
  54. package/dist/ngx/lib/components/rtsee-messenger/main-menu/components/search/search.component.d.ts +2 -2
  55. package/dist/ngx/lib/components/rtsee-messenger/main-menu/main-menu.component.d.ts +1 -1
  56. package/dist/ngx/lib/components/rtsee-messenger/message/components/message-time-and-status/message-time-and-status.component.d.ts +1 -1
  57. package/dist/ngx/lib/components/rtsee-messenger/message/message.component.d.ts +1 -1
  58. package/dist/ngx/lib/components/rtsee-messenger/message-widgets/call-widget/call-widget.component.d.ts +1 -1
  59. package/dist/ngx/lib/components/rtsee-messenger/messages-list/messages-list.component.d.ts +1 -1
  60. package/dist/ngx/lib/components/rtsee-messenger/messenger/messenger.component.d.ts +1 -1
  61. package/dist/ngx/lib/components/rtsee-messenger/messenger-header/messenger-header.component.d.ts +1 -1
  62. package/dist/ngx/lib/components/rtsee-messenger/profile/profile.component.d.ts +1 -1
  63. package/dist/ngx/lib/components/rtsee-peer/rtsee-peer.component.d.ts +1 -1
  64. package/dist/ngx/lib/components/rtsee-peers-list/rtsee-peers-list.component.d.ts +1 -1
  65. package/dist/ngx/lib/components/rtsee-settings/rtsee-settings.component.d.ts +1 -1
  66. package/dist/ngx/lib/components/rtsee-soundbar/rtsee-soundbar.component.d.ts +1 -1
  67. package/dist/ngx/lib/directives/shave.directive.d.ts +1 -1
  68. package/dist/ngx/lib/directives/widget.directive.d.ts +1 -1
  69. package/dist/ngx/package.json +13 -6
  70. package/package.json +30 -38
  71. package/dist/ngx/bundles/rtsee-ngx.umd.js +0 -1208
  72. package/dist/ngx/bundles/rtsee-ngx.umd.js.map +0 -1
  73. package/dist/ngx/esm2015/lib/common/components/preloader/preloader.component.js +0 -34
  74. package/dist/ngx/esm2015/lib/components/rtsee/rtsee-controls/rtsee-controls.component.js +0 -27
  75. package/dist/ngx/esm2015/lib/components/rtsee/rtsee.component.js +0 -33
  76. package/dist/ngx/esm2015/lib/components/rtsee-container/rtsee-container.component.js +0 -14
  77. package/dist/ngx/esm2015/lib/components/rtsee-events-dashboard/components/event-thumbnail/event-thumbnail.component.js +0 -73
  78. package/dist/ngx/esm2015/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client/rtsee-events-dashboard-client.component.js +0 -14
  79. package/dist/ngx/esm2015/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client-thumbnail/rtsee-events-dashboard-client-thumbnail.component.js +0 -32
  80. package/dist/ngx/esm2015/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-session/rtsee-events-dashboard-session.component.js +0 -22
  81. package/dist/ngx/esm2015/lib/components/rtsee-events-dashboard/rtsee-events-dashboard.component.js +0 -18
  82. package/dist/ngx/esm2015/lib/components/rtsee-messenger/chat/chat.component.js +0 -20
  83. package/dist/ngx/esm2015/lib/components/rtsee-messenger/chat-input/chat-input.component.js +0 -37
  84. package/dist/ngx/esm2015/lib/components/rtsee-messenger/chat-thumbnail/chat-thumbnail.component.js +0 -27
  85. package/dist/ngx/esm2015/lib/components/rtsee-messenger/chats-list/chats-list.component.js +0 -23
  86. package/dist/ngx/esm2015/lib/components/rtsee-messenger/main-menu/components/contacts-multiselect/contacts-multiselect.component.js +0 -20
  87. package/dist/ngx/esm2015/lib/components/rtsee-messenger/main-menu/components/manage-chat/manage-chat.component.js +0 -23
  88. package/dist/ngx/esm2015/lib/components/rtsee-messenger/main-menu/components/search/search.component.js +0 -34
  89. package/dist/ngx/esm2015/lib/components/rtsee-messenger/main-menu/main-menu.component.js +0 -35
  90. package/dist/ngx/esm2015/lib/components/rtsee-messenger/message/components/message-time-and-status/message-time-and-status.component.js +0 -24
  91. package/dist/ngx/esm2015/lib/components/rtsee-messenger/message/message.component.js +0 -53
  92. package/dist/ngx/esm2015/lib/components/rtsee-messenger/message-widgets/call-widget/call-widget.component.js +0 -37
  93. package/dist/ngx/esm2015/lib/components/rtsee-messenger/messages-list/messages-list.component.js +0 -69
  94. package/dist/ngx/esm2015/lib/components/rtsee-messenger/messenger/messenger.component.js +0 -32
  95. package/dist/ngx/esm2015/lib/components/rtsee-messenger/messenger-header/messenger-header.component.js +0 -33
  96. package/dist/ngx/esm2015/lib/components/rtsee-messenger/profile/profile.component.js +0 -28
  97. package/dist/ngx/esm2015/lib/components/rtsee-peer/rtsee-peer.component.js +0 -35
  98. package/dist/ngx/esm2015/lib/components/rtsee-peers-list/rtsee-peers-list.component.js +0 -15
  99. package/dist/ngx/esm2015/lib/components/rtsee-settings/rtsee-settings.component.js +0 -42
  100. package/dist/ngx/esm2015/lib/components/rtsee-soundbar/rtsee-soundbar.component.js +0 -58
  101. package/dist/ngx/esm2015/lib/directives/shave.directive.js +0 -22
  102. package/dist/ngx/esm2015/lib/directives/widget.directive.js +0 -16
  103. package/dist/ngx/esm2015/lib/ngx.module.js +0 -143
  104. package/dist/ngx/esm2015/lib/ngx.service.js +0 -16
  105. package/dist/ngx/esm2015/lib/services/default-images.service.js +0 -16
  106. package/dist/ngx/esm2015/lib/services/events-widgets.service.js +0 -25
  107. package/dist/ngx/esm2015/lib/services/message-widgets.service.js +0 -28
  108. package/dist/ngx/esm2015/lib/services/time-format-helper.service.js +0 -92
  109. package/dist/ngx/fesm2015/rtsee-ngx.js +0 -1121
  110. package/dist/ngx/fesm2015/rtsee-ngx.js.map +0 -1
  111. /package/dist/ngx/{esm2015/lib/components/rtsee-messenger/main-menu/components/models/MainMenuState.js → esm2022/lib/components/rtsee-messenger/main-menu/components/models/MainMenuState.mjs} +0 -0
  112. /package/dist/ngx/{esm2015/public-api.js → esm2022/public-api.mjs} +0 -0
  113. /package/dist/ngx/{esm2015/rtsee-ngx.js → esm2022/rtsee-ngx.mjs} +0 -0
  114. /package/dist/ngx/{rtsee-ngx.d.ts → index.d.ts} +0 -0
@@ -0,0 +1,33 @@
1
+ import { Component, Input, ViewChild } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class PreloaderComponent {
4
+ viewBox = '0 0 100 100';
5
+ d = 'M 50 96 a 46 46 0 0 1 0 -92 46 46 0 0 1 0 92';
6
+ canvas;
7
+ diameter;
8
+ color = '#000000';
9
+ constructor() {
10
+ if (this.diameter) {
11
+ this.viewBox = `0 0 ${this.diameter} ${this.diameter}`;
12
+ 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}`;
13
+ }
14
+ }
15
+ ngOnInit() {
16
+ //viewBox="0 0 100 100"
17
+ //d="M 50 96 a 46 46 0 0 1 0 -92 46 46 0 0 1 0 92"
18
+ }
19
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: PreloaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20
+ 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" });
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: PreloaderComponent, decorators: [{
23
+ type: Component,
24
+ args: [{ selector: 'rtsee-preloader', 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" }]
25
+ }], ctorParameters: function () { return []; }, propDecorators: { canvas: [{
26
+ type: ViewChild,
27
+ args: ['canvas']
28
+ }], diameter: [{
29
+ type: Input
30
+ }], color: [{
31
+ type: Input
32
+ }] } });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlbG9hZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC9zcmMvbGliL2NvbW1vbi9jb21wb25lbnRzL3ByZWxvYWRlci9wcmVsb2FkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tbW9uL2NvbXBvbmVudHMvcHJlbG9hZGVyL3ByZWxvYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTWhGLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsT0FBTyxHQUFHLGFBQWEsQ0FBQztJQUN4QixDQUFDLEdBQUcsOENBQThDLENBQUM7SUFFOUIsTUFBTSxDQUEwQjtJQUM1QyxRQUFRLENBQVU7SUFDbEIsS0FBSyxHQUFZLFNBQVMsQ0FBQztJQUNwQztRQUNFLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxNQUNyRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQ2xCLElBQUksSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGFBQWEsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLElBQ3ZELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFDbEIsSUFBSSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksWUFBWSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDO1NBQzVEO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTix1QkFBdUI7UUFDdkIsa0RBQWtEO0lBQ3BELENBQUM7dUdBckJVLGtCQUFrQjsyRkFBbEIsa0JBQWtCLDJNQ04vQix1TEFLQTs7MkZEQ2Esa0JBQWtCO2tCQUo5QixTQUFTOytCQUNFLGlCQUFpQjswRUFPTixNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBQ1YsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdydHNlZS1wcmVsb2FkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJlbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJlbG9hZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgdmlld0JveCA9ICcwIDAgMTAwIDEwMCc7XG4gIGQgPSAnTSA1MCA5NiBhIDQ2IDQ2IDAgMCAxIDAgLTkyIDQ2IDQ2IDAgMCAxIDAgOTInO1xuXG4gIEBWaWV3Q2hpbGQoJ2NhbnZhcycpIGNhbnZhcz86IEVsZW1lbnRSZWY8U1ZHRWxlbWVudD47XG4gIEBJbnB1dCgpIGRpYW1ldGVyPzogbnVtYmVyO1xuICBASW5wdXQoKSBjb2xvcj86IHN0cmluZyA9ICcjMDAwMDAwJztcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKHRoaXMuZGlhbWV0ZXIpIHtcbiAgICAgIHRoaXMudmlld0JveCA9IGAwIDAgJHt0aGlzLmRpYW1ldGVyfSAke3RoaXMuZGlhbWV0ZXJ9YDtcbiAgICAgIHRoaXMuZCA9IGBNICR7dGhpcy5kaWFtZXRlciAvIDJ9ICR7dGhpcy5kaWFtZXRlciAqIDAuOTZ9IGEgJHtcbiAgICAgICAgdGhpcy5kaWFtZXRlciAqIDAuNDZcbiAgICAgIH0gJHt0aGlzLmRpYW1ldGVyICogMC40Nn0gMCAwIDEgMCAtJHt0aGlzLmRpYW1ldGVyICogMC45Mn0gJHtcbiAgICAgICAgdGhpcy5kaWFtZXRlciAqIDAuNDZcbiAgICAgIH0gJHt0aGlzLmRpYW1ldGVyICogMC40Nn0gMCAwIDEgMCAke3RoaXMuZGlhbWV0ZXIgKiAwLjkyfWA7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy92aWV3Qm94PVwiMCAwIDEwMCAxMDBcIlxuICAgIC8vZD1cIk0gNTAgOTYgYSA0NiA0NiAwIDAgMSAwIC05MiA0NiA0NiAwIDAgMSAwIDkyXCJcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInJ0c2VlLXByZWxvYWRlclwiPlxuICA8c3ZnIFtzdHlsZS5tYXgtd2lkdGgucHhdPVwiZGlhbWV0ZXJcIiAjY2FudmFzIFthdHRyLnZpZXdCb3hdPVwidmlld0JveFwiPlxuICAgIDxwYXRoIFthdHRyLmRdPVwiZFwiIFthdHRyLnN0cm9rZV09XCJjb2xvclwiLz5cbiAgPC9zdmc+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,25 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@angular/material/button";
5
+ import * as i3 from "@angular/material/form-field";
6
+ export class RTSeeControlsComponent {
7
+ rtsee;
8
+ fullScreenMode;
9
+ onPresentClicked() {
10
+ return this.rtsee.isPresenter
11
+ ? this.rtsee.stopScreenShare()
12
+ : this.rtsee.startScreenShare();
13
+ }
14
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RTSeeControlsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
+ 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 .mat-icon-button{background-color:#333;color:#fff}.rtsee-controls .rtsee-buttons-container.call-end .mat-icon-button{background-color:red}.rtsee-controls .rtsee-buttons-container.rtsee-present-button-container .mat-icon-button{background-color:#090}.rtsee-controls .full-screen{align-self:flex-end;padding:12px;cursor:pointer}.rtsee-controls .rtsee-bottom-panel{padding:12px;display:flex;justify-content:center;align-items:center;border-radius:45px;background-color:#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"] }] });
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RTSeeControlsComponent, decorators: [{
18
+ type: Component,
19
+ 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 .mat-icon-button{background-color:#333;color:#fff}.rtsee-controls .rtsee-buttons-container.call-end .mat-icon-button{background-color:red}.rtsee-controls .rtsee-buttons-container.rtsee-present-button-container .mat-icon-button{background-color:#090}.rtsee-controls .full-screen{align-self:flex-end;padding:12px;cursor:pointer}.rtsee-controls .rtsee-bottom-panel{padding:12px;display:flex;justify-content:center;align-items:center;border-radius:45px;background-color:#000000b3}.rtsee-controls.rtsee-full-screen-controls .rtsee-buttons-container{height:60px;width:60px}\n"] }]
20
+ }], propDecorators: { rtsee: [{
21
+ type: Input
22
+ }], fullScreenMode: [{
23
+ type: Input
24
+ }] } });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnRzZWUtY29udHJvbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS9ydHNlZS1jb250cm9scy9ydHNlZS1jb250cm9scy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3J0c2VlL3J0c2VlLWNvbnRyb2xzL3J0c2VlLWNvbnRyb2xzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQVFqRCxNQUFNLE9BQU8sc0JBQXNCO0lBQ3hCLEtBQUssQ0FBbUI7SUFDeEIsY0FBYyxDQUFXO0lBRWxDLGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXO1lBQzNCLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRTtZQUM5QixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3BDLENBQUM7dUdBUlUsc0JBQXNCOzJGQUF0QixzQkFBc0Isd0hDUm5DLDBvRUEwREE7OzJGRGxEYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9COzhCQUtyQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJUU2VlQ29uZmVyZW5jZSB9IGZyb20gJ0BydHNlZS9jb25mZXJlbmNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LXJ0c2VlLWNvbnRyb2xzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3J0c2VlLWNvbnRyb2xzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcnRzZWUtY29udHJvbHMuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUlRTZWVDb250cm9sc0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHJ0c2VlITogUlRTZWVDb25mZXJlbmNlO1xuICBASW5wdXQoKSBmdWxsU2NyZWVuTW9kZT86IGJvb2xlYW47XG5cbiAgb25QcmVzZW50Q2xpY2tlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5ydHNlZS5pc1ByZXNlbnRlclxuICAgICAgPyB0aGlzLnJ0c2VlLnN0b3BTY3JlZW5TaGFyZSgpXG4gICAgICA6IHRoaXMucnRzZWUuc3RhcnRTY3JlZW5TaGFyZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicnRzZWUtY29udHJvbHNcIiBbbmdDbGFzc109XCJ7J3J0c2VlLWZ1bGwtc2NyZWVuLWNvbnRyb2xzJyA6IGZ1bGxTY3JlZW5Nb2RlIH1cIj5cbiAgPGRpdiBjbGFzcz1cInJ0c2VlLWJvdHRvbS1wYW5lbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJtaWMgcnRzZWUtYnV0dG9ucy1jb250YWluZXJcIj5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIG1hdFN1ZmZpeFxuICAgICAgICAgICAgICBjbGFzcz1cInJ0c2VlLXJpcHBsZS1idXR0b25cIlxuICAgICAgICAgICAgICAqbmdJZj1cInJ0c2VlLm1pY3JvcGhvbmVcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInRoaXMucnRzZWUuZGlzYWJsZU1pY3JvcGhvbmUoKVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj5taWNfbm9uZTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gbWF0U3VmZml4XG4gICAgICAgICAgICAgIGNsYXNzPVwicnRzZWUtcmlwcGxlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiIXJ0c2VlLm1pY3JvcGhvbmVcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInRoaXMucnRzZWUuZW5hYmxlTWljcm9waG9uZSgpXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiPm1pY19vZmY8L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJ2aWRlby1jYW1lcmEgcnRzZWUtYnV0dG9ucy1jb250YWluZXJcIj5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIG1hdFN1ZmZpeFxuICAgICAgICAgICAgICBjbGFzcz1cInJ0c2VlLXJpcHBsZS1idXR0b25cIlxuICAgICAgICAgICAgICAqbmdJZj1cInJ0c2VlLmNhbWVyYVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwicnRzZWUuZGlzYWJsZUNhbWVyYSgpXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiPnZpZGVvY2FtPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBtYXRTdWZmaXhcbiAgICAgICAgICAgICAgY2xhc3M9XCJydHNlZS1yaXBwbGUtYnV0dG9uXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhcnRzZWUuY2FtZXJhXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJydHNlZS5lbmFibGVDYW1lcmEoKVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj52aWRlb2NhbV9vZmY8L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicHJlc2VudCBydHNlZS1idXR0b25zLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsncnRzZWUtcHJlc2VudC1idXR0b24tY29udGFpbmVyJzogcnRzZWUuaXNQcmVzZW50ZXJ9XCI+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBtYXRTdWZmaXhcbiAgICAgICAgICAgICAgY2xhc3M9XCJydHNlZS1yaXBwbGUtYnV0dG9uXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvblByZXNlbnRDbGlja2VkKClcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkXCI+cHJlc2VudF90b19hbGw8L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FsbC1lbmQgcnRzZWUtYnV0dG9ucy1jb250YWluZXJcIj5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIG1hdFN1ZmZpeFxuICAgICAgICAgICAgICBjbGFzcz1cInJ0c2VlLXJpcHBsZS1idXR0b25cIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJ0c2VlLmVuZCgpXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiPmNhbGxfZW5kPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,32 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@angular/material/button";
5
+ import * as i3 from "@angular/material/form-field";
6
+ import * as i4 from "./rtsee-controls/rtsee-controls.component";
7
+ import * as i5 from "../rtsee-peer/rtsee-peer.component";
8
+ import * as i6 from "../rtsee-settings/rtsee-settings.component";
9
+ export class RTSeeComponent {
10
+ settingsViewEnabled;
11
+ fullScreenModeEnabled;
12
+ rtSee;
13
+ constructor() {
14
+ this.settingsViewEnabled = false;
15
+ this.fullScreenModeEnabled = false;
16
+ }
17
+ toggleSettings() {
18
+ this.settingsViewEnabled = !this.settingsViewEnabled;
19
+ }
20
+ toggleFullScreenMode() {
21
+ this.fullScreenModeEnabled = !this.fullScreenModeEnabled;
22
+ }
23
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RTSeeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
24
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: RTSeeComponent, selector: "ngx-rtsee", inputs: { rtSee: "rtSee" }, ngImport: i0, template: "<div class=\"rtsee-shell\" [ngClass]=\"{\n'rtsee-shell-expanded': rtSee.uiControls.isExpanded || fullScreenModeEnabled,\n'rtsee-shell-no-companions': !rtSee.rtcPeerConnections.connections?.length\n}\">\n <div class=\"rtsee-local-peer\" *ngIf=\"rtSee.localStream && rtSee.camera\">\n <video class=\"rtsee-local-video\"\n [autoplay]=\"true\"\n [muted]=\"true\"\n [srcObject]=\"rtSee.localStream\"\n playsinline=\"true\"\n ></video>\n </div>\n <div class=\"rtsee-window-controls\">\n <button mat-icon-button matSuffix\n type=\"button\"\n (click)=\"this.toggleSettings()\"\n class=\"rtsee-window-controls-button rtsee-ripple-button\"\n >\n <span class=\"material-icons-outlined\">settings</span>\n </button>\n <button mat-icon-button matSuffix\n type=\"button\"\n (click)=\"this.toggleFullScreenMode()\"\n class=\"rtsee-window-controls-button rtsee-ripple-button\"\n >\n <span class=\"material-icons-outlined\">open_in_full</span>\n </button>\n </div>\n <div class=\"rtsee-settings-container\" *ngIf=\"settingsViewEnabled\">\n <button mat-icon-button matSuffix\n type=\"button\"\n (click)=\"this.toggleSettings()\"\n class=\"rtsee-close-settings-button\"\n >\n <span class=\"material-icons-outlined\">close</span>\n </button>\n <ngx-rtsee-settings [rtSee]=\"rtSee\" [fullScreenMode]=\"fullScreenModeEnabled\"></ngx-rtsee-settings>\n </div>\n <div class=\"rtsee-screen-share\" *ngIf=\"rtSee.screenSharePeer\" >\n <video [autoplay]=\"true\"\n [muted]=\"true\"\n [srcObject]=\"rtSee.screenSharePeer.remoteVideoStream\"\n playsinline=\"true\"\n class=\"rtsee-screen-share-video\"\n ></video>\n </div>\n <div class=\"rtsee-peers\" [ngClass]=\"{\n 'rtsee-peers-alone': !rtSee.rtcPeerConnections.connections?.length,\n 'rtsee-peers-one': rtSee.rtcPeerConnections.connections?.length === 1,\n 'rtsee-peers-three-grid': rtSee.rtcPeerConnections.connections?.length\n && rtSee.rtcPeerConnections.connections.length > 1\n && rtSee.rtcPeerConnections.connections.length < 4,\n 'rtsee-peers-six-grid': rtSee.rtcPeerConnections.connections?.length\n && rtSee.rtcPeerConnections.connections.length > 3\n && rtSee.rtcPeerConnections.connections.length < 7,\n 'rtsee-peers-nine-grid': rtSee.rtcPeerConnections.connections?.length\n && rtSee.rtcPeerConnections.connections.length >= 7\n }\">\n <div class=\"rtsee-peer-wrapper\"\n *ngFor=\"let peer of rtSee.rtcPeerConnections.connections\"\n >\n <ngx-rtsee-peer [peer]=\"peer\"></ngx-rtsee-peer>\n </div>\n </div>\n <div class=\"rtsee-peers-list\"></div>\n <div class=\"rtsee-controls-wrapper\">\n <ngx-rtsee-controls [rtsee]=\"rtSee\" [fullScreenMode]=\"fullScreenModeEnabled\"></ngx-rtsee-controls>\n </div>\n</div>\n\n", styles: [".rtsee-shell{position:fixed;z-index:10;right:16px;bottom:16px;background-color:#333;width:100%;max-width:320px;height:240px;overflow:hidden;border-radius:8px}.rtsee-shell:hover .rtsee-controls-wrapper{bottom:8px}.rtsee-shell:hover .rtsee-window-controls{top:8px}.rtsee-shell .rtsee-local-peer{position:absolute;top:8px;left:8px;width:80px;height:60px;text-align:center}.rtsee-shell .rtsee-local-peer .rtsee-local-video{height:100%;max-width:100%;border-radius:8px}.rtsee-shell .rtsee-screen-share{height:100%}.rtsee-shell .rtsee-screen-share .rtsee-screen-share-video{width:100%;height:calc(100% - 50px)}.rtsee-shell .rtsee-peers{height:100%}.rtsee-shell .rtsee-peers .rtsee-peer-wrapper{padding:8px;box-sizing:border-box;height:100%}.rtsee-shell .rtsee-peers .rtsee-peer-wrapper .rtsee-peer{position:relative}.rtsee-shell .rtsee-peers .rtsee-peer-wrapper .rtsee-peer ::ng-deep .rtsee-peer-video{border-radius:8px}.rtsee-shell .rtsee-controls-wrapper{height:60px;width:100%;position:absolute;left:0;bottom:-60px;transition:bottom .1s;text-align:center}.rtsee-shell .rtsee-window-controls{position:absolute;top:-60px;right:8px;transition:top .1s;z-index:4}.rtsee-shell .rtsee-window-controls .rtsee-window-controls-button{margin-left:8px;background-color:#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:absolute;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:60px}\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: i4.RTSeeControlsComponent, selector: "ngx-rtsee-controls", inputs: ["rtsee", "fullScreenMode"] }, { kind: "component", type: i5.RtseePeerComponent, selector: "ngx-rtsee-peer", inputs: ["peer"] }, { kind: "component", type: i6.RtseeSettingsComponent, selector: "ngx-rtsee-settings", inputs: ["rtSee", "fullScreenMode"] }] });
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RTSeeComponent, decorators: [{
27
+ type: Component,
28
+ args: [{ selector: 'ngx-rtsee', template: "<div class=\"rtsee-shell\" [ngClass]=\"{\n'rtsee-shell-expanded': rtSee.uiControls.isExpanded || fullScreenModeEnabled,\n'rtsee-shell-no-companions': !rtSee.rtcPeerConnections.connections?.length\n}\">\n <div class=\"rtsee-local-peer\" *ngIf=\"rtSee.localStream && rtSee.camera\">\n <video class=\"rtsee-local-video\"\n [autoplay]=\"true\"\n [muted]=\"true\"\n [srcObject]=\"rtSee.localStream\"\n playsinline=\"true\"\n ></video>\n </div>\n <div class=\"rtsee-window-controls\">\n <button mat-icon-button matSuffix\n type=\"button\"\n (click)=\"this.toggleSettings()\"\n class=\"rtsee-window-controls-button rtsee-ripple-button\"\n >\n <span class=\"material-icons-outlined\">settings</span>\n </button>\n <button mat-icon-button matSuffix\n type=\"button\"\n (click)=\"this.toggleFullScreenMode()\"\n class=\"rtsee-window-controls-button rtsee-ripple-button\"\n >\n <span class=\"material-icons-outlined\">open_in_full</span>\n </button>\n </div>\n <div class=\"rtsee-settings-container\" *ngIf=\"settingsViewEnabled\">\n <button mat-icon-button matSuffix\n type=\"button\"\n (click)=\"this.toggleSettings()\"\n class=\"rtsee-close-settings-button\"\n >\n <span class=\"material-icons-outlined\">close</span>\n </button>\n <ngx-rtsee-settings [rtSee]=\"rtSee\" [fullScreenMode]=\"fullScreenModeEnabled\"></ngx-rtsee-settings>\n </div>\n <div class=\"rtsee-screen-share\" *ngIf=\"rtSee.screenSharePeer\" >\n <video [autoplay]=\"true\"\n [muted]=\"true\"\n [srcObject]=\"rtSee.screenSharePeer.remoteVideoStream\"\n playsinline=\"true\"\n class=\"rtsee-screen-share-video\"\n ></video>\n </div>\n <div class=\"rtsee-peers\" [ngClass]=\"{\n 'rtsee-peers-alone': !rtSee.rtcPeerConnections.connections?.length,\n 'rtsee-peers-one': rtSee.rtcPeerConnections.connections?.length === 1,\n 'rtsee-peers-three-grid': rtSee.rtcPeerConnections.connections?.length\n && rtSee.rtcPeerConnections.connections.length > 1\n && rtSee.rtcPeerConnections.connections.length < 4,\n 'rtsee-peers-six-grid': rtSee.rtcPeerConnections.connections?.length\n && rtSee.rtcPeerConnections.connections.length > 3\n && rtSee.rtcPeerConnections.connections.length < 7,\n 'rtsee-peers-nine-grid': rtSee.rtcPeerConnections.connections?.length\n && rtSee.rtcPeerConnections.connections.length >= 7\n }\">\n <div class=\"rtsee-peer-wrapper\"\n *ngFor=\"let peer of rtSee.rtcPeerConnections.connections\"\n >\n <ngx-rtsee-peer [peer]=\"peer\"></ngx-rtsee-peer>\n </div>\n </div>\n <div class=\"rtsee-peers-list\"></div>\n <div class=\"rtsee-controls-wrapper\">\n <ngx-rtsee-controls [rtsee]=\"rtSee\" [fullScreenMode]=\"fullScreenModeEnabled\"></ngx-rtsee-controls>\n </div>\n</div>\n\n", styles: [".rtsee-shell{position:fixed;z-index:10;right:16px;bottom:16px;background-color:#333;width:100%;max-width:320px;height:240px;overflow:hidden;border-radius:8px}.rtsee-shell:hover .rtsee-controls-wrapper{bottom:8px}.rtsee-shell:hover .rtsee-window-controls{top:8px}.rtsee-shell .rtsee-local-peer{position:absolute;top:8px;left:8px;width:80px;height:60px;text-align:center}.rtsee-shell .rtsee-local-peer .rtsee-local-video{height:100%;max-width:100%;border-radius:8px}.rtsee-shell .rtsee-screen-share{height:100%}.rtsee-shell .rtsee-screen-share .rtsee-screen-share-video{width:100%;height:calc(100% - 50px)}.rtsee-shell .rtsee-peers{height:100%}.rtsee-shell .rtsee-peers .rtsee-peer-wrapper{padding:8px;box-sizing:border-box;height:100%}.rtsee-shell .rtsee-peers .rtsee-peer-wrapper .rtsee-peer{position:relative}.rtsee-shell .rtsee-peers .rtsee-peer-wrapper .rtsee-peer ::ng-deep .rtsee-peer-video{border-radius:8px}.rtsee-shell .rtsee-controls-wrapper{height:60px;width:100%;position:absolute;left:0;bottom:-60px;transition:bottom .1s;text-align:center}.rtsee-shell .rtsee-window-controls{position:absolute;top:-60px;right:8px;transition:top .1s;z-index:4}.rtsee-shell .rtsee-window-controls .rtsee-window-controls-button{margin-left:8px;background-color:#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:absolute;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:60px}\n"] }]
29
+ }], ctorParameters: function () { return []; }, propDecorators: { rtSee: [{
30
+ type: Input
31
+ }] } });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnRzZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS9ydHNlZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3J0c2VlL3J0c2VlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQVFqRCxNQUFNLE9BQU8sY0FBYztJQUN6QixtQkFBbUIsQ0FBVTtJQUM3QixxQkFBcUIsQ0FBVTtJQUV0QixLQUFLLENBQW1CO0lBQ2pDO1FBQ0UsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztRQUNqQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ3ZELENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQzNELENBQUM7dUdBaEJVLGNBQWM7MkZBQWQsY0FBYyw2RUNSM0IsczVGQXNFQTs7MkZEOURhLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0UsV0FBVzswRUFRWixLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSVFNlZUNvbmZlcmVuY2UgfSBmcm9tICdAcnRzZWUvY29uZmVyZW5jZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC1ydHNlZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9ydHNlZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3J0c2VlLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFJUU2VlQ29tcG9uZW50IHtcbiAgc2V0dGluZ3NWaWV3RW5hYmxlZDogYm9vbGVhbjtcbiAgZnVsbFNjcmVlbk1vZGVFbmFibGVkOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHJ0U2VlITogUlRTZWVDb25mZXJlbmNlO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnNldHRpbmdzVmlld0VuYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLmZ1bGxTY3JlZW5Nb2RlRW5hYmxlZCA9IGZhbHNlO1xuICB9XG5cbiAgdG9nZ2xlU2V0dGluZ3MoKSB7XG4gICAgdGhpcy5zZXR0aW5nc1ZpZXdFbmFibGVkID0gIXRoaXMuc2V0dGluZ3NWaWV3RW5hYmxlZDtcbiAgfVxuXG4gIHRvZ2dsZUZ1bGxTY3JlZW5Nb2RlKCkge1xuICAgIHRoaXMuZnVsbFNjcmVlbk1vZGVFbmFibGVkID0gIXRoaXMuZnVsbFNjcmVlbk1vZGVFbmFibGVkO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicnRzZWUtc2hlbGxcIiBbbmdDbGFzc109XCJ7XG4ncnRzZWUtc2hlbGwtZXhwYW5kZWQnOiBydFNlZS51aUNvbnRyb2xzLmlzRXhwYW5kZWQgfHwgZnVsbFNjcmVlbk1vZGVFbmFibGVkLFxuJ3J0c2VlLXNoZWxsLW5vLWNvbXBhbmlvbnMnOiAhcnRTZWUucnRjUGVlckNvbm5lY3Rpb25zLmNvbm5lY3Rpb25zPy5sZW5ndGhcbn1cIj5cbiAgPGRpdiBjbGFzcz1cInJ0c2VlLWxvY2FsLXBlZXJcIiAqbmdJZj1cInJ0U2VlLmxvY2FsU3RyZWFtICYmIHJ0U2VlLmNhbWVyYVwiPlxuICAgIDx2aWRlbyBjbGFzcz1cInJ0c2VlLWxvY2FsLXZpZGVvXCJcbiAgICAgICAgICAgW2F1dG9wbGF5XT1cInRydWVcIlxuICAgICAgICAgICBbbXV0ZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgIFtzcmNPYmplY3RdPVwicnRTZWUubG9jYWxTdHJlYW1cIlxuICAgICAgICAgICBwbGF5c2lubGluZT1cInRydWVcIlxuICAgID48L3ZpZGVvPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInJ0c2VlLXdpbmRvdy1jb250cm9sc1wiPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIG1hdFN1ZmZpeFxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwidGhpcy50b2dnbGVTZXR0aW5ncygpXCJcbiAgICAgICAgICAgIGNsYXNzPVwicnRzZWUtd2luZG93LWNvbnRyb2xzLWJ1dHRvbiBydHNlZS1yaXBwbGUtYnV0dG9uXCJcbiAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkXCI+c2V0dGluZ3M8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gbWF0U3VmZml4XG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0aGlzLnRvZ2dsZUZ1bGxTY3JlZW5Nb2RlKClcIlxuICAgICAgICAgICAgY2xhc3M9XCJydHNlZS13aW5kb3ctY29udHJvbHMtYnV0dG9uIHJ0c2VlLXJpcHBsZS1idXR0b25cIlxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj5vcGVuX2luX2Z1bGw8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicnRzZWUtc2V0dGluZ3MtY29udGFpbmVyXCIgKm5nSWY9XCJzZXR0aW5nc1ZpZXdFbmFibGVkXCI+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gbWF0U3VmZml4XG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0aGlzLnRvZ2dsZVNldHRpbmdzKClcIlxuICAgICAgICAgICAgY2xhc3M9XCJydHNlZS1jbG9zZS1zZXR0aW5ncy1idXR0b25cIlxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj5jbG9zZTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8bmd4LXJ0c2VlLXNldHRpbmdzIFtydFNlZV09XCJydFNlZVwiIFtmdWxsU2NyZWVuTW9kZV09XCJmdWxsU2NyZWVuTW9kZUVuYWJsZWRcIj48L25neC1ydHNlZS1zZXR0aW5ncz5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJydHNlZS1zY3JlZW4tc2hhcmVcIiAqbmdJZj1cInJ0U2VlLnNjcmVlblNoYXJlUGVlclwiID5cbiAgICA8dmlkZW8gW2F1dG9wbGF5XT1cInRydWVcIlxuICAgICAgICAgICBbbXV0ZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgIFtzcmNPYmplY3RdPVwicnRTZWUuc2NyZWVuU2hhcmVQZWVyLnJlbW90ZVZpZGVvU3RyZWFtXCJcbiAgICAgICAgICAgcGxheXNpbmxpbmU9XCJ0cnVlXCJcbiAgICAgICAgICAgY2xhc3M9XCJydHNlZS1zY3JlZW4tc2hhcmUtdmlkZW9cIlxuICAgID48L3ZpZGVvPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInJ0c2VlLXBlZXJzXCIgW25nQ2xhc3NdPVwie1xuICAgICdydHNlZS1wZWVycy1hbG9uZSc6ICFydFNlZS5ydGNQZWVyQ29ubmVjdGlvbnMuY29ubmVjdGlvbnM/Lmxlbmd0aCxcbiAgICAncnRzZWUtcGVlcnMtb25lJzogcnRTZWUucnRjUGVlckNvbm5lY3Rpb25zLmNvbm5lY3Rpb25zPy5sZW5ndGggPT09IDEsXG4gICAgJ3J0c2VlLXBlZXJzLXRocmVlLWdyaWQnOiBydFNlZS5ydGNQZWVyQ29ubmVjdGlvbnMuY29ubmVjdGlvbnM/Lmxlbmd0aFxuICAgICAgJiYgcnRTZWUucnRjUGVlckNvbm5lY3Rpb25zLmNvbm5lY3Rpb25zLmxlbmd0aCA+IDFcbiAgICAgICYmIHJ0U2VlLnJ0Y1BlZXJDb25uZWN0aW9ucy5jb25uZWN0aW9ucy5sZW5ndGggPCA0LFxuICAgICdydHNlZS1wZWVycy1zaXgtZ3JpZCc6IHJ0U2VlLnJ0Y1BlZXJDb25uZWN0aW9ucy5jb25uZWN0aW9ucz8ubGVuZ3RoXG4gICAgICAmJiBydFNlZS5ydGNQZWVyQ29ubmVjdGlvbnMuY29ubmVjdGlvbnMubGVuZ3RoID4gM1xuICAgICAgJiYgcnRTZWUucnRjUGVlckNvbm5lY3Rpb25zLmNvbm5lY3Rpb25zLmxlbmd0aCA8IDcsXG4gICAgJ3J0c2VlLXBlZXJzLW5pbmUtZ3JpZCc6IHJ0U2VlLnJ0Y1BlZXJDb25uZWN0aW9ucy5jb25uZWN0aW9ucz8ubGVuZ3RoXG4gICAgICAmJiBydFNlZS5ydGNQZWVyQ29ubmVjdGlvbnMuY29ubmVjdGlvbnMubGVuZ3RoID49IDdcbiAgfVwiPlxuICAgIDxkaXYgY2xhc3M9XCJydHNlZS1wZWVyLXdyYXBwZXJcIlxuICAgICAgICAgKm5nRm9yPVwibGV0IHBlZXIgb2YgcnRTZWUucnRjUGVlckNvbm5lY3Rpb25zLmNvbm5lY3Rpb25zXCJcbiAgICA+XG4gICAgICA8bmd4LXJ0c2VlLXBlZXIgW3BlZXJdPVwicGVlclwiPjwvbmd4LXJ0c2VlLXBlZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicnRzZWUtcGVlcnMtbGlzdFwiPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicnRzZWUtY29udHJvbHMtd3JhcHBlclwiPlxuICAgIDxuZ3gtcnRzZWUtY29udHJvbHMgW3J0c2VlXT1cInJ0U2VlXCIgW2Z1bGxTY3JlZW5Nb2RlXT1cImZ1bGxTY3JlZW5Nb2RlRW5hYmxlZFwiPjwvbmd4LXJ0c2VlLWNvbnRyb2xzPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG4iXX0=
@@ -0,0 +1,11 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class RtseeContainerComponent {
4
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: RtseeContainerComponent, selector: "rtsee-rtsee-container", ngImport: i0, template: "<p>rtsee-container works!</p>\n" });
6
+ }
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeContainerComponent, decorators: [{
8
+ type: Component,
9
+ args: [{ selector: 'rtsee-rtsee-container', template: "<p>rtsee-container works!</p>\n" }]
10
+ }] });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnRzZWUtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC9zcmMvbGliL2NvbXBvbmVudHMvcnRzZWUtY29udGFpbmVyL3J0c2VlLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3J0c2VlLWNvbnRhaW5lci9ydHNlZS1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNMUMsTUFBTSxPQUFPLHVCQUF1Qjt1R0FBdkIsdUJBQXVCOzJGQUF2Qix1QkFBdUIsNkRDTnBDLGlDQUNBOzsyRkRLYSx1QkFBdUI7a0JBSm5DLFNBQVM7K0JBQ0UsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3J0c2VlLXJ0c2VlLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9ydHNlZS1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBSdHNlZUNvbnRhaW5lckNvbXBvbmVudCB7fVxuIiwiPHA+cnRzZWUtY29udGFpbmVyIHdvcmtzITwvcD5cbiJdfQ==
@@ -0,0 +1,76 @@
1
+ import { Component, Input, ViewChild, } from '@angular/core';
2
+ import { WidgetDirective } from '../../../../directives/widget.directive';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../../../services/events-widgets.service";
5
+ import * as i2 from "../../../../services/time-format-helper.service";
6
+ import * as i3 from "@angular/common";
7
+ import * as i4 from "../../../../directives/widget.directive";
8
+ export class EventThumbnailComponent {
9
+ widgetsService;
10
+ componentFactoryResolver;
11
+ timeFormatService;
12
+ tooltip;
13
+ event;
14
+ widgetHost;
15
+ constructor(widgetsService, componentFactoryResolver, timeFormatService) {
16
+ this.widgetsService = widgetsService;
17
+ this.componentFactoryResolver = componentFactoryResolver;
18
+ this.timeFormatService = timeFormatService;
19
+ }
20
+ ngOnInit() {
21
+ if (this.event.data) {
22
+ this.generateTooltip();
23
+ }
24
+ }
25
+ generateTooltip() {
26
+ /* eslint-disable */
27
+ let tooltip = '';
28
+ if (typeof this.event.data !== 'object') {
29
+ return;
30
+ }
31
+ try {
32
+ for (const key in this.event.data) {
33
+ if (this.event.data.hasOwnProperty(key)) {
34
+ if (tooltip) {
35
+ tooltip += '&#013;';
36
+ }
37
+ tooltip += key + ' -> ' + this.event.data[key];
38
+ }
39
+ }
40
+ this.tooltip = tooltip;
41
+ }
42
+ catch (e) {
43
+ console.log('Failed to generate a tooltip');
44
+ }
45
+ /* eslint-enable */
46
+ }
47
+ ngAfterViewInit() {
48
+ /* eslint-disable */
49
+ if (this.event.widget) {
50
+ const widget = this.widgetsService.getWidgetComponentByName(this.event.widget);
51
+ if (!widget) {
52
+ return;
53
+ }
54
+ const viewContainerRef = this.widgetHost.viewContainerRef;
55
+ viewContainerRef.clear();
56
+ const componentToShow = this.componentFactoryResolver.resolveComponentFactory(widget);
57
+ const componentRef = viewContainerRef.createComponent(componentToShow);
58
+ componentRef.instance.event = this.event;
59
+ componentRef.instance.event = this.event;
60
+ componentRef.changeDetectorRef.detectChanges();
61
+ }
62
+ /* eslint-enable */
63
+ }
64
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: EventThumbnailComponent, deps: [{ token: i1.EventsWidgetsService }, { token: i0.ComponentFactoryResolver }, { token: i2.TimeFormatHelperService }], target: i0.ɵɵFactoryTarget.Component });
65
+ 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: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.WidgetDirective, selector: "[widgetHost]" }] });
66
+ }
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: EventThumbnailComponent, decorators: [{
68
+ type: Component,
69
+ args: [{ selector: 'rtsee-event-thumbnail', 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" }]
70
+ }], ctorParameters: function () { return [{ type: i1.EventsWidgetsService }, { type: i0.ComponentFactoryResolver }, { type: i2.TimeFormatHelperService }]; }, propDecorators: { event: [{
71
+ type: Input
72
+ }], widgetHost: [{
73
+ type: ViewChild,
74
+ args: [WidgetDirective, { static: false }]
75
+ }] } });
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtdGh1bWJuYWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC9zcmMvbGliL2NvbXBvbmVudHMvcnRzZWUtZXZlbnRzLWRhc2hib2FyZC9jb21wb25lbnRzL2V2ZW50LXRodW1ibmFpbC9ldmVudC10aHVtYm5haWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1ldmVudHMtZGFzaGJvYXJkL2NvbXBvbmVudHMvZXZlbnQtdGh1bWJuYWlsL2V2ZW50LXRodW1ibmFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUdULEtBQUssRUFFTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7Ozs7QUFRMUUsTUFBTSxPQUFPLHVCQUF1QjtJQU14QjtJQUNBO0lBQ0Q7SUFQVCxPQUFPLENBQVU7SUFFUixLQUFLLENBQXVCO0lBQ1UsVUFBVSxDQUFtQjtJQUM1RSxZQUNVLGNBQW9DLEVBQ3BDLHdCQUFrRCxFQUNuRCxpQkFBMEM7UUFGekMsbUJBQWMsR0FBZCxjQUFjLENBQXNCO1FBQ3BDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbkQsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF5QjtJQUNoRCxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixvQkFBb0I7UUFDcEIsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDdkMsT0FBTztTQUNSO1FBQ0QsSUFBSTtZQUNGLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7Z0JBQ2pDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUN2QyxJQUFJLE9BQU8sRUFBRTt3QkFDWCxPQUFPLElBQUksUUFBUSxDQUFDO3FCQUNyQjtvQkFDRCxPQUFPLElBQUksR0FBRyxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDaEQ7YUFDRjtZQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1NBQ3hCO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLDhCQUE4QixDQUFDLENBQUM7U0FDN0M7UUFDRCxtQkFBbUI7SUFDckIsQ0FBQztJQUVELGVBQWU7UUFDYixvQkFBb0I7UUFDcEIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNyQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLHdCQUF3QixDQUN6RCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDbEIsQ0FBQztZQUNGLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ1gsT0FBTzthQUNSO1lBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDO1lBQzFELGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE1BQU0sZUFBZSxHQUNuQixJQUFJLENBQUMsd0JBQXdCLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDaEUsTUFBTSxZQUFZLEdBQ2hCLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNwRCxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3pDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDekMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ2hEO1FBQ0QsbUJBQW1CO0lBQ3JCLENBQUM7dUdBM0RVLHVCQUF1QjsyRkFBdkIsdUJBQXVCLHFJQUl2QixlQUFlLGdEQ3RCNUIsbzdCQW9CQTs7MkZERmEsdUJBQXVCO2tCQUpuQyxTQUFTOytCQUNFLHVCQUF1Qjt3TEFNeEIsS0FBSztzQkFBYixLQUFLO2dCQUN5QyxVQUFVO3NCQUF4RCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgQ29tcG9uZW50UmVmLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUlRTZWVEYXNoYm9hcmRFdmVudCB9IGZyb20gJ0BydHNlZS9ldmVudHMtbWFuYWdlcic7XG5pbXBvcnQgeyBXaWRnZXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9kaXJlY3RpdmVzL3dpZGdldC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRXZlbnRzV2lkZ2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9ldmVudHMtd2lkZ2V0cy5zZXJ2aWNlJztcbmltcG9ydCB7IFRpbWVGb3JtYXRIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdGltZS1mb3JtYXQtaGVscGVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdydHNlZS1ldmVudC10aHVtYm5haWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZXZlbnQtdGh1bWJuYWlsLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgRXZlbnRUaHVtYm5haWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICB0b29sdGlwPzogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGV2ZW50ITogUlRTZWVEYXNoYm9hcmRFdmVudDtcbiAgQFZpZXdDaGlsZChXaWRnZXREaXJlY3RpdmUsIHsgc3RhdGljOiBmYWxzZSB9KSB3aWRnZXRIb3N0ITogV2lkZ2V0RGlyZWN0aXZlO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHdpZGdldHNTZXJ2aWNlOiBFdmVudHNXaWRnZXRzU2VydmljZSxcbiAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHB1YmxpYyB0aW1lRm9ybWF0U2VydmljZTogVGltZUZvcm1hdEhlbHBlclNlcnZpY2UsXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ldmVudC5kYXRhKSB7XG4gICAgICB0aGlzLmdlbmVyYXRlVG9vbHRpcCgpO1xuICAgIH1cbiAgfVxuXG4gIGdlbmVyYXRlVG9vbHRpcCgpIHtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIGxldCB0b29sdGlwID0gJyc7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmV2ZW50LmRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmV2ZW50LmRhdGEpIHtcbiAgICAgICAgaWYgKHRoaXMuZXZlbnQuZGF0YS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgaWYgKHRvb2x0aXApIHtcbiAgICAgICAgICAgIHRvb2x0aXAgKz0gJyYjMDEzOyc7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRvb2x0aXAgKz0ga2V5ICsgJyAtPiAnICsgdGhpcy5ldmVudC5kYXRhW2tleV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMudG9vbHRpcCA9IHRvb2x0aXA7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5sb2coJ0ZhaWxlZCB0byBnZW5lcmF0ZSBhIHRvb2x0aXAnKTtcbiAgICB9XG4gICAgLyogZXNsaW50LWVuYWJsZSAqL1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgaWYgKHRoaXMuZXZlbnQud2lkZ2V0KSB7XG4gICAgICBjb25zdCB3aWRnZXQgPSB0aGlzLndpZGdldHNTZXJ2aWNlLmdldFdpZGdldENvbXBvbmVudEJ5TmFtZShcbiAgICAgICAgdGhpcy5ldmVudC53aWRnZXQsXG4gICAgICApO1xuICAgICAgaWYgKCF3aWRnZXQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3Qgdmlld0NvbnRhaW5lclJlZiA9IHRoaXMud2lkZ2V0SG9zdC52aWV3Q29udGFpbmVyUmVmO1xuICAgICAgdmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgICAgY29uc3QgY29tcG9uZW50VG9TaG93ID1cbiAgICAgICAgdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3Rvcnkod2lkZ2V0KTtcbiAgICAgIGNvbnN0IGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPHR5cGVvZiB3aWRnZXQ+ID1cbiAgICAgICAgdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50VG9TaG93KTtcbiAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5ldmVudCA9IHRoaXMuZXZlbnQ7XG4gICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZXZlbnQgPSB0aGlzLmV2ZW50O1xuICAgICAgY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gICAgLyogZXNsaW50LWVuYWJsZSAqL1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicnRzZWUtZXZlbnRzLWRhc2hib2FyZC1ldmVudC10aHVtYm5haWxcIj5cbiAgPG5nLXRlbXBsYXRlICpuZ0lmPVwiZXZlbnQud2lkZ2V0XCIgd2lkZ2V0SG9zdD48L25nLXRlbXBsYXRlPlxuICA8ZGl2ICpuZ0lmPVwiIWV2ZW50LndpZGdldFwiIGNsYXNzPVwicnRzZWUtZXZlbnRzLWRhc2hib2FyZC1kZWZhdWx0LWV2ZW50LXRodW1ibmFpbFwiXG4gICAgICAgW25nQ2xhc3NdPVwieydydHNlZS1ldmVudHMtZGFzaGJvYXJkLWRlZmF1bHQtZXZlbnQtdGh1bWJuYWlsLXdpdGgtZGF0YSc6IGV2ZW50LmRhdGF9XCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJydHNlZS1ldmVudHMtZGFzaGJvYXJkLWRlZmF1bHQtZXZlbnQtdGh1bWJuYWlsLW5hbWVcIj57e2V2ZW50Lm5hbWV9fTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJydHNlZS1ldmVudHMtZGFzaGJvYXJkLWRlZmF1bHQtZXZlbnQtdGh1bWJuYWlsLWluZm9cIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJldmVudC5kYXRhXCIgY2xhc3M9XCJydHNlZS1ldmVudHMtZGFzaGJvYXJkLWRlZmF1bHQtZXZlbnQtdGh1bWJuYWlsLWRldGFpbHNcIlxuICAgICAgICAgICBbdGl0bGVdPVwidG9vbHRpcFwiXG4gICAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cInJ0c2VlLWV2ZW50cy1kYXNoYm9hcmQtZGVmYXVsdC1ldmVudC10aHVtYm5haWwtZGV0YWlscy1pY29uIG1hdGVyaWFsLWljb25zLW91dGxpbmVkXCJcbiAgICAgID5pbmZvPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicnRzZWUtZXZlbnRzLWRhc2hib2FyZC1kZWZhdWx0LWV2ZW50LXRodW1ibmFpbC10aW1lXCI+XG4gICAgICAgIDxzcGFuPnt7IHRpbWVGb3JtYXRTZXJ2aWNlLnRvQWdvKGV2ZW50LmNyZWF0ZWRBdCkgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,11 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class RtseeEventsDashboardClientComponent {
4
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeEventsDashboardClientComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5
+ 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" });
6
+ }
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeEventsDashboardClientComponent, decorators: [{
8
+ type: Component,
9
+ args: [{ selector: 'ngx-rtsee-events-dashboard-client', template: "<p>rtsee-events-dashboard-client works!</p>\n" }]
10
+ }] });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnRzZWUtZXZlbnRzLWRhc2hib2FyZC1jbGllbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1ldmVudHMtZGFzaGJvYXJkL2NvbXBvbmVudHMvcnRzZWUtZXZlbnRzLWRhc2hib2FyZC1jbGllbnQvcnRzZWUtZXZlbnRzLWRhc2hib2FyZC1jbGllbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1ldmVudHMtZGFzaGJvYXJkL2NvbXBvbmVudHMvcnRzZWUtZXZlbnRzLWRhc2hib2FyZC1jbGllbnQvcnRzZWUtZXZlbnRzLWRhc2hib2FyZC1jbGllbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNMUMsTUFBTSxPQUFPLG1DQUFtQzt1R0FBbkMsbUNBQW1DOzJGQUFuQyxtQ0FBbUMseUVDTmhELCtDQUNBOzsyRkRLYSxtQ0FBbUM7a0JBSi9DLFNBQVM7K0JBQ0UsbUNBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC1ydHNlZS1ldmVudHMtZGFzaGJvYXJkLWNsaWVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ydHNlZS1ldmVudHMtZGFzaGJvYXJkLWNsaWVudC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFJ0c2VlRXZlbnRzRGFzaGJvYXJkQ2xpZW50Q29tcG9uZW50IHt9XG4iLCI8cD5ydHNlZS1ldmVudHMtZGFzaGJvYXJkLWNsaWVudCB3b3JrcyE8L3A+XG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../../../services/time-format-helper.service";
4
+ import * as i2 from "../../../../services/default-images.service";
5
+ import * as i3 from "@angular/common";
6
+ import * as i4 from "../rtsee-events-dashboard-session/rtsee-events-dashboard-session.component";
7
+ export class RtseeEventsDashboardClientThumbnailComponent {
8
+ timeFormatService;
9
+ defaultImagesService;
10
+ dashboard;
11
+ client;
12
+ constructor(timeFormatService, defaultImagesService) {
13
+ this.timeFormatService = timeFormatService;
14
+ this.defaultImagesService = defaultImagesService;
15
+ }
16
+ ngOnInit() {
17
+ console.log('client id', this.client.id);
18
+ }
19
+ openChat() {
20
+ this.dashboard.openChat(this.client);
21
+ }
22
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeEventsDashboardClientThumbnailComponent, deps: [{ token: i1.TimeFormatHelperService }, { token: i2.DefaultImagesService }], target: i0.ɵɵFactoryTarget.Component });
23
+ 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: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.RtseeEventsDashboardSessionComponent, selector: "rtsee-rtsee-events-dashboard-session", inputs: ["session"] }] });
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeEventsDashboardClientThumbnailComponent, decorators: [{
26
+ type: Component,
27
+ args: [{ selector: 'ngx-rtsee-events-dashboard-client-thumbnail', 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" }]
28
+ }], ctorParameters: function () { return [{ type: i1.TimeFormatHelperService }, { type: i2.DefaultImagesService }]; }, propDecorators: { dashboard: [{
29
+ type: Input
30
+ }], client: [{
31
+ type: Input
32
+ }] } });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnRzZWUtZXZlbnRzLWRhc2hib2FyZC1jbGllbnQtdGh1bWJuYWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC9zcmMvbGliL2NvbXBvbmVudHMvcnRzZWUtZXZlbnRzLWRhc2hib2FyZC9jb21wb25lbnRzL3J0c2VlLWV2ZW50cy1kYXNoYm9hcmQtY2xpZW50LXRodW1ibmFpbC9ydHNlZS1ldmVudHMtZGFzaGJvYXJkLWNsaWVudC10aHVtYm5haWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1ldmVudHMtZGFzaGJvYXJkL2NvbXBvbmVudHMvcnRzZWUtZXZlbnRzLWRhc2hib2FyZC1jbGllbnQtdGh1bWJuYWlsL3J0c2VlLWV2ZW50cy1kYXNoYm9hcmQtY2xpZW50LXRodW1ibmFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBWXpELE1BQU0sT0FBTyw0Q0FBNEM7SUFLOUM7SUFDQTtJQUxBLFNBQVMsQ0FBd0I7SUFDakMsTUFBTSxDQUF3QjtJQUV2QyxZQUNTLGlCQUEwQyxFQUMxQyxvQkFBMEM7UUFEMUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF5QjtRQUMxQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO0lBQ2hELENBQUM7SUFFSixRQUFRO1FBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2QyxDQUFDO3VHQWZVLDRDQUE0QzsyRkFBNUMsNENBQTRDLHlJQ1p6RCxva0NBc0JBOzsyRkRWYSw0Q0FBNEM7a0JBSnhELFNBQVM7K0JBQ0UsNkNBQTZDO2lKQUk5QyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgUlRTZWVEYXNoYm9hcmRDbGllbnQsXG4gIFJUU2VlRXZlbnRzRGFzaGJvYXJkLFxufSBmcm9tICdAcnRzZWUvZXZlbnRzLW1hbmFnZXInO1xuaW1wb3J0IHsgVGltZUZvcm1hdEhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy90aW1lLWZvcm1hdC1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBEZWZhdWx0SW1hZ2VzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2RlZmF1bHQtaW1hZ2VzLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ3gtcnRzZWUtZXZlbnRzLWRhc2hib2FyZC1jbGllbnQtdGh1bWJuYWlsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3J0c2VlLWV2ZW50cy1kYXNoYm9hcmQtY2xpZW50LXRodW1ibmFpbC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFJ0c2VlRXZlbnRzRGFzaGJvYXJkQ2xpZW50VGh1bWJuYWlsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgZGFzaGJvYXJkITogUlRTZWVFdmVudHNEYXNoYm9hcmQ7XG4gIEBJbnB1dCgpIGNsaWVudCE6IFJUU2VlRGFzaGJvYXJkQ2xpZW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0aW1lRm9ybWF0U2VydmljZTogVGltZUZvcm1hdEhlbHBlclNlcnZpY2UsXG4gICAgcHVibGljIGRlZmF1bHRJbWFnZXNTZXJ2aWNlOiBEZWZhdWx0SW1hZ2VzU2VydmljZSxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKCdjbGllbnQgaWQnLCB0aGlzLmNsaWVudC5pZCk7XG4gIH1cblxuICBvcGVuQ2hhdCgpIHtcbiAgICB0aGlzLmRhc2hib2FyZC5vcGVuQ2hhdCh0aGlzLmNsaWVudCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJydHNlZS1kYXNoYm9hcmQtY2xpZW50LXRodW1ibmFpbFwiPlxuICA8ZGl2IGNsYXNzPVwicnRzZWUtZGFzaGJvYXJkLWNsaWVudC1oZWFkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwicnRzZWUtZGFzaGJvYXJkLWNsaWVudC1oZWFkZXItcGhvdG9cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJydHNlZS1kYXNoYm9hcmQtY2xpZW50LWhlYWRlci1pbWFnZVwiXG4gICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cIid1cmwoJyArIGNsaWVudC5pbWFnZVVybCB8fCBkZWZhdWx0SW1hZ2VzU2VydmljZS5QUk9GSUxFICsgJyknXCJcbiAgICAgID48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJydHNlZS1kYXNoYm9hcmQtY2xpZW50LWxpdmUtaW5kaWNhdG9yXCIgKm5nSWY9XCJjbGllbnQuaXNDb25uZWN0ZWRcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8cCBjbGFzcz1cInJ0c2VlLWRhc2hib2FyZC1jbGllbnQtbmFtZVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJydHNlZS1kYXNoYm9hcmQtY2xpZW50LW5hbWUtdGV4dFwiPnt7IGNsaWVudC5uYW1lIHx8IGNsaWVudC5pZCB9fTwvc3Bhbj5cbiAgICAgIDxidXR0b24gKGNsaWNrKT1cIm9wZW5DaGF0KClcIiBjbGFzcz1cInJ0c2VlLWRhc2hib2FyZC1jbGllbnQtZW5nYWdlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicnRzZWUtZGFzaGJvYXJkLWNsaWVudC1lbmdhZ2UtaWNvbiBtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiPmNoYXRfYnViYmxlPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9wPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInJ0c2VlLWRhc2hib2FyZC1zZXNzaW9uc1wiPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IHNlc3Npb24gb2YgY2xpZW50LnNlc3Npb25zXCJcbiAgICAgICAgIGNsYXNzPVwicnRzZWUtZGFzaGJvYXJkLXNlc3Npb25zLWNvbnRhaW5lclwiPlxuICAgICAgPHJ0c2VlLXJ0c2VlLWV2ZW50cy1kYXNoYm9hcmQtc2Vzc2lvbiBbc2Vzc2lvbl09XCJzZXNzaW9uXCI+PC9ydHNlZS1ydHNlZS1ldmVudHMtZGFzaGJvYXJkLXNlc3Npb24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../../../services/time-format-helper.service";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "../event-thumbnail/event-thumbnail.component";
6
+ export class RtseeEventsDashboardSessionComponent {
7
+ timeFormatService;
8
+ session;
9
+ constructor(timeFormatService) {
10
+ this.timeFormatService = timeFormatService;
11
+ }
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeEventsDashboardSessionComponent, deps: [{ token: i1.TimeFormatHelperService }], target: i0.ɵɵFactoryTarget.Component });
13
+ 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: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.EventThumbnailComponent, selector: "rtsee-event-thumbnail", inputs: ["event"] }, { kind: "pipe", type: i2.SlicePipe, name: "slice" }] });
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeEventsDashboardSessionComponent, decorators: [{
16
+ type: Component,
17
+ args: [{ selector: 'rtsee-rtsee-events-dashboard-session', 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" }]
18
+ }], ctorParameters: function () { return [{ type: i1.TimeFormatHelperService }]; }, propDecorators: { session: [{
19
+ type: Input
20
+ }] } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnRzZWUtZXZlbnRzLWRhc2hib2FyZC1zZXNzaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC9zcmMvbGliL2NvbXBvbmVudHMvcnRzZWUtZXZlbnRzLWRhc2hib2FyZC9jb21wb25lbnRzL3J0c2VlLWV2ZW50cy1kYXNoYm9hcmQtc2Vzc2lvbi9ydHNlZS1ldmVudHMtZGFzaGJvYXJkLXNlc3Npb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1ldmVudHMtZGFzaGJvYXJkL2NvbXBvbmVudHMvcnRzZWUtZXZlbnRzLWRhc2hib2FyZC1zZXNzaW9uL3J0c2VlLWV2ZW50cy1kYXNoYm9hcmQtc2Vzc2lvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRakQsTUFBTSxPQUFPLG9DQUFvQztJQUU1QjtJQURWLE9BQU8sQ0FBK0I7SUFDL0MsWUFBbUIsaUJBQTBDO1FBQTFDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBeUI7SUFBRyxDQUFDO3VHQUZ0RCxvQ0FBb0M7MkZBQXBDLG9DQUFvQyw0R0NSakQsd3JEQThCQTs7MkZEdEJhLG9DQUFvQztrQkFKaEQsU0FBUzsrQkFDRSxzQ0FBc0M7OEdBSXZDLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJUU2VlRGFzaGJvYXJkQ2xpZW50U2Vzc2lvbiB9IGZyb20gJ0BydHNlZS9ldmVudHMtbWFuYWdlcic7XG5pbXBvcnQgeyBUaW1lRm9ybWF0SGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3RpbWUtZm9ybWF0LWhlbHBlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnRzZWUtcnRzZWUtZXZlbnRzLWRhc2hib2FyZC1zZXNzaW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3J0c2VlLWV2ZW50cy1kYXNoYm9hcmQtc2Vzc2lvbi5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFJ0c2VlRXZlbnRzRGFzaGJvYXJkU2Vzc2lvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHNlc3Npb24hOiBSVFNlZURhc2hib2FyZENsaWVudFNlc3Npb247XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0aW1lRm9ybWF0U2VydmljZTogVGltZUZvcm1hdEhlbHBlclNlcnZpY2UpIHt9XG59XG4iLCI8ZGl2IGNsYXNzPVwicnRzZWUtZXZlbnRzLWRhc2hib2FyZC1zZXNzaW9uXCI+XG4gIDxkaXYgY2xhc3M9XCJydHNlZS1ldmVudHMtZGFzaGJvYXJkLXNlc3Npb24taGVhZGVyXCIgKm5nSWY9XCJzZXNzaW9uLmluZm9cIj5cbiAgICA8cCBjbGFzcz1cInJ0c2VlLWV2ZW50cy1kYXNoYm9hcmQtc2Vzc2lvbi1jbGllbnQtaW5mb1wiPnt7c2Vzc2lvbi5pbmZvLmNsaWVudFRodW1ibmFpbH19PC9wPlxuICAgIDxwIGNsYXNzPVwicnRzZWUtZXZlbnRzLWRhc2hib2FyZC1zZXNzaW9uLW9zLWluZm9cIj57e3Nlc3Npb24uaW5mby5vc1RodW1ibmFpbH19PC9wPlxuICAgIDxkaXYgY2xhc3M9XCJydHNlZS1ldmVudHMtZGFzaGJvYXJkLXNlc3Npb24tZGV2aWNlLWluZm9cIiBbdGl0bGVdPVwic2Vzc2lvbi5pbmZvLmRldmljZVRodW1ibmFpbFwiPlxuICAgICAgPHNwYW4gKm5nSWY9XCJzZXNzaW9uLmluZm8uZGV2aWNlVHlwZSA9PT0gJ3NtYXJ0cGhvbmUnICYmICFzZXNzaW9uLmluZm8uYm90TmFtZVwiXG4gICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWQgcnRzZWUtZXZlbnRzLWRhc2hib2FyZC1zZXNzaW9uLWRldmljZS1pbmZvLWljb25cIlxuICAgICAgPnBob25lX2lwaG9uZTwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWQgcnRzZWUtZXZlbnRzLWRhc2hib2FyZC1zZXNzaW9uLWRldmljZS1pbmZvLWljb25cIlxuICAgICAgICAgICAgKm5nSWY9XCJzZXNzaW9uLmluZm8uZGV2aWNlVHlwZSA9PT0gJ3RhYmxldCcgJiYgIXNlc3Npb24uaW5mby5ib3ROYW1lXCJcbiAgICAgID50YWJsZXRfbWFjPC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZCBydHNlZS1ldmVudHMtZGFzaGJvYXJkLXNlc3Npb24tZGV2aWNlLWluZm8taWNvblwiXG4gICAgICAgICAgICAqbmdJZj1cInNlc3Npb24uaW5mby5kZXZpY2VUeXBlID09PSAnZGVza3RvcCcgJiYgIXNlc3Npb24uaW5mby5ib3ROYW1lXCJcbiAgICAgID5jb21wdXRlcjwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWQgcnRzZWUtZXZlbnRzLWRhc2hib2FyZC1zZXNzaW9uLWRldmljZS1pbmZvLWljb25cIlxuICAgICAgICAgICAgKm5nSWY9XCJzZXNzaW9uLmluZm8uYm90TmFtZVwiXG4gICAgICA+c21hcnRfdG95PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPHVsICpuZ0lmPVwic2Vzc2lvbi5ldmVudHMgJiYgc2Vzc2lvbi5ldmVudHMubGVuZ3RoXCJcbiAgICAgIGNsYXNzPVwicnRzZWUtZXZlbnRzLWRhc2hib2FyZC1zZXNzaW9uLWV2ZW50cy1saXN0XCJcbiAgPlxuICAgIDxsaSAqbmdGb3I9XCJsZXQgZXZlbnQgb2Ygc2Vzc2lvbi5ldmVudHMgfCBzbGljZTowOjU7XCIgY2xhc3M9XCJydHNlZS1ldmVudHMtZGFzaGJvYXJkLXNlc3Npb24tZXZlbnRcIj5cbiAgICAgIDxydHNlZS1ldmVudC10aHVtYm5haWwgW2V2ZW50XT1cImV2ZW50XCI+PC9ydHNlZS1ldmVudC10aHVtYm5haWw+XG4gICAgPC9saT5cbiAgPC91bD5cbiAgPGRpdiBjbGFzcz1cInJ0c2VlLWV2ZW50cy1kYXNoYm9hcmQtc2Vzc2lvbi1mb290ZXJcIj5cbiAgICA8YnV0dG9uICpuZ0lmPVwic2Vzc2lvbi5ldmVudHMubGVuZ3RoID4gNVwiPnt7c2Vzc2lvbi5ldmVudHMubGVuZ3RoIC0gNX19IG1vcmU8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "./components/rtsee-events-dashboard-client-thumbnail/rtsee-events-dashboard-client-thumbnail.component";
5
+ export class RtseeEventsDashboardComponent {
6
+ eventsDashboard;
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeEventsDashboardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
+ 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: i2.RtseeEventsDashboardClientThumbnailComponent, selector: "ngx-rtsee-events-dashboard-client-thumbnail", inputs: ["dashboard", "client"] }] });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: RtseeEventsDashboardComponent, decorators: [{
11
+ type: Component,
12
+ 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" }]
13
+ }], propDecorators: { eventsDashboard: [{
14
+ type: Input
15
+ }] } });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnRzZWUtZXZlbnRzLWRhc2hib2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3J0c2VlLWV2ZW50cy1kYXNoYm9hcmQvcnRzZWUtZXZlbnRzLWRhc2hib2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3J0c2VlLWV2ZW50cy1kYXNoYm9hcmQvcnRzZWUtZXZlbnRzLWRhc2hib2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQU9qRCxNQUFNLE9BQU8sNkJBQTZCO0lBQy9CLGVBQWUsQ0FBd0I7dUdBRHJDLDZCQUE2QjsyRkFBN0IsNkJBQTZCLGtIQ1AxQyxxYkFXQTs7MkZESmEsNkJBQTZCO2tCQUp6QyxTQUFTOytCQUNFLDRCQUE0Qjs4QkFJN0IsZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJUU2VlRXZlbnRzRGFzaGJvYXJkIH0gZnJvbSAnQHJ0c2VlL2V2ZW50cy1tYW5hZ2VyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LXJ0c2VlLWV2ZW50cy1kYXNoYm9hcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcnRzZWUtZXZlbnRzLWRhc2hib2FyZC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFJ0c2VlRXZlbnRzRGFzaGJvYXJkQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZXZlbnRzRGFzaGJvYXJkITogUlRTZWVFdmVudHNEYXNoYm9hcmQ7XG59XG4iLCI8ZGl2IGNsYXNzPVwicnRzZWUtZXZlbnRzLWRhc2hib2FyZFwiPlxuICA8ZGl2IGNsYXNzPVwicnRzZWUtZXZlbnRzLWRhc2hib2FyZC1jbGllbnQtdGh1bWJuYWlsc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJydHNlZS1ldmVudHMtZGFzaGJvYXJkLWNsaWVudC10aHVtYm5haWwtd3JhcHBlclwiXG4gICAgICAgICAqbmdGb3I9XCJsZXQgY2xpZW50IG9mIGV2ZW50c0Rhc2hib2FyZC5jbGllbnRzXCI+XG4gICAgICA8bmd4LXJ0c2VlLWV2ZW50cy1kYXNoYm9hcmQtY2xpZW50LXRodW1ibmFpbFxuICAgICAgICBbY2xpZW50XT1cImNsaWVudFwiXG4gICAgICAgIFtkYXNoYm9hcmRdPVwiZXZlbnRzRGFzaGJvYXJkXCJcbiAgICAgID48L25neC1ydHNlZS1ldmVudHMtZGFzaGJvYXJkLWNsaWVudC10aHVtYm5haWw+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../messages-list/messages-list.component";
4
+ import * as i2 from "../chat-input/chat-input.component";
5
+ export class ChatComponent {
6
+ chat;
7
+ messenger;
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ChatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
+ 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: i1.MessagesListComponent, selector: "rtsee-messages-list", inputs: ["chat", "messenger"] }, { kind: "component", type: i2.ChatInputComponent, selector: "rtsee-chat-input", inputs: ["messenger", "chat"] }] });
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ChatComponent, decorators: [{
12
+ type: Component,
13
+ 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" }]
14
+ }], propDecorators: { chat: [{
15
+ type: Input
16
+ }], messenger: [{
17
+ type: Input
18
+ }] } });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3J0c2VlLW1lc3Nlbmdlci9jaGF0L2NoYXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvY2hhdC9jaGF0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBT2pELE1BQU0sT0FBTyxhQUFhO0lBQ2YsSUFBSSxDQUFhO0lBQ2pCLFNBQVMsQ0FBa0I7dUdBRnpCLGFBQWE7MkZBQWIsYUFBYSxvR0NQMUIsc1VBUUE7OzJGRERhLGFBQWE7a0JBSnpCLFNBQVM7K0JBQ0UsWUFBWTs4QkFJYixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJUU2VlQ2hhdCwgUlRTZWVNZXNzZW5nZXIgfSBmcm9tICdAcnRzZWUvbWVzc2VuZ2VyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnRzZWUtY2hhdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGF0LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhdENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGNoYXQhOiBSVFNlZUNoYXQ7XG4gIEBJbnB1dCgpIG1lc3NlbmdlciE6IFJUU2VlTWVzc2VuZ2VyO1xufVxuIiwiPGRpdiBjbGFzcz1cInJ0c2VlLWNoYXRcIj5cbiAgPGRpdiBjbGFzcz1cInJ0c2VlLWNoYXQtYm9keS1jb250YWluZXJcIj5cbiAgICA8cnRzZWUtbWVzc2FnZXMtbGlzdCBbbWVzc2VuZ2VyXT1cIm1lc3NlbmdlclwiIFtjaGF0XT1cImNoYXRcIj48L3J0c2VlLW1lc3NhZ2VzLWxpc3Q+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicnRzZWUtY2hhdC1mb290ZXItY29udGFpbmVyXCI+XG4gICAgPHJ0c2VlLWNoYXQtaW5wdXQgW21lc3Nlbmdlcl09XCJtZXNzZW5nZXJcIiBbY2hhdF09XCJjaGF0XCI+PC9ydHNlZS1jaGF0LWlucHV0PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,33 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { FormControl, FormGroup, Validators } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/forms";
5
+ import * as i2 from "ngx-autosize";
6
+ export class ChatInputComponent {
7
+ sendMessageForm = new FormGroup({
8
+ /* eslint-disable */
9
+ message: new FormControl('', Validators.required),
10
+ /* eslint-enable */
11
+ });
12
+ messenger;
13
+ chat;
14
+ sendMessage() {
15
+ const text = this.sendMessageForm.get('message')?.value;
16
+ if (!text) {
17
+ return;
18
+ }
19
+ this.chat.sendMessage(text);
20
+ this.sendMessageForm.get('message')?.setValue('');
21
+ }
22
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ChatInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
+ 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\">\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.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.AutosizeDirective, selector: "[autosize]", inputs: ["minRows", "autosize", "maxRows", "onlyGrow", "useImportant"], outputs: ["resized"] }] });
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ChatInputComponent, decorators: [{
26
+ type: Component,
27
+ args: [{ selector: 'rtsee-chat-input', template: "<div class=\"rtsee-chat-input\" xmlns=\"http://www.w3.org/1999/html\">\n <div class=\"rtsee-send-message\">\n <form [formGroup]=\"sendMessageForm\">\n <textarea\n placeholder=\"Type message...\"\n type=\"text\"\n formControlName=\"message\"\n class=\"rtsee-chat-input-field\"\n autosize\n required\n (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" }]
28
+ }], propDecorators: { messenger: [{
29
+ type: Input
30
+ }], chat: [{
31
+ type: Input
32
+ }] } });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3J0c2VlLW1lc3Nlbmdlci9jaGF0LWlucHV0L2NoYXQtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvY2hhdC1pbnB1dC9jaGF0LWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBT3BFLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsZUFBZSxHQUFjLElBQUksU0FBUyxDQUFDO1FBQ3pDLG9CQUFvQjtRQUNwQixPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFDakQsbUJBQW1CO0tBQ3BCLENBQUMsQ0FBQztJQUVNLFNBQVMsQ0FBa0I7SUFDM0IsSUFBSSxDQUFhO0lBRTFCLFdBQVc7UUFDVCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFlLENBQUM7UUFDbEUsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDO3VHQWpCVSxrQkFBa0I7MkZBQWxCLGtCQUFrQiwwR0NSL0Isa25CQW9CQTs7MkZEWmEsa0JBQWtCO2tCQUo5QixTQUFTOytCQUNFLGtCQUFrQjs4QkFVbkIsU0FBUztzQkFBakIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUlRTZWVDaGF0LCBSVFNlZU1lc3NlbmdlciB9IGZyb20gJ0BydHNlZS9tZXNzZW5nZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdydHNlZS1jaGF0LWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXQtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBDaGF0SW5wdXRDb21wb25lbnQge1xuICBzZW5kTWVzc2FnZUZvcm06IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgbWVzc2FnZTogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAvKiBlc2xpbnQtZW5hYmxlICovXG4gIH0pO1xuXG4gIEBJbnB1dCgpIG1lc3NlbmdlciE6IFJUU2VlTWVzc2VuZ2VyO1xuICBASW5wdXQoKSBjaGF0ITogUlRTZWVDaGF0O1xuXG4gIHNlbmRNZXNzYWdlKCkge1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLnNlbmRNZXNzYWdlRm9ybS5nZXQoJ21lc3NhZ2UnKT8udmFsdWUgYXMgc3RyaW5nO1xuICAgIGlmICghdGV4dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNoYXQuc2VuZE1lc3NhZ2UodGV4dCk7XG4gICAgdGhpcy5zZW5kTWVzc2FnZUZvcm0uZ2V0KCdtZXNzYWdlJyk/LnNldFZhbHVlKCcnKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInJ0c2VlLWNoYXQtaW5wdXRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkvaHRtbFwiPlxuICA8ZGl2IGNsYXNzPVwicnRzZWUtc2VuZC1tZXNzYWdlXCI+XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJzZW5kTWVzc2FnZUZvcm1cIj5cbiAgICAgIDx0ZXh0YXJlYVxuICAgICAgICBwbGFjZWhvbGRlcj1cIlR5cGUgbWVzc2FnZS4uLlwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWVzc2FnZVwiXG4gICAgICAgIGNsYXNzPVwicnRzZWUtY2hhdC1pbnB1dC1maWVsZFwiXG4gICAgICAgIGF1dG9zaXplXG4gICAgICAgIHJlcXVpcmVkXG4gICAgICAgIChrZXl1cC5lbnRlcik9XCJzZW5kTWVzc2FnZSgpXCJcbiAgICAgID48L3RleHRhcmVhPlxuICAgIDwvZm9ybT5cbiAgPC9kaXY+XG4gIDxidXR0b24gKGNsaWNrKT1cInNlbmRNZXNzYWdlKClcIlxuICAgICAgICAgIGNsYXNzPVwicnRzZWUtc2VuZC1tZXNzYWdlLWJ1dHRvblwiXG4gICAgICAgICAgdHlwZT1cInN1Ym1pdFwiPlxuICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj5zZW5kPC9zcGFuPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,27 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { RTSeeChatTypes } from '@rtsee/common';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../../services/time-format-helper.service";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "../message/components/message-time-and-status/message-time-and-status.component";
7
+ import * as i4 from "../../../directives/shave.directive";
8
+ export class ChatThumbnailComponent {
9
+ timeFormatService;
10
+ chat;
11
+ messenger;
12
+ RTSeeChatTypes = RTSeeChatTypes;
13
+ constructor(timeFormatService) {
14
+ this.timeFormatService = timeFormatService;
15
+ }
16
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ChatThumbnailComponent, deps: [{ token: i1.TimeFormatHelperService }], target: i0.ɵɵFactoryTarget.Component });
17
+ 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\"></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: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MessageTimeAndStatusComponent, selector: "rtsee-message-time-and-status", inputs: ["message", "hideStatus"] }, { kind: "directive", type: i4.ShaveDirective, selector: "[rtseeShave]" }] });
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ChatThumbnailComponent, decorators: [{
20
+ type: Component,
21
+ args: [{ selector: 'rtsee-chat-thumbnail', template: "<div class=\"rtsee-chat-thumbnail\" (click)=\"messenger.openChatById(chat.chatId)\">\n <div class=\"rtsee-chat-thumbnail-image\">\n <img [src]=\"chat.chatImageUrl\" alt=\"chat-img\">\n </div>\n <div class=\"rtsee-chat-thumbnail-left\">\n <div class=\"rtsee-chat-thumbnail-name\">\n <span>{{ chat.chatName }}</span>\n <div class=\"rtsee-chat-thumbnail-status\">\n <rtsee-message-time-and-status [message]=\"chat\"></rtsee-message-time-and-status>\n </div>\n </div>\n <div class=\"rtsee-chat-thumbnail-last-message\"\n [ngClass]=\"{'rtsee-has-unread': chat.unreadMessagesCount}\"\n rtseeShave>\n <span class=\"rtsee-chat-thumbnail-last-message-sender\"\n *ngIf=\"chat.chatType !== RTSeeChatTypes.INDIVIDUAL && chat.senderName\"\n >{{chat.senderName}}</span>\n <span class=\"rtsee-chat-thumbnail-last-message-text\"\n *ngIf=\"chat.text\"\n >{{chat.text}}</span>\n <div class=\"rtsee-messenger-thumbnail-unread\" *ngIf=\"chat.unreadMessagesCount\">\n <span class=\"rtsee-messenger-thumbnail-unread-count\">{{chat.unreadMessagesCount}}</span>\n </div>\n </div>\n </div>\n</div>\n" }]
22
+ }], ctorParameters: function () { return [{ type: i1.TimeFormatHelperService }]; }, propDecorators: { chat: [{
23
+ type: Input
24
+ }], messenger: [{
25
+ type: Input
26
+ }] } });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC10aHVtYm5haWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvY2hhdC10aHVtYm5haWwvY2hhdC10aHVtYm5haWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvY2hhdC10aHVtYm5haWwvY2hhdC10aHVtYm5haWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFFLGNBQWMsRUFBcUIsTUFBTSxlQUFlLENBQUM7Ozs7OztBQU9sRSxNQUFNLE9BQU8sc0JBQXNCO0lBTWQ7SUFMVixJQUFJLENBQXFCO0lBQ3pCLFNBQVMsQ0FBa0I7SUFFM0IsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUV6QyxZQUFtQixpQkFBMEM7UUFBMUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF5QjtJQUFHLENBQUM7dUdBTnRELHNCQUFzQjsyRkFBdEIsc0JBQXNCLDhHQ1RuQyx3cUNBMEJBOzsyRkRqQmEsc0JBQXNCO2tCQUpsQyxTQUFTOytCQUNFLHNCQUFzQjs4R0FJdkIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSVFNlZU1lc3NlbmdlciB9IGZyb20gJ0BydHNlZS9tZXNzZW5nZXInO1xuaW1wb3J0IHsgUlRTZWVDaGF0VHlwZXMsIElNZXNzYWdlVGh1bWJuYWlsIH0gZnJvbSAnQHJ0c2VlL2NvbW1vbic7XG5pbXBvcnQgeyBUaW1lRm9ybWF0SGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RpbWUtZm9ybWF0LWhlbHBlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnRzZWUtY2hhdC10aHVtYm5haWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhdC10aHVtYm5haWwuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBDaGF0VGh1bWJuYWlsQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY2hhdCE6IElNZXNzYWdlVGh1bWJuYWlsO1xuICBASW5wdXQoKSBtZXNzZW5nZXIhOiBSVFNlZU1lc3NlbmdlcjtcblxuICByZWFkb25seSBSVFNlZUNoYXRUeXBlcyA9IFJUU2VlQ2hhdFR5cGVzO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0aW1lRm9ybWF0U2VydmljZTogVGltZUZvcm1hdEhlbHBlclNlcnZpY2UpIHt9XG59XG4iLCI8ZGl2IGNsYXNzPVwicnRzZWUtY2hhdC10aHVtYm5haWxcIiAoY2xpY2spPVwibWVzc2VuZ2VyLm9wZW5DaGF0QnlJZChjaGF0LmNoYXRJZClcIj5cbiAgPGRpdiBjbGFzcz1cInJ0c2VlLWNoYXQtdGh1bWJuYWlsLWltYWdlXCI+XG4gICAgPGltZyBbc3JjXT1cImNoYXQuY2hhdEltYWdlVXJsXCIgYWx0PVwiY2hhdC1pbWdcIj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJydHNlZS1jaGF0LXRodW1ibmFpbC1sZWZ0XCI+XG4gICAgPGRpdiBjbGFzcz1cInJ0c2VlLWNoYXQtdGh1bWJuYWlsLW5hbWVcIj5cbiAgICAgIDxzcGFuPnt7IGNoYXQuY2hhdE5hbWUgfX08L3NwYW4+XG4gICAgICA8ZGl2IGNsYXNzPVwicnRzZWUtY2hhdC10aHVtYm5haWwtc3RhdHVzXCI+XG4gICAgICAgIDxydHNlZS1tZXNzYWdlLXRpbWUtYW5kLXN0YXR1cyBbbWVzc2FnZV09XCJjaGF0XCI+PC9ydHNlZS1tZXNzYWdlLXRpbWUtYW5kLXN0YXR1cz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJydHNlZS1jaGF0LXRodW1ibmFpbC1sYXN0LW1lc3NhZ2VcIlxuICAgICAgICAgW25nQ2xhc3NdPVwieydydHNlZS1oYXMtdW5yZWFkJzogY2hhdC51bnJlYWRNZXNzYWdlc0NvdW50fVwiXG4gICAgICAgICBydHNlZVNoYXZlPlxuICAgICAgPHNwYW4gY2xhc3M9XCJydHNlZS1jaGF0LXRodW1ibmFpbC1sYXN0LW1lc3NhZ2Utc2VuZGVyXCJcbiAgICAgICAgICAgICpuZ0lmPVwiY2hhdC5jaGF0VHlwZSAhPT0gUlRTZWVDaGF0VHlwZXMuSU5ESVZJRFVBTCAmJiBjaGF0LnNlbmRlck5hbWVcIlxuICAgICAgPnt7Y2hhdC5zZW5kZXJOYW1lfX08L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cInJ0c2VlLWNoYXQtdGh1bWJuYWlsLWxhc3QtbWVzc2FnZS10ZXh0XCJcbiAgICAgICAgICAgICpuZ0lmPVwiY2hhdC50ZXh0XCJcbiAgICAgID57e2NoYXQudGV4dH19PC9zcGFuPlxuICAgICAgPGRpdiBjbGFzcz1cInJ0c2VlLW1lc3Nlbmdlci10aHVtYm5haWwtdW5yZWFkXCIgKm5nSWY9XCJjaGF0LnVucmVhZE1lc3NhZ2VzQ291bnRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJydHNlZS1tZXNzZW5nZXItdGh1bWJuYWlsLXVucmVhZC1jb3VudFwiPnt7Y2hhdC51bnJlYWRNZXNzYWdlc0NvdW50fX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "../chat-thumbnail/chat-thumbnail.component";
5
+ export class ChatsListComponent {
6
+ messenger;
7
+ chats;
8
+ ngOnInit() {
9
+ // console.log(this.chats);
10
+ }
11
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ChatsListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
+ 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: i2.ChatThumbnailComponent, selector: "rtsee-chat-thumbnail", inputs: ["chat", "messenger"] }] });
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ChatsListComponent, decorators: [{
15
+ type: Component,
16
+ args: [{ selector: 'rtsee-chats-list', 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" }]
17
+ }], propDecorators: { messenger: [{
18
+ type: Input
19
+ }], chats: [{
20
+ type: Input
21
+ }] } });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdHMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3J0c2VlLW1lc3Nlbmdlci9jaGF0cy1saXN0L2NoYXRzLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvY2hhdHMtbGlzdC9jaGF0cy1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7O0FBT3pELE1BQU0sT0FBTyxrQkFBa0I7SUFDcEIsU0FBUyxDQUFrQjtJQUMzQixLQUFLLENBQWU7SUFFN0IsUUFBUTtRQUNOLDJCQUEyQjtJQUM3QixDQUFDO3VHQU5VLGtCQUFrQjsyRkFBbEIsa0JBQWtCLDRHQ1AvQiwrVUFNQTs7MkZEQ2Esa0JBQWtCO2tCQUo5QixTQUFTOytCQUNFLGtCQUFrQjs4QkFJbkIsU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJUU2VlQ2hhdCwgUlRTZWVNZXNzZW5nZXIgfSBmcm9tICdAcnRzZWUvbWVzc2VuZ2VyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnRzZWUtY2hhdHMtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGF0cy1saXN0LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhdHNMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbWVzc2VuZ2VyITogUlRTZWVNZXNzZW5nZXI7XG4gIEBJbnB1dCgpIGNoYXRzITogUlRTZWVDaGF0W107XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gY29uc29sZS5sb2codGhpcy5jaGF0cyk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJydHNlZS1jaGF0cy1saXN0XCI+XG4gIDxkaXYgY2xhc3M9XCJydHNlZS1jaGF0LXRodW1ibmFpbC1jb250YWluZXJcIiAqbmdGb3I9XCJsZXQgY2hhdCBvZiBjaGF0czsgbGV0IGxhc3QgPSBsYXN0O1wiPlxuICAgIDxydHNlZS1jaGF0LXRodW1ibmFpbCBbY2hhdF09XCJjaGF0LnRodW1ibmFpbFwiIFttZXNzZW5nZXJdPVwibWVzc2VuZ2VyXCI+PC9ydHNlZS1jaGF0LXRodW1ibmFpbD5cbjwhLS0gICAgPGRpdiBjbGFzcz1cInJ0c2VlLWNoYXQtdGh1bWJuYWlsLXNlcGFyYXRvclwiICpuZ0lmPVwiIWxhc3RcIj48L2Rpdj4tLT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,18 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../search/search.component";
4
+ export class ContactsMultiselectComponent {
5
+ menuState;
6
+ search;
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ContactsMultiselectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
+ 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: i1.SearchComponent, selector: "rtsee-search", inputs: ["search"] }] });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ContactsMultiselectComponent, decorators: [{
11
+ type: Component,
12
+ args: [{ selector: 'rtsee-contacts-multiselect', template: "<div class=\"rtsee-messenger-contacts-multiselect\">\n <rtsee-search [search]=\"search\"></rtsee-search>\n</div>\n" }]
13
+ }], propDecorators: { menuState: [{
14
+ type: Input
15
+ }], search: [{
16
+ type: Input
17
+ }] } });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdHMtbXVsdGlzZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvbWFpbi1tZW51L2NvbXBvbmVudHMvY29udGFjdHMtbXVsdGlzZWxlY3QvY29udGFjdHMtbXVsdGlzZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvbWFpbi1tZW51L2NvbXBvbmVudHMvY29udGFjdHMtbXVsdGlzZWxlY3QvY29udGFjdHMtbXVsdGlzZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVNqRCxNQUFNLE9BQU8sNEJBQTRCO0lBQzlCLFNBQVMsQ0FBa0I7SUFDM0IsTUFBTSxDQUF3Qjt1R0FGNUIsNEJBQTRCOzJGQUE1Qiw0QkFBNEIsd0hDVHpDLHFIQUdBOzsyRkRNYSw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0UsNEJBQTRCOzhCQUs3QixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElNYWluTWVudVN0YXRlIH0gZnJvbSAnLi4vbW9kZWxzL01haW5NZW51U3RhdGUnO1xuaW1wb3J0IHsgUlRTZWVNZXNzZW5nZXJTZWFyY2ggfSBmcm9tICdAcnRzZWUvbWVzc2VuZ2VyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnRzZWUtY29udGFjdHMtbXVsdGlzZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29udGFjdHMtbXVsdGlzZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb250YWN0cy1tdWx0aXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb250YWN0c011bHRpc2VsZWN0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgbWVudVN0YXRlITogSU1haW5NZW51U3RhdGU7XG4gIEBJbnB1dCgpIHNlYXJjaCE6IFJUU2VlTWVzc2VuZ2VyU2VhcmNoO1xufVxuIiwiPGRpdiBjbGFzcz1cInJ0c2VlLW1lc3Nlbmdlci1jb250YWN0cy1tdWx0aXNlbGVjdFwiPlxuICA8cnRzZWUtc2VhcmNoIFtzZWFyY2hdPVwic2VhcmNoXCI+PC9ydHNlZS1zZWFyY2g+XG48L2Rpdj5cbiJdfQ==