@rtsee/ngx 0.0.76 → 0.0.77
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.
- package/dist/ngx/fesm2022/rtsee-ngx.mjs +203 -28
- package/dist/ngx/fesm2022/rtsee-ngx.mjs.map +1 -1
- package/dist/ngx/index.d.ts +31 -5
- package/dist/ngx/src/lib/theme/containers/shell.scss +69 -10
- package/dist/ngx/src/lib/theme/messenger/chat.scss +19 -1
- package/dist/ngx/src/lib/theme/messenger/message.scss +12 -19
- package/dist/ngx/src/lib/theme/messenger/messages-list.scss +113 -5
- package/dist/ngx/src/lib/theme/messenger/messenger.scss +7 -2
- package/dist/ngx/src/lib/theme/presentation/join-call.scss +0 -1
- package/dist/ngx/src/lib/theme/presentation/presentation.scss +8 -0
- package/dist/ngx/src/lib/theme/presentation/settings.scss +0 -1
- package/dist/ngx/src/lib/theme/presentation/slide.scss +11 -0
- package/dist/ngx/src/lib/theme/presentation/story-details.scss +50 -2
- package/package.json +8 -8
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, Input, Component, ViewChild, Directive, EventEmitter, Output, CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
|
|
2
|
+
import { Injectable, Input, Component, ViewChild, Directive, DOCUMENT, HostListener, Inject, EventEmitter, Output, CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
|
|
3
3
|
import * as i2$1 from '@angular/common';
|
|
4
4
|
import { NgClass, NgIf, NgForOf, SlicePipe, NgStyle, NgOptimizedImage, CommonModule } from '@angular/common';
|
|
5
5
|
import * as i1 from '@angular/forms';
|
|
@@ -8,12 +8,12 @@ import { Select } from 'primeng/select';
|
|
|
8
8
|
import { FloatLabel } from 'primeng/floatlabel';
|
|
9
9
|
import * as i4 from 'primeng/button';
|
|
10
10
|
import { Button, ButtonModule } from 'primeng/button';
|
|
11
|
-
import { interval, tap } from 'rxjs';
|
|
11
|
+
import { interval, tap, filter } from 'rxjs';
|
|
12
12
|
import * as i2$2 from 'primeng/message';
|
|
13
13
|
import { Message, MessageModule } from 'primeng/message';
|
|
14
14
|
import { AuthEndpointsKeys, DEFAULT_ROUTE_NAMES } from '@rtsee/auth';
|
|
15
15
|
import * as i2 from '@angular/router';
|
|
16
|
-
import { RouterLink, RouterLinkActive } from '@angular/router';
|
|
16
|
+
import { RouterLink, RouterLinkActive, NavigationEnd } from '@angular/router';
|
|
17
17
|
import * as i1$1 from '@angular/common/http';
|
|
18
18
|
import { InfiniteScrollDirective, InfiniteScrollModule } from 'ngx-infinite-scroll';
|
|
19
19
|
import { RTSeeChatTypes } from '@rtsee/common';
|
|
@@ -498,7 +498,8 @@ const COMMON_CONSTANTS = {
|
|
|
498
498
|
customDateFormat: 'dd/MM/YYYY',
|
|
499
499
|
customDateFormatDaysJs: 'DD/MM/YYYY',
|
|
500
500
|
customDateTimeFormat: 'dd/MM/YYYY HH:mm',
|
|
501
|
-
defaultProfileImgUrl: 'https://werf.co/assets/images/default-profile.png'
|
|
501
|
+
defaultProfileImgUrl: 'https://werf.co/assets/images/default-profile.png',
|
|
502
|
+
mobileBreakpoint: 800
|
|
502
503
|
};
|
|
503
504
|
|
|
504
505
|
class ChatThumbnailComponent {
|
|
@@ -638,7 +639,7 @@ class MessageComponent {
|
|
|
638
639
|
/* eslint-enable */
|
|
639
640
|
}
|
|
640
641
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: MessageComponent, deps: [{ token: MessageWidgetsService }, { token: i0.ComponentFactoryResolver }, { token: TimeFormatHelperService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
641
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: MessageComponent, isStandalone: true, selector: "rtsee-message", inputs: { chat: "chat", message: "message", member: "member", messenger: "messenger" }, viewQueries: [{ propertyName: "widgetHost", first: true, predicate: WidgetDirective, descendants: true }], ngImport: i0, template: "<div class=\"rtsee-messenger-message-container\" #rtsMessageContainer\n [ngClass]=\"{'rtsee-message-from-me': message.from.id === messenger.clientId}\"\n>\n <div class=\"rtsee-messenger-message\">\n @if (message.widget) {\n <ng-template widgetHost></ng-template>\n }\n @if (!message.widget) {\n <p class=\"rtsee-messenger-message-text\"\n >{{ message.text }}</p>\n }\n <div class=\"rtsee-messenger-message-info\" #rtsMessageInfo>\n <rtsee-message-time-and-status [message]=\"message\"\n [inChat]=\"true\"\n [hideStatus]=\"message.from.id !== messenger.clientId\"\n ></rtsee-message-time-and-status>\n </div>\n </div>\n
|
|
642
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: MessageComponent, isStandalone: true, selector: "rtsee-message", inputs: { chat: "chat", message: "message", member: "member", messenger: "messenger" }, viewQueries: [{ propertyName: "widgetHost", first: true, predicate: WidgetDirective, descendants: true }], ngImport: i0, template: "<div class=\"rtsee-messenger-message-container\" #rtsMessageContainer\n [ngClass]=\"{'rtsee-message-from-me': message.from.id === messenger.clientId}\"\n>\n <div class=\"rtsee-messenger-message\">\n @if (message.widget) {\n <ng-template widgetHost></ng-template>\n }\n @if (!message.widget) {\n <p class=\"rtsee-messenger-message-text\"\n >{{ message.text }}</p>\n }\n <div class=\"rtsee-messenger-message-info\" #rtsMessageInfo>\n <rtsee-message-time-and-status [message]=\"message\"\n [inChat]=\"true\"\n [hideStatus]=\"message.from.id !== messenger.clientId\"\n ></rtsee-message-time-and-status>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MessageTimeAndStatusComponent, selector: "rtsee-message-time-and-status", inputs: ["message", "hideStatus", "inChat"] }, { kind: "directive", type: WidgetDirective, selector: "[widgetHost]" }] }); }
|
|
642
643
|
}
|
|
643
644
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: MessageComponent, decorators: [{
|
|
644
645
|
type: Component,
|
|
@@ -646,7 +647,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
646
647
|
NgClass,
|
|
647
648
|
MessageTimeAndStatusComponent,
|
|
648
649
|
WidgetDirective
|
|
649
|
-
], standalone: true, template: "<div class=\"rtsee-messenger-message-container\" #rtsMessageContainer\n [ngClass]=\"{'rtsee-message-from-me': message.from.id === messenger.clientId}\"\n>\n <div class=\"rtsee-messenger-message\">\n @if (message.widget) {\n <ng-template widgetHost></ng-template>\n }\n @if (!message.widget) {\n <p class=\"rtsee-messenger-message-text\"\n >{{ message.text }}</p>\n }\n <div class=\"rtsee-messenger-message-info\" #rtsMessageInfo>\n <rtsee-message-time-and-status [message]=\"message\"\n [inChat]=\"true\"\n [hideStatus]=\"message.from.id !== messenger.clientId\"\n ></rtsee-message-time-and-status>\n </div>\n </div>\n
|
|
650
|
+
], standalone: true, template: "<div class=\"rtsee-messenger-message-container\" #rtsMessageContainer\n [ngClass]=\"{'rtsee-message-from-me': message.from.id === messenger.clientId}\"\n>\n <div class=\"rtsee-messenger-message\">\n @if (message.widget) {\n <ng-template widgetHost></ng-template>\n }\n @if (!message.widget) {\n <p class=\"rtsee-messenger-message-text\"\n >{{ message.text }}</p>\n }\n <div class=\"rtsee-messenger-message-info\" #rtsMessageInfo>\n <rtsee-message-time-and-status [message]=\"message\"\n [inChat]=\"true\"\n [hideStatus]=\"message.from.id !== messenger.clientId\"\n ></rtsee-message-time-and-status>\n </div>\n </div>\n</div>\n" }]
|
|
650
651
|
}], ctorParameters: () => [{ type: MessageWidgetsService }, { type: i0.ComponentFactoryResolver }, { type: TimeFormatHelperService }], propDecorators: { chat: [{
|
|
651
652
|
type: Input
|
|
652
653
|
}], message: [{
|
|
@@ -661,13 +662,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
661
662
|
}] } });
|
|
662
663
|
|
|
663
664
|
class MessagesListComponent {
|
|
664
|
-
constructor(timeFormatService, scroller) {
|
|
665
|
+
constructor(timeFormatService, scroller, document) {
|
|
665
666
|
this.timeFormatService = timeFormatService;
|
|
666
667
|
this.scroller = scroller;
|
|
668
|
+
this.document = document;
|
|
669
|
+
this.messagesGroups = [];
|
|
670
|
+
this.firstGroupedMessage = null;
|
|
671
|
+
this.lastGroupedMessage = null;
|
|
672
|
+
this.RTSeeChatTypes = RTSeeChatTypes;
|
|
667
673
|
this.bindScrollFunction = this.scrollToBottom.bind(this);
|
|
674
|
+
this.bindedGroupFunction = this.groupMessages.bind(this);
|
|
675
|
+
}
|
|
676
|
+
onWindowScroll(event) {
|
|
677
|
+
// Get the vertical scroll position
|
|
678
|
+
const verticalOffset = window.pageYOffset || this.document.documentElement.scrollTop || this.document.body.scrollTop || 0;
|
|
679
|
+
if (window.innerWidth >= COMMON_CONSTANTS.mobileBreakpoint) {
|
|
680
|
+
return;
|
|
681
|
+
}
|
|
682
|
+
// You can add logic here, e.g., show a 'scroll to top' button
|
|
683
|
+
if (verticalOffset < 300) {
|
|
684
|
+
// Logic to show button
|
|
685
|
+
console.log('scrolled to top');
|
|
686
|
+
this.onScrolledToTop();
|
|
687
|
+
}
|
|
688
|
+
else {
|
|
689
|
+
console.log('scrolled to bottom');
|
|
690
|
+
// Logic to hide button
|
|
691
|
+
}
|
|
668
692
|
}
|
|
669
693
|
ngOnInit() {
|
|
694
|
+
this.chat.on(RTSeeChatEvents.MESSAGES_LIST_CHANGED, this.bindedGroupFunction);
|
|
670
695
|
this.chat.on(RTSeeChatEvents.MESSAGE_ADDED, this.bindScrollFunction);
|
|
696
|
+
this.groupMessages();
|
|
671
697
|
}
|
|
672
698
|
ngAfterViewInit() {
|
|
673
699
|
if (this.chat.isStandalone) {
|
|
@@ -680,6 +706,7 @@ class MessagesListComponent {
|
|
|
680
706
|
}
|
|
681
707
|
ngOnDestroy() {
|
|
682
708
|
this.chat.off(RTSeeChatEvents.MESSAGE_ADDED, this.bindScrollFunction);
|
|
709
|
+
this.chat.off(RTSeeChatEvents.MESSAGES_LIST_CHANGED, this.bindedGroupFunction);
|
|
683
710
|
}
|
|
684
711
|
onScrolledToTop() {
|
|
685
712
|
console.log('scrolledToTop');
|
|
@@ -703,7 +730,9 @@ class MessagesListComponent {
|
|
|
703
730
|
return;
|
|
704
731
|
}
|
|
705
732
|
setTimeout(() => {
|
|
706
|
-
|
|
733
|
+
if (window.innerWidth < COMMON_CONSTANTS.mobileBreakpoint) {
|
|
734
|
+
this.scroller.scrollToPosition([0, document.body.scrollHeight]);
|
|
735
|
+
}
|
|
707
736
|
if (!this.scrollContainer?.nativeElement?.scrollHeight) {
|
|
708
737
|
console.log('scrollToBottom early return');
|
|
709
738
|
return;
|
|
@@ -720,23 +749,147 @@ class MessagesListComponent {
|
|
|
720
749
|
formatDate(message) {
|
|
721
750
|
return this.timeFormatService.formatDate(message.createdAt);
|
|
722
751
|
}
|
|
723
|
-
|
|
724
|
-
|
|
752
|
+
groupMessages() {
|
|
753
|
+
if (!this.chat || !this.chat.messages.length) {
|
|
754
|
+
this.messagesGroups.length = 0;
|
|
755
|
+
}
|
|
756
|
+
if (!this.firstGroupedMessage || !this.lastGroupedMessage) {
|
|
757
|
+
this.performGrouping();
|
|
758
|
+
}
|
|
759
|
+
else {
|
|
760
|
+
if (this.areForwardMessagesAdded()) {
|
|
761
|
+
this.performGrouping(this.chat.messages.indexOf(this.lastGroupedMessage) + 1);
|
|
762
|
+
}
|
|
763
|
+
if (this.areBackwardMessagesAdded()) {
|
|
764
|
+
console.log('backward added', this.chat.messages);
|
|
765
|
+
this.performGrouping(0, this.chat.messages.indexOf(this.firstGroupedMessage) - 1, true);
|
|
766
|
+
}
|
|
767
|
+
}
|
|
768
|
+
this.saveFirstAndLastGroupedMessages();
|
|
769
|
+
}
|
|
770
|
+
performGrouping(startIndex, endIndex, prepend) {
|
|
771
|
+
const processedGroups = [];
|
|
772
|
+
let lastSenderId = null;
|
|
773
|
+
let currentGroup = null;
|
|
774
|
+
const startFrom = startIndex || 0;
|
|
775
|
+
for (let i = startFrom; i < (endIndex || this.chat.messages.length); i++) {
|
|
776
|
+
const message = this.chat.messages[i];
|
|
777
|
+
if (message.from.id === lastSenderId && currentGroup) {
|
|
778
|
+
currentGroup.messages.push(message);
|
|
779
|
+
}
|
|
780
|
+
else {
|
|
781
|
+
lastSenderId = message.from.id;
|
|
782
|
+
if (currentGroup) {
|
|
783
|
+
processedGroups.push(currentGroup);
|
|
784
|
+
}
|
|
785
|
+
if (!message.id && !message.temporaryId) {
|
|
786
|
+
throw new Error('Either m.id or m.temporary id is required');
|
|
787
|
+
}
|
|
788
|
+
const isFromMe = message.from.id === this.messenger.clientId;
|
|
789
|
+
const isSenderVisible = (this.chat.type !== RTSeeChatTypes.INDIVIDUAL && !isFromMe)
|
|
790
|
+
|| this.chat.type === RTSeeChatTypes.COMMENTS
|
|
791
|
+
|| this.chat.type === RTSeeChatTypes.RATINGS;
|
|
792
|
+
currentGroup = {
|
|
793
|
+
id: message.id || message.temporaryId,
|
|
794
|
+
sender: message.from,
|
|
795
|
+
senderVisible: isSenderVisible,
|
|
796
|
+
messages: [message]
|
|
797
|
+
};
|
|
798
|
+
}
|
|
799
|
+
}
|
|
800
|
+
if (currentGroup) {
|
|
801
|
+
processedGroups.push(currentGroup);
|
|
802
|
+
}
|
|
803
|
+
if (prepend) {
|
|
804
|
+
this.stitchGroups(processedGroups, true);
|
|
805
|
+
}
|
|
806
|
+
else {
|
|
807
|
+
this.stitchGroups(processedGroups);
|
|
808
|
+
}
|
|
809
|
+
}
|
|
810
|
+
stitchGroups(newGroups, prepend) {
|
|
811
|
+
if (!newGroups.length) {
|
|
812
|
+
return;
|
|
813
|
+
}
|
|
814
|
+
if (!this.messagesGroups.length) {
|
|
815
|
+
this.messagesGroups.push(...newGroups);
|
|
816
|
+
return;
|
|
817
|
+
}
|
|
818
|
+
if (prepend) {
|
|
819
|
+
const lastOfNewGroups = newGroups[newGroups.length - 1];
|
|
820
|
+
const firstOfExistingGroups = this.messagesGroups[0];
|
|
821
|
+
if (lastOfNewGroups.sender.id === firstOfExistingGroups.sender.id) {
|
|
822
|
+
firstOfExistingGroups.messages.unshift(...lastOfNewGroups.messages);
|
|
823
|
+
newGroups.splice(newGroups.length - 1, 1);
|
|
824
|
+
}
|
|
825
|
+
this.messagesGroups.unshift(...newGroups);
|
|
826
|
+
}
|
|
827
|
+
else {
|
|
828
|
+
const firstOfNewGroups = newGroups[0];
|
|
829
|
+
const lastOfExistingGroups = this.messagesGroups[this.messagesGroups.length - 1];
|
|
830
|
+
if (firstOfNewGroups.sender.id === lastOfExistingGroups.sender.id) {
|
|
831
|
+
lastOfExistingGroups.messages.push(...firstOfNewGroups.messages);
|
|
832
|
+
newGroups.splice(0, 1);
|
|
833
|
+
}
|
|
834
|
+
this.messagesGroups.push(...newGroups);
|
|
835
|
+
}
|
|
836
|
+
}
|
|
837
|
+
areForwardMessagesAdded() {
|
|
838
|
+
console.log('last grouped present', this.lastGroupedMessage);
|
|
839
|
+
if (!this.lastGroupedMessage) {
|
|
840
|
+
return false;
|
|
841
|
+
}
|
|
842
|
+
const index = this.chat.messages.indexOf(this.lastGroupedMessage);
|
|
843
|
+
return index !== -1 && index < this.chat.messages.length - 1;
|
|
844
|
+
}
|
|
845
|
+
areBackwardMessagesAdded() {
|
|
846
|
+
console.log('first grouped present', this.firstGroupedMessage);
|
|
847
|
+
if (!this.firstGroupedMessage) {
|
|
848
|
+
return false;
|
|
849
|
+
}
|
|
850
|
+
const index = this.chat.messages.indexOf(this.firstGroupedMessage);
|
|
851
|
+
console.log('outcome', index !== -1 && index > 0);
|
|
852
|
+
return index !== -1 && index > 0;
|
|
853
|
+
}
|
|
854
|
+
saveFirstAndLastGroupedMessages() {
|
|
855
|
+
const firstAndLast = this.getFirstAndLastMessage();
|
|
856
|
+
if (!firstAndLast) {
|
|
857
|
+
this.firstGroupedMessage = null;
|
|
858
|
+
this.lastGroupedMessage = null;
|
|
859
|
+
return;
|
|
860
|
+
}
|
|
861
|
+
this.firstGroupedMessage = firstAndLast[0];
|
|
862
|
+
this.lastGroupedMessage = firstAndLast[1];
|
|
863
|
+
}
|
|
864
|
+
getFirstAndLastMessage() {
|
|
865
|
+
if (!this.chat.messages.length) {
|
|
866
|
+
return null;
|
|
867
|
+
}
|
|
868
|
+
return [this.chat.messages[0], this.chat.messages[this.chat.messages.length - 1]];
|
|
869
|
+
}
|
|
870
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: MessagesListComponent, deps: [{ token: TimeFormatHelperService }, { token: i2$1.ViewportScroller }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
871
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: MessagesListComponent, isStandalone: true, selector: "rtsee-messages-list", inputs: { chat: "chat", messenger: "messenger" }, host: { listeners: { "window:scroll": "onWindowScroll($event)" } }, viewQueries: [{ propertyName: "scrollContainer", first: true, predicate: ["scrollBlock"], descendants: true }], ngImport: i0, template: "<div class=\"rtsee-messenger-messages-list\"\n #scrollBlock\n infiniteScroll\n [infiniteScrollUpDistance]=\"2\"\n [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\"\n [scrollWindow]=\"false\"\n (scrolledUp)=\"onScrolledToTop()\"\n (scroll)=\"onScroll()\"\n [style.padding-bottom]=\"messenger.chatInputHeight + 'px'\"\n>\n @for (messageGroup of messagesGroups; track messageGroup.id) {\n <div class=\"rtsee-messenger-message-wrapper\" [ngClass]=\"{\n 'rtsee-messenger-message-wrapper-with-sender': messageGroup.senderVisible\n }\">\n <div class=\"rtsee-messenger-message-inset\">\n <img [src]=\"messageGroup.sender.imageUrl\"\n class=\"rtsee-messenger-message-sender-image\"\n >\n </div>\n\n <div class=\"rtsee-messenger-message-sender-name\">\n <p>{{messageGroup.sender.name}}</p>\n </div>\n\n @for (message of messageGroup.messages; track message.id) {\n <rtsee-message [message]=\"message\"\n [messenger]=\"messenger\"\n [chat]=\"chat\"\n ></rtsee-message>\n }\n </div>\n }\n</div>\n", dependencies: [{ kind: "directive", type: InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: MessageComponent, selector: "rtsee-message", inputs: ["chat", "message", "member", "messenger"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
725
872
|
}
|
|
726
873
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: MessagesListComponent, decorators: [{
|
|
727
874
|
type: Component,
|
|
728
875
|
args: [{ selector: 'rtsee-messages-list', imports: [
|
|
729
876
|
InfiniteScrollDirective,
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
], standalone: true, template: "<div class=\"rtsee-messenger-messages-list\"\n #scrollBlock\n infiniteScroll\n [infiniteScrollUpDistance]=\"2\"\n [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\"\n [scrollWindow]=\"
|
|
733
|
-
}], ctorParameters: () => [{ type: TimeFormatHelperService }, { type: i2$1.ViewportScroller }
|
|
877
|
+
MessageComponent,
|
|
878
|
+
NgClass
|
|
879
|
+
], standalone: true, template: "<div class=\"rtsee-messenger-messages-list\"\n #scrollBlock\n infiniteScroll\n [infiniteScrollUpDistance]=\"2\"\n [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\"\n [scrollWindow]=\"false\"\n (scrolledUp)=\"onScrolledToTop()\"\n (scroll)=\"onScroll()\"\n [style.padding-bottom]=\"messenger.chatInputHeight + 'px'\"\n>\n @for (messageGroup of messagesGroups; track messageGroup.id) {\n <div class=\"rtsee-messenger-message-wrapper\" [ngClass]=\"{\n 'rtsee-messenger-message-wrapper-with-sender': messageGroup.senderVisible\n }\">\n <div class=\"rtsee-messenger-message-inset\">\n <img [src]=\"messageGroup.sender.imageUrl\"\n class=\"rtsee-messenger-message-sender-image\"\n >\n </div>\n\n <div class=\"rtsee-messenger-message-sender-name\">\n <p>{{messageGroup.sender.name}}</p>\n </div>\n\n @for (message of messageGroup.messages; track message.id) {\n <rtsee-message [message]=\"message\"\n [messenger]=\"messenger\"\n [chat]=\"chat\"\n ></rtsee-message>\n }\n </div>\n }\n</div>\n" }]
|
|
880
|
+
}], ctorParameters: () => [{ type: TimeFormatHelperService }, { type: i2$1.ViewportScroller }, { type: Document, decorators: [{
|
|
881
|
+
type: Inject,
|
|
882
|
+
args: [DOCUMENT]
|
|
883
|
+
}] }], propDecorators: { chat: [{
|
|
734
884
|
type: Input
|
|
735
885
|
}], messenger: [{
|
|
736
886
|
type: Input
|
|
737
887
|
}], scrollContainer: [{
|
|
738
888
|
type: ViewChild,
|
|
739
889
|
args: ['scrollBlock']
|
|
890
|
+
}], onWindowScroll: [{
|
|
891
|
+
type: HostListener,
|
|
892
|
+
args: ['window:scroll', ['$event']]
|
|
740
893
|
}] } });
|
|
741
894
|
|
|
742
895
|
class ChatInputComponent {
|
|
@@ -845,7 +998,7 @@ class ChatComponent {
|
|
|
845
998
|
}
|
|
846
999
|
}
|
|
847
1000
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ChatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
848
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: ChatComponent, isStandalone: true, selector: "rtsee-chat", inputs: { chat: "chat", chatData: "chatData", messenger: "messenger" }, ngImport: i0, template: "<div class=\"rtsee-chat\"\n [ngClass]=\"{\n 'rtsee-chat-standalone': chat.isStandalone,\n 'rtsee-chat-in-viewport': chat.isInViewPort\n }\"\n rtseeViewportObserver\n (inViewport)=\"onInViewPortChange($event)\"\n>\n <div class=\"rtsee-chat-
|
|
1001
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: ChatComponent, isStandalone: true, selector: "rtsee-chat", inputs: { chat: "chat", chatData: "chatData", messenger: "messenger" }, ngImport: i0, template: "<div class=\"rtsee-chat\"\n [ngClass]=\"{\n 'rtsee-chat-standalone': chat.isStandalone,\n 'rtsee-chat-in-viewport': chat.isInViewPort\n }\"\n rtseeViewportObserver\n (inViewport)=\"onInViewPortChange($event)\"\n>\n <div class=\"rtsee-chat-footer-container\">\n <div class=\"rtsee-chat-footer-container-inner\">\n <rtsee-chat-input [messenger]=\"messenger\" [chat]=\"chat\"></rtsee-chat-input>\n </div>\n </div>\n <div class=\"rtsee-chat-body-container\">\n <rtsee-messages-list [messenger]=\"messenger\" [chat]=\"chat\"></rtsee-messages-list>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: MessagesListComponent, selector: "rtsee-messages-list", inputs: ["chat", "messenger"] }, { kind: "component", type: ChatInputComponent, selector: "rtsee-chat-input", inputs: ["messenger", "chat"] }, { kind: "directive", type: ViewportObserverDirective, selector: "[rtseeViewportObserver]", outputs: ["inViewport"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
849
1002
|
}
|
|
850
1003
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ChatComponent, decorators: [{
|
|
851
1004
|
type: Component,
|
|
@@ -854,7 +1007,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
854
1007
|
ChatInputComponent,
|
|
855
1008
|
ViewportObserverDirective,
|
|
856
1009
|
NgClass
|
|
857
|
-
], standalone: true, template: "<div class=\"rtsee-chat\"\n [ngClass]=\"{\n 'rtsee-chat-standalone': chat.isStandalone,\n 'rtsee-chat-in-viewport': chat.isInViewPort\n }\"\n rtseeViewportObserver\n (inViewport)=\"onInViewPortChange($event)\"\n>\n <div class=\"rtsee-chat-
|
|
1010
|
+
], standalone: true, template: "<div class=\"rtsee-chat\"\n [ngClass]=\"{\n 'rtsee-chat-standalone': chat.isStandalone,\n 'rtsee-chat-in-viewport': chat.isInViewPort\n }\"\n rtseeViewportObserver\n (inViewport)=\"onInViewPortChange($event)\"\n>\n <div class=\"rtsee-chat-footer-container\">\n <div class=\"rtsee-chat-footer-container-inner\">\n <rtsee-chat-input [messenger]=\"messenger\" [chat]=\"chat\"></rtsee-chat-input>\n </div>\n </div>\n <div class=\"rtsee-chat-body-container\">\n <rtsee-messages-list [messenger]=\"messenger\" [chat]=\"chat\"></rtsee-messages-list>\n </div>\n</div>\n" }]
|
|
858
1011
|
}], propDecorators: { chat: [{
|
|
859
1012
|
type: Input
|
|
860
1013
|
}], chatData: [{
|
|
@@ -1401,7 +1554,8 @@ class ManageStoryComponent {
|
|
|
1401
1554
|
name: this.nameField.value,
|
|
1402
1555
|
description: this.descriptionField.value,
|
|
1403
1556
|
averageReadTime: this.averageReadTimeField.value,
|
|
1404
|
-
commentsEnabled: this.isDiscussableField.value
|
|
1557
|
+
commentsEnabled: this.isDiscussableField.value,
|
|
1558
|
+
isPublished: this.isPublishedField.value
|
|
1405
1559
|
});
|
|
1406
1560
|
}
|
|
1407
1561
|
else {
|
|
@@ -1704,7 +1858,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
1704
1858
|
|
|
1705
1859
|
class StoryDetailsComponent {
|
|
1706
1860
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: StoryDetailsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1707
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: StoryDetailsComponent, isStandalone: true, selector: "rtsee-story-details", inputs: { story: "story", presentation: "presentation", messenger: "messenger" }, ngImport: i0, template: "<div class=\"rtsee-story-details\">\n <div class=\"rtsee-story-details-image-container\">\n <img [src]=\"story.imageUrl\" alt=\"story_image\" class=\"rtsee-story-details-image\">\n <p-button label=\"Start Reading\"\n class=\"rtsee-story-details-start-reading\"\n
|
|
1861
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: StoryDetailsComponent, isStandalone: true, selector: "rtsee-story-details", inputs: { story: "story", presentation: "presentation", messenger: "messenger" }, ngImport: i0, template: "<div class=\"rtsee-story-details\">\n <div class=\"rtsee-story-details-image-container\" (click)=\"presentation.setActiveStory(story)\">\n <img [src]=\"story.imageUrl\" alt=\"story_image\" class=\"rtsee-story-details-image\">\n <p-button label=\"Start Reading\"\n class=\"rtsee-story-details-start-reading\"\n ></p-button>\n <p-button label=\"Close\"\n class=\"rtsee-story-details-close\"\n severity=\"secondary\"\n (click)=\"presentation.closeStoryDetails()\"\n ></p-button>\n </div>\n <div class=\"rtsee-story-details-title-container\">\n <h1 class=\"rtsee-story-details-title\">{{story.name}}</h1>\n </div>\n @if (story.categories?.length && false) {\n <div class=\"rtsee-story-details-categories\">\n @for (category of story.categories; track category.id) {\n <p-tag [value]=\"category.name\"></p-tag>\n }\n </div>\n }\n\n @if (story.labels?.length) {\n <div class=\"rtsee-story-details-labels\">\n @for (label of story.labels; track label .id) {\n <p-chip class=\"rtsee-story-details-label\">\n <span class=\"rtsee-story-details-label-left\"\n >{{label.symbol}}</span>\n <span class=\"rtsee-story-details-label-right\"\n >{{label.name}}</span>\n </p-chip>\n }\n </div>\n }\n\n <div class=\"rtsee-story-details-description-container\">\n <p class=\"rtsee-story-details-description\">{{story.description}}</p>\n </div>\n <div class=\"rtsee-story-details-description-history\">\n </div>\n @if (story.isPublished) {\n <div class=\"rtsee-story-details-feedback\">\n <p>feedback here</p>\n </div>\n } @else if (messenger && story.discussion) {\n\n <div class=\"rtsee-story-details-votes\">\n <p class=\"rtsee-story-details-comments-label\">Comments</p>\n <rtsee-chat [messenger]=\"messenger\"\n [chatData]=\"story.discussion\"\n ></rtsee-chat>\n </div>\n }\n</div>\n", dependencies: [{ kind: "component", type: Chip, selector: "p-chip", inputs: ["label", "icon", "image", "alt", "styleClass", "disabled", "removable", "removeIcon", "chipProps"], outputs: ["onRemove", "onImageError"] }, { kind: "component", type: Tag, selector: "p-tag", inputs: ["styleClass", "severity", "value", "icon", "rounded"] }, { kind: "component", type: Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "buttonProps", "autofocus", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: ChatComponent, selector: "rtsee-chat", inputs: ["chat", "chatData", "messenger"] }] }); }
|
|
1708
1862
|
}
|
|
1709
1863
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: StoryDetailsComponent, decorators: [{
|
|
1710
1864
|
type: Component,
|
|
@@ -1713,7 +1867,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
1713
1867
|
Tag,
|
|
1714
1868
|
Button,
|
|
1715
1869
|
ChatComponent
|
|
1716
|
-
], template: "<div class=\"rtsee-story-details\">\n <div class=\"rtsee-story-details-image-container\">\n <img [src]=\"story.imageUrl\" alt=\"story_image\" class=\"rtsee-story-details-image\">\n <p-button label=\"Start Reading\"\n class=\"rtsee-story-details-start-reading\"\n
|
|
1870
|
+
], template: "<div class=\"rtsee-story-details\">\n <div class=\"rtsee-story-details-image-container\" (click)=\"presentation.setActiveStory(story)\">\n <img [src]=\"story.imageUrl\" alt=\"story_image\" class=\"rtsee-story-details-image\">\n <p-button label=\"Start Reading\"\n class=\"rtsee-story-details-start-reading\"\n ></p-button>\n <p-button label=\"Close\"\n class=\"rtsee-story-details-close\"\n severity=\"secondary\"\n (click)=\"presentation.closeStoryDetails()\"\n ></p-button>\n </div>\n <div class=\"rtsee-story-details-title-container\">\n <h1 class=\"rtsee-story-details-title\">{{story.name}}</h1>\n </div>\n @if (story.categories?.length && false) {\n <div class=\"rtsee-story-details-categories\">\n @for (category of story.categories; track category.id) {\n <p-tag [value]=\"category.name\"></p-tag>\n }\n </div>\n }\n\n @if (story.labels?.length) {\n <div class=\"rtsee-story-details-labels\">\n @for (label of story.labels; track label .id) {\n <p-chip class=\"rtsee-story-details-label\">\n <span class=\"rtsee-story-details-label-left\"\n >{{label.symbol}}</span>\n <span class=\"rtsee-story-details-label-right\"\n >{{label.name}}</span>\n </p-chip>\n }\n </div>\n }\n\n <div class=\"rtsee-story-details-description-container\">\n <p class=\"rtsee-story-details-description\">{{story.description}}</p>\n </div>\n <div class=\"rtsee-story-details-description-history\">\n </div>\n @if (story.isPublished) {\n <div class=\"rtsee-story-details-feedback\">\n <p>feedback here</p>\n </div>\n } @else if (messenger && story.discussion) {\n\n <div class=\"rtsee-story-details-votes\">\n <p class=\"rtsee-story-details-comments-label\">Comments</p>\n <rtsee-chat [messenger]=\"messenger\"\n [chatData]=\"story.discussion\"\n ></rtsee-chat>\n </div>\n }\n</div>\n" }]
|
|
1717
1871
|
}], propDecorators: { story: [{
|
|
1718
1872
|
type: Input
|
|
1719
1873
|
}], presentation: [{
|
|
@@ -1768,8 +1922,6 @@ class RtseeNavComponent {
|
|
|
1768
1922
|
console.log('RTSeeContainer: user peer not found');
|
|
1769
1923
|
return false;
|
|
1770
1924
|
}
|
|
1771
|
-
console.log('peer', peer);
|
|
1772
|
-
console.log('peer', peer.permissions?.length);
|
|
1773
1925
|
const profileRoute = this.config.routes
|
|
1774
1926
|
.find((r) => r.rtseeRoute === RTSeeRoutesList.PROFILE) || null;
|
|
1775
1927
|
const dashboardRoute = this.config.routes
|
|
@@ -1811,18 +1963,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
1811
1963
|
}] } });
|
|
1812
1964
|
|
|
1813
1965
|
class RTSeeContainerComponent {
|
|
1814
|
-
constructor(authService) {
|
|
1966
|
+
constructor(authService, router) {
|
|
1815
1967
|
this.authService = authService;
|
|
1968
|
+
this.router = router;
|
|
1816
1969
|
this.isSidenavExpanded = true;
|
|
1970
|
+
this.isSidenavContent = false;
|
|
1971
|
+
this.isSidenavFullScreen = false;
|
|
1972
|
+
}
|
|
1973
|
+
ngOnInit() {
|
|
1974
|
+
this.authService.init(this.auth);
|
|
1975
|
+
this.routeSubscription = this.router.events.pipe(
|
|
1976
|
+
// Filter for the NavigationEnd event to know when navigation is complete
|
|
1977
|
+
filter((event) => event instanceof NavigationEnd)).subscribe((event) => {
|
|
1978
|
+
this.defineSideNavState(event.url);
|
|
1979
|
+
});
|
|
1817
1980
|
}
|
|
1818
1981
|
onSidenavToggleClicked() {
|
|
1819
1982
|
this.isSidenavExpanded = !this.isSidenavExpanded;
|
|
1820
1983
|
}
|
|
1821
|
-
|
|
1822
|
-
|
|
1984
|
+
defineSideNavState(url) {
|
|
1985
|
+
const isBase = url === '/' || url.startsWith('/?');
|
|
1986
|
+
const routeUrlSplit = url.split('/');
|
|
1987
|
+
const rootRoutePath = isBase ? '' : (routeUrlSplit[1] || null);
|
|
1988
|
+
if (!rootRoutePath && !isBase) {
|
|
1989
|
+
return;
|
|
1990
|
+
}
|
|
1991
|
+
const rtseeRoute = this.navigationConfig.routes
|
|
1992
|
+
.find((rn) => rn.link === rootRoutePath) || null;
|
|
1993
|
+
if (!rtseeRoute) {
|
|
1994
|
+
return;
|
|
1995
|
+
}
|
|
1996
|
+
this.isSidenavContent = rtseeRoute.fullContent || false;
|
|
1997
|
+
this.isSidenavFullScreen = rtseeRoute.fullScreen || false;
|
|
1823
1998
|
}
|
|
1824
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RTSeeContainerComponent, deps: [{ token: RTSeeAuthService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1825
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: RTSeeContainerComponent, isStandalone: true, selector: "rtsee-container", inputs: { rtsee: "rtsee", navigationConfig: "navigationConfig", auth: "auth" }, ngImport: i0, template: "<div class=\"rtsee-shell\"\n [ngClass]=\"{\n 'rtsee-shell-conference-mode': rtsee.conference && rtsee.conference.isInActiveCall,\n 'rtsee-shell-messenger-active': rtsee.messenger && rtsee.activeTab === 'messenger',\n 'rtsee-shell-dashboard-active': rtsee.eventsDashboard && rtsee.activeTab === 'events-dashboard',\n 'rtsee-shell-presentation-active': rtsee.presentation && rtsee.activeTab === 'presentation',\n 'rtsee-shell-side-nav-expanded': isSidenavExpanded\n }\"\n>\n <div class=\"rtsee-nav-block\">\n <rtsee-nav [config]=\"navigationConfig\" [rtsee]=\"rtsee\"></rtsee-nav>\n </div>\n\n <div class=\"rtsee-shell-panel\">\n <div class=\"rtsee-shell-panel-inner\">\n @if (rtsee.conference && rtsee.conference.isInActiveCall) {\n <div class=\"rtsee-conference-container\">\n <rtsee-conference [rtSee]=\"rtsee.conference\"\n ></rtsee-conference>\n </div>\n }\n\n @if (rtsee.messenger) {\n <div class=\"rtsee-messenger-container\">\n <rtsee-messenger [messenger]=\"rtsee.messenger\"\n ></rtsee-messenger>\n </div>\n }\n\n @if (rtsee.eventsDashboard && rtsee.eventsDashboard.isReady) {\n <div class=\"rtsee-events-dashboard-container\">\n <rtsee-events-dashboard [eventsDashboard]=\"rtsee.eventsDashboard\"\n ></rtsee-events-dashboard>\n </div>\n }\n\n @if (rtsee.presentation && rtsee.presentation.isActive) {\n <div class=\"rtsee-presentation-container\">\n <rtsee-presentation [presentation]=\"rtsee.presentation\"\n [messenger]=\"rtsee.messenger\"\n ></rtsee-presentation>\n </div>\n }\n </div>\n </div>\n\n <div class=\"rtsee-content\">\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: RTSeeConferenceComponent, selector: "rtsee-conference", inputs: ["rtSee"] }, { kind: "component", type: MessengerComponent, selector: "rtsee-messenger", inputs: ["messenger"] }, { kind: "component", type: RtseeEventsDashboardComponent, selector: "rtsee-events-dashboard", inputs: ["eventsDashboard"] }, { kind: "component", type: PresentationComponent, selector: "rtsee-presentation", inputs: ["presentation", "messenger"] }, { kind: "component", type: RtseeNavComponent, selector: "rtsee-nav", inputs: ["config", "rtsee"] }] }); }
|
|
1999
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RTSeeContainerComponent, deps: [{ token: RTSeeAuthService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2000
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: RTSeeContainerComponent, isStandalone: true, selector: "rtsee-container", inputs: { rtsee: "rtsee", navigationConfig: "navigationConfig", auth: "auth" }, ngImport: i0, template: "<div class=\"rtsee-shell\"\n [ngClass]=\"{\n 'rtsee-shell-conference-mode': rtsee.conference && rtsee.conference.isInActiveCall,\n 'rtsee-shell-messenger-active': rtsee.messenger && rtsee.activeTab === 'messenger',\n 'rtsee-shell-dashboard-active': rtsee.eventsDashboard && rtsee.activeTab === 'events-dashboard',\n 'rtsee-shell-presentation-active': rtsee.presentation && rtsee.activeTab === 'presentation',\n 'rtsee-shell-side-nav-expanded': isSidenavExpanded,\n 'rtsee-shell-side-nav-is-content': isSidenavContent,\n 'rtsee-shell-side-nav-full-screen': isSidenavFullScreen\n }\"\n>\n <div class=\"rtsee-nav-block\">\n <rtsee-nav [config]=\"navigationConfig\" [rtsee]=\"rtsee\"></rtsee-nav>\n </div>\n\n <div class=\"rtsee-shell-panel\">\n <div class=\"rtsee-shell-panel-inner\">\n @if (rtsee.conference && rtsee.conference.isInActiveCall) {\n <div class=\"rtsee-conference-container\">\n <rtsee-conference [rtSee]=\"rtsee.conference\"\n ></rtsee-conference>\n </div>\n }\n\n @if (rtsee.messenger) {\n <div class=\"rtsee-messenger-container\">\n <rtsee-messenger [messenger]=\"rtsee.messenger\"\n ></rtsee-messenger>\n </div>\n }\n\n @if (rtsee.eventsDashboard && rtsee.eventsDashboard.isReady) {\n <div class=\"rtsee-events-dashboard-container\">\n <rtsee-events-dashboard [eventsDashboard]=\"rtsee.eventsDashboard\"\n ></rtsee-events-dashboard>\n </div>\n }\n\n @if (rtsee.presentation && rtsee.presentation.isActive) {\n <div class=\"rtsee-presentation-container\">\n <rtsee-presentation [presentation]=\"rtsee.presentation\"\n [messenger]=\"rtsee.messenger\"\n ></rtsee-presentation>\n </div>\n }\n </div>\n </div>\n\n <div class=\"rtsee-content\">\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: RTSeeConferenceComponent, selector: "rtsee-conference", inputs: ["rtSee"] }, { kind: "component", type: MessengerComponent, selector: "rtsee-messenger", inputs: ["messenger"] }, { kind: "component", type: RtseeEventsDashboardComponent, selector: "rtsee-events-dashboard", inputs: ["eventsDashboard"] }, { kind: "component", type: PresentationComponent, selector: "rtsee-presentation", inputs: ["presentation", "messenger"] }, { kind: "component", type: RtseeNavComponent, selector: "rtsee-nav", inputs: ["config", "rtsee"] }] }); }
|
|
1826
2001
|
}
|
|
1827
2002
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RTSeeContainerComponent, decorators: [{
|
|
1828
2003
|
type: Component,
|
|
@@ -1833,8 +2008,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
1833
2008
|
RtseeEventsDashboardComponent,
|
|
1834
2009
|
PresentationComponent,
|
|
1835
2010
|
RtseeNavComponent
|
|
1836
|
-
], standalone: true, template: "<div class=\"rtsee-shell\"\n [ngClass]=\"{\n 'rtsee-shell-conference-mode': rtsee.conference && rtsee.conference.isInActiveCall,\n 'rtsee-shell-messenger-active': rtsee.messenger && rtsee.activeTab === 'messenger',\n 'rtsee-shell-dashboard-active': rtsee.eventsDashboard && rtsee.activeTab === 'events-dashboard',\n 'rtsee-shell-presentation-active': rtsee.presentation && rtsee.activeTab === 'presentation',\n 'rtsee-shell-side-nav-expanded': isSidenavExpanded\n }\"\n>\n <div class=\"rtsee-nav-block\">\n <rtsee-nav [config]=\"navigationConfig\" [rtsee]=\"rtsee\"></rtsee-nav>\n </div>\n\n <div class=\"rtsee-shell-panel\">\n <div class=\"rtsee-shell-panel-inner\">\n @if (rtsee.conference && rtsee.conference.isInActiveCall) {\n <div class=\"rtsee-conference-container\">\n <rtsee-conference [rtSee]=\"rtsee.conference\"\n ></rtsee-conference>\n </div>\n }\n\n @if (rtsee.messenger) {\n <div class=\"rtsee-messenger-container\">\n <rtsee-messenger [messenger]=\"rtsee.messenger\"\n ></rtsee-messenger>\n </div>\n }\n\n @if (rtsee.eventsDashboard && rtsee.eventsDashboard.isReady) {\n <div class=\"rtsee-events-dashboard-container\">\n <rtsee-events-dashboard [eventsDashboard]=\"rtsee.eventsDashboard\"\n ></rtsee-events-dashboard>\n </div>\n }\n\n @if (rtsee.presentation && rtsee.presentation.isActive) {\n <div class=\"rtsee-presentation-container\">\n <rtsee-presentation [presentation]=\"rtsee.presentation\"\n [messenger]=\"rtsee.messenger\"\n ></rtsee-presentation>\n </div>\n }\n </div>\n </div>\n\n <div class=\"rtsee-content\">\n <ng-content></ng-content>\n </div>\n</div>\n" }]
|
|
1837
|
-
}], ctorParameters: () => [{ type: RTSeeAuthService }], propDecorators: { rtsee: [{
|
|
2011
|
+
], standalone: true, template: "<div class=\"rtsee-shell\"\n [ngClass]=\"{\n 'rtsee-shell-conference-mode': rtsee.conference && rtsee.conference.isInActiveCall,\n 'rtsee-shell-messenger-active': rtsee.messenger && rtsee.activeTab === 'messenger',\n 'rtsee-shell-dashboard-active': rtsee.eventsDashboard && rtsee.activeTab === 'events-dashboard',\n 'rtsee-shell-presentation-active': rtsee.presentation && rtsee.activeTab === 'presentation',\n 'rtsee-shell-side-nav-expanded': isSidenavExpanded,\n 'rtsee-shell-side-nav-is-content': isSidenavContent,\n 'rtsee-shell-side-nav-full-screen': isSidenavFullScreen\n }\"\n>\n <div class=\"rtsee-nav-block\">\n <rtsee-nav [config]=\"navigationConfig\" [rtsee]=\"rtsee\"></rtsee-nav>\n </div>\n\n <div class=\"rtsee-shell-panel\">\n <div class=\"rtsee-shell-panel-inner\">\n @if (rtsee.conference && rtsee.conference.isInActiveCall) {\n <div class=\"rtsee-conference-container\">\n <rtsee-conference [rtSee]=\"rtsee.conference\"\n ></rtsee-conference>\n </div>\n }\n\n @if (rtsee.messenger) {\n <div class=\"rtsee-messenger-container\">\n <rtsee-messenger [messenger]=\"rtsee.messenger\"\n ></rtsee-messenger>\n </div>\n }\n\n @if (rtsee.eventsDashboard && rtsee.eventsDashboard.isReady) {\n <div class=\"rtsee-events-dashboard-container\">\n <rtsee-events-dashboard [eventsDashboard]=\"rtsee.eventsDashboard\"\n ></rtsee-events-dashboard>\n </div>\n }\n\n @if (rtsee.presentation && rtsee.presentation.isActive) {\n <div class=\"rtsee-presentation-container\">\n <rtsee-presentation [presentation]=\"rtsee.presentation\"\n [messenger]=\"rtsee.messenger\"\n ></rtsee-presentation>\n </div>\n }\n </div>\n </div>\n\n <div class=\"rtsee-content\">\n <ng-content></ng-content>\n </div>\n</div>\n" }]
|
|
2012
|
+
}], ctorParameters: () => [{ type: RTSeeAuthService }, { type: i2.Router }], propDecorators: { rtsee: [{
|
|
1838
2013
|
type: Input
|
|
1839
2014
|
}], navigationConfig: [{
|
|
1840
2015
|
type: Input
|