@rtsee/ngx 0.0.119 → 0.0.121

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.
@@ -1,14 +1,14 @@
1
1
  import * as i0 from '@angular/core';
2
- import { OnInit, AfterViewInit, ElementRef, EventEmitter, OnDestroy, ChangeDetectorRef, OutputEmitterRef, OnChanges, SimpleChanges, ViewContainerRef, ComponentFactoryResolver, DoCheck } from '@angular/core';
2
+ import { OnInit, AfterViewInit, ElementRef, EventEmitter, OnDestroy, ChangeDetectorRef, OutputEmitterRef, OnChanges, SimpleChanges, ViewContainerRef, ComponentFactoryResolver, DoCheck, Type } from '@angular/core';
3
3
  import { RTSeeConference, RTSeePeerConnection } from '@rtsee/conference';
4
- import { RTSeeMessenger, RTSeeMessengerSearch, RTSeeMessage, RTSeeChat, RTSeeChatMember, RTSeeMentionAutocomplete, RTSeeWorkflowAutocomplete, OzzyClientTask } from '@rtsee/messenger';
4
+ import { RTSeeMessenger, RTSeeMessengerSearch, RTSeeMessage, RTSeeChat, RTSeeChatMember, RTSeeMentionAutocomplete, RTSeeWorkflowAutocomplete, OzzyClientTask, OzzyClientTaskAction } from '@rtsee/messenger';
5
5
  import { IPeer, RTSeeTextLabelKeys, IRTSeeCall } from '@rtsee/core';
6
6
  import { HttpClient } from '@angular/common/http';
7
7
  import { RTSeeAuth, RTSeeAuthConfiguration, IRtseeSignInRequestOptions, IRTSeeSignInResponse, IRtseeSignUpRequestOptions, IRTSeeSignUpResponse, AuthEndpointsKeys } from '@rtsee/auth';
8
8
  import { Observable, Subscription } from 'rxjs';
9
9
  import * as i47 from '@angular/router';
10
10
  import { Router, ActivatedRoute } from '@angular/router';
11
- import { IRTSeePaymentProduct, IRTSeePaymentPriceItem, IRTSeeStorySlide, IRTSeeStoryElement, IRTSeeIllustratorContextImage, IRTSeeChat, RTSeeChatTypes, IMessageThumbnail, IOzzyWorkflowDefinition, IOzzyTaskLog } from '@rtsee/common';
11
+ import { IRTSeePaymentProduct, IRTSeePaymentPriceItem, IRTSeeStorySlide, IRTSeeStoryElement, IRTSeeIllustratorContextImage, IRTSeeChat, RTSeeChatTypes, IMessageThumbnail, IOzzyWorkflowDefinition, IOzzyTaskActionPrompt, IOzzyTaskLog, IRTSeeStory } from '@rtsee/common';
12
12
  import { RTSeeEventsDashboard, RTSeeDashboardClientSession, RTSeeDashboardEvent, RTSeeDashboardClient } from '@rtsee/events-dashboard';
13
13
  import { RTSee, INavigationConfig, IRouteConfig } from '@rtsee/factory';
14
14
  import { RTSeePresentation, RTSeeStory, RTSeeInteractiveStoryEditorVm, RTSeeStoryEditorSection, RTSeeIllustrator, RTSeeStoryElementsEditor, RTSeeStoryElementEntity, IRTSeeIllustratorAgentOption, RTSeePresentationSettings, RTSeeStorySlide } from '@rtsee/presentation';
@@ -134,9 +134,10 @@ declare class ProfileComponent {
134
134
 
135
135
  declare class MessengerComponent {
136
136
  messenger: RTSeeMessenger;
137
+ isFramed: boolean;
137
138
  onScroll(): void;
138
139
  static ɵfac: i0.ɵɵFactoryDeclaration<MessengerComponent, never>;
139
- static ɵcmp: i0.ɵɵComponentDeclaration<MessengerComponent, "rtsee-messenger", never, { "messenger": { "alias": "messenger"; "required": false; }; }, {}, never, never, true, never>;
140
+ static ɵcmp: i0.ɵɵComponentDeclaration<MessengerComponent, "rtsee-messenger", never, { "messenger": { "alias": "messenger"; "required": false; }; "isFramed": { "alias": "isFramed"; "required": false; }; }, {}, never, never, true, never>;
140
141
  }
141
142
 
142
143
  declare class PaymentProductSnippetComponent {
@@ -562,7 +563,7 @@ declare class MessageWidgetsService {
562
563
 
563
564
  declare class EventsWidgetsService {
564
565
  widgetsMap: IMessageWidget[];
565
- getWidgetComponentByName(name: string): any;
566
+ getWidgetComponentByName(name?: string): any;
566
567
  static ɵfac: i0.ɵɵFactoryDeclaration<EventsWidgetsService, never>;
567
568
  static ɵprov: i0.ɵɵInjectableDeclaration<EventsWidgetsService>;
568
569
  }
@@ -575,10 +576,13 @@ declare class EventThumbnailComponent implements OnInit, OnChanges, AfterViewIni
575
576
  tooltip?: string;
576
577
  timeInAgoFormat: string;
577
578
  private componentRef?;
578
- event: RTSeeDashboardEvent;
579
+ event: RTSeeDashboardEvent<Record<string, unknown>>;
579
580
  session?: RTSeeDashboardClientSession;
580
581
  widgetHost: WidgetDirective;
581
582
  constructor(widgetsService: EventsWidgetsService, componentFactoryResolver: ComponentFactoryResolver, timeFormatService: TimeFormatHelperService, cd: ChangeDetectorRef);
583
+ get widgetName(): string | undefined;
584
+ get hasWidget(): boolean;
585
+ get hasDetails(): boolean;
582
586
  ngOnInit(): void;
583
587
  generateTooltip(): void;
584
588
  ngOnChanges(changes: SimpleChanges): void;
@@ -707,6 +711,7 @@ declare class ChatComponent implements OnInit, OnDestroy {
707
711
  chatData?: IRTSeeChat;
708
712
  entity?: RTSeeEntity;
709
713
  messenger: RTSeeMessenger;
714
+ isFramed: boolean;
710
715
  showInvite: boolean;
711
716
  get isSoleAdmin(): boolean;
712
717
  toggleInvite(): void;
@@ -714,7 +719,7 @@ declare class ChatComponent implements OnInit, OnDestroy {
714
719
  ngOnInit(): void;
715
720
  ngOnDestroy(): void;
716
721
  static ɵfac: i0.ɵɵFactoryDeclaration<ChatComponent, never>;
717
- static ɵcmp: i0.ɵɵComponentDeclaration<ChatComponent, "rtsee-chat", never, { "chat": { "alias": "chat"; "required": false; }; "chatData": { "alias": "chatData"; "required": false; }; "entity": { "alias": "entity"; "required": false; }; "messenger": { "alias": "messenger"; "required": false; }; }, {}, never, never, true, never>;
722
+ static ɵcmp: i0.ɵɵComponentDeclaration<ChatComponent, "rtsee-chat", never, { "chat": { "alias": "chat"; "required": false; }; "chatData": { "alias": "chatData"; "required": false; }; "entity": { "alias": "entity"; "required": false; }; "messenger": { "alias": "messenger"; "required": false; }; "isFramed": { "alias": "isFramed"; "required": false; }; }, {}, never, never, true, never>;
718
723
  }
719
724
 
720
725
  declare class MessageComponent implements OnInit, AfterViewInit, OnChanges {
@@ -747,6 +752,7 @@ interface IRTSeeMessageGroup {
747
752
  declare class MessagesListComponent implements AfterViewInit, OnChanges, OnDestroy, OnInit {
748
753
  private timeFormatService;
749
754
  private scroller;
755
+ private hostRef;
750
756
  private document;
751
757
  bindScrollFunction: () => void;
752
758
  bindedGroupFunction: () => void;
@@ -754,15 +760,20 @@ declare class MessagesListComponent implements AfterViewInit, OnChanges, OnDestr
754
760
  firstGroupedMessage: RTSeeMessage | null;
755
761
  lastGroupedMessage: RTSeeMessage | null;
756
762
  shouldStickToBottom: boolean;
763
+ isWindowScroll: boolean;
757
764
  private resizeObserver;
758
765
  private onMediaCapture;
759
766
  private initialScrollInterval;
767
+ private lastContainerScrollTop;
768
+ private lastWindowScrollTop;
760
769
  chat: RTSeeChat;
761
770
  messenger: RTSeeMessenger;
771
+ isFramed: boolean;
762
772
  scrollContainer: ElementRef<HTMLDivElement>;
763
773
  contentBlock: ElementRef<HTMLDivElement>;
764
774
  bottomAnchor: ElementRef<HTMLDivElement>;
765
- constructor(timeFormatService: TimeFormatHelperService, scroller: ViewportScroller, document: Document);
775
+ constructor(timeFormatService: TimeFormatHelperService, scroller: ViewportScroller, hostRef: ElementRef<HTMLElement>, document: Document);
776
+ get isStandalone(): boolean;
766
777
  onWindowScroll(event: Event): void;
767
778
  onWindowResize(): void;
768
779
  ngOnInit(): void;
@@ -777,6 +788,10 @@ declare class MessagesListComponent implements AfterViewInit, OnChanges, OnDestr
777
788
  formatDate(message: RTSeeMessage): string;
778
789
  private checkScrollPosition;
779
790
  private isAtBottom;
791
+ private isMobileViewport;
792
+ private isShellMobileChatActive;
793
+ private computeIsWindowScroll;
794
+ private updateScrollMode;
780
795
  private enforceInitialScroll;
781
796
  private bindChatEvents;
782
797
  private unbindChatEvents;
@@ -784,7 +799,7 @@ declare class MessagesListComponent implements AfterViewInit, OnChanges, OnDestr
784
799
  private saveFirstAndLastGroupedMessages;
785
800
  protected readonly RTSeeChatTypes: typeof RTSeeChatTypes;
786
801
  static ɵfac: i0.ɵɵFactoryDeclaration<MessagesListComponent, never>;
787
- static ɵcmp: i0.ɵɵComponentDeclaration<MessagesListComponent, "rtsee-messages-list", never, { "chat": { "alias": "chat"; "required": false; }; "messenger": { "alias": "messenger"; "required": false; }; }, {}, never, never, true, never>;
802
+ static ɵcmp: i0.ɵɵComponentDeclaration<MessagesListComponent, "rtsee-messages-list", never, { "chat": { "alias": "chat"; "required": false; }; "messenger": { "alias": "messenger"; "required": false; }; "isFramed": { "alias": "isFramed"; "required": false; }; }, {}, never, never, true, never>;
788
803
  }
789
804
 
790
805
  declare class ChatThumbnailComponent {
@@ -1061,7 +1076,7 @@ declare class RTSeeTaskComponent implements OnInit, OnChanges, OnDestroy {
1061
1076
  chat?: RTSeeChat;
1062
1077
  /** hide the execute button (e.g. when the workflow executes the task itself) */
1063
1078
  allowExecute: boolean;
1064
- logsContainer?: ElementRef<HTMLDivElement>;
1079
+ actionsContainer?: ElementRef<HTMLDivElement>;
1065
1080
  copied: 'input' | 'output' | null;
1066
1081
  private subscribedTask;
1067
1082
  private onChangedBound;
@@ -1074,10 +1089,15 @@ declare class RTSeeTaskComponent implements OnInit, OnChanges, OnDestroy {
1074
1089
  get inputJson(): string;
1075
1090
  get outputJson(): string;
1076
1091
  get hasOutput(): boolean;
1077
- get hasLogs(): boolean;
1092
+ get hasActions(): boolean;
1093
+ get hasPrompts(): boolean;
1078
1094
  execute(): void;
1095
+ loadMoreActions(): void;
1096
+ onActionsScroll(event: Event): void;
1079
1097
  copy(kind: 'input' | 'output'): Promise<void>;
1080
- trackLog(index: number, log: IOzzyTaskLog): string;
1098
+ trackAction(_index: number, action: OzzyClientTaskAction): string;
1099
+ trackPrompt(_index: number, prompt: IOzzyTaskActionPrompt): string;
1100
+ private ensureActions;
1081
1101
  private toJson;
1082
1102
  private subscribe;
1083
1103
  private unsubscribe;
@@ -1086,6 +1106,181 @@ declare class RTSeeTaskComponent implements OnInit, OnChanges, OnDestroy {
1086
1106
  static ɵcmp: i0.ɵɵComponentDeclaration<RTSeeTaskComponent, "rtsee-task", never, { "task": { "alias": "task"; "required": false; }; "message": { "alias": "message"; "required": false; }; "messenger": { "alias": "messenger"; "required": false; }; "chat": { "alias": "chat"; "required": false; }; "allowExecute": { "alias": "allowExecute"; "required": false; }; }, {}, never, never, true, never>;
1087
1107
  }
1088
1108
 
1109
+ /**
1110
+ * Full client-side representation of a single OzzyTaskAction.
1111
+ * Displays input, logs, output, and/or errors of the action.
1112
+ */
1113
+ declare class RTSeeTaskActionComponent implements OnInit, OnChanges, OnDestroy {
1114
+ private cdr;
1115
+ action?: OzzyClientTaskAction | null;
1116
+ logsContainer?: ElementRef<HTMLDivElement>;
1117
+ copied: 'input' | 'output' | null;
1118
+ private subscribedAction;
1119
+ private onChangedBound;
1120
+ constructor(cdr: ChangeDetectorRef);
1121
+ ngOnInit(): void;
1122
+ ngOnChanges(changes: SimpleChanges): void;
1123
+ ngOnDestroy(): void;
1124
+ get statusLabel(): string;
1125
+ get statusClass(): string;
1126
+ get inputJson(): string;
1127
+ get outputJson(): string;
1128
+ get hasOutput(): boolean;
1129
+ get hasLogs(): boolean;
1130
+ copy(kind: 'input' | 'output'): Promise<void>;
1131
+ trackLog(index: number, log: IOzzyTaskLog): string;
1132
+ private ensureLoaded;
1133
+ private toJson;
1134
+ private subscribe;
1135
+ private unsubscribe;
1136
+ private onActionChanged;
1137
+ static ɵfac: i0.ɵɵFactoryDeclaration<RTSeeTaskActionComponent, never>;
1138
+ static ɵcmp: i0.ɵɵComponentDeclaration<RTSeeTaskActionComponent, "rtsee-task-action", never, { "action": { "alias": "action"; "required": false; }; }, {}, never, never, true, never>;
1139
+ }
1140
+
1141
+ interface ITaskActionThumbnailWidget {
1142
+ /** matches OzzyTaskAction.name */
1143
+ name: string;
1144
+ /** standalone component accepting `action`, `task`, `expanded`, `toggleExpand` inputs */
1145
+ component: Type<unknown>;
1146
+ }
1147
+ interface ITaskActionPromptWidget {
1148
+ /** matches IOzzyTaskActionPrompt.name */
1149
+ name: string;
1150
+ /** standalone component accepting `prompt`, `task`, `expanded`, `toggleExpand` inputs */
1151
+ component: Type<unknown>;
1152
+ }
1153
+ /**
1154
+ * Registry of custom client-side widgets for task-action-thumbnails and task-action-prompts.
1155
+ * Falls back to DefaultTaskActionThumbnailComponent / DefaultTaskActionPromptComponent.
1156
+ */
1157
+ declare class TaskActionWidgetsService {
1158
+ thumbnailsMap: ITaskActionThumbnailWidget[];
1159
+ promptsMap: ITaskActionPromptWidget[];
1160
+ registerThumbnail(widget: ITaskActionThumbnailWidget): void;
1161
+ registerPrompt(widget: ITaskActionPromptWidget): void;
1162
+ getThumbnailComponentByName(name?: string): Type<unknown>;
1163
+ getPromptComponentByName(name?: string): Type<unknown>;
1164
+ static ɵfac: i0.ɵɵFactoryDeclaration<TaskActionWidgetsService, never>;
1165
+ static ɵprov: i0.ɵɵInjectableDeclaration<TaskActionWidgetsService>;
1166
+ }
1167
+
1168
+ /**
1169
+ * Minified thumbnail representation of an OzzyClientTaskAction.
1170
+ * Renders the registered custom thumbnail widget (or DefaultTaskActionThumbnailComponent)
1171
+ * and expands into the full RTSeeTaskActionComponent view on toggle.
1172
+ */
1173
+ declare class TaskActionThumbnailComponent implements OnInit, OnChanges, OnDestroy {
1174
+ private cdr;
1175
+ private actionWidgets;
1176
+ action?: OzzyClientTaskAction | null;
1177
+ task?: OzzyClientTask | null;
1178
+ expanded: boolean;
1179
+ private subscribedAction;
1180
+ private onChangedBound;
1181
+ private toggleExpandBound;
1182
+ constructor(cdr: ChangeDetectorRef, actionWidgets: TaskActionWidgetsService);
1183
+ ngOnInit(): void;
1184
+ ngOnChanges(changes: SimpleChanges): void;
1185
+ ngOnDestroy(): void;
1186
+ get thumbnailComponent(): Type<unknown>;
1187
+ get thumbnailInputs(): Record<string, unknown>;
1188
+ toggleExpand(): void;
1189
+ private subscribe;
1190
+ private unsubscribe;
1191
+ static ɵfac: i0.ɵɵFactoryDeclaration<TaskActionThumbnailComponent, never>;
1192
+ static ɵcmp: i0.ɵɵComponentDeclaration<TaskActionThumbnailComponent, "rtsee-task-action-thumbnail, task-action-thumbnail", never, { "action": { "alias": "action"; "required": false; }; "task": { "alias": "task"; "required": false; }; }, {}, never, never, true, never>;
1193
+ }
1194
+
1195
+ /**
1196
+ * Host component for a task action prompt.
1197
+ * Renders the registered custom prompt widget (or DefaultTaskActionPromptComponent).
1198
+ */
1199
+ declare class TaskActionPromptComponent {
1200
+ private cdr;
1201
+ private actionWidgets;
1202
+ prompt?: IOzzyTaskActionPrompt | null;
1203
+ task?: OzzyClientTask | null;
1204
+ expanded: boolean;
1205
+ private toggleExpandBound;
1206
+ constructor(cdr: ChangeDetectorRef, actionWidgets: TaskActionWidgetsService);
1207
+ get promptComponent(): Type<unknown>;
1208
+ get promptInputs(): Record<string, unknown>;
1209
+ toggleExpand(): void;
1210
+ static ɵfac: i0.ɵɵFactoryDeclaration<TaskActionPromptComponent, never>;
1211
+ static ɵcmp: i0.ɵɵComponentDeclaration<TaskActionPromptComponent, "rtsee-task-action-prompt, task-action-prompt", never, { "prompt": { "alias": "prompt"; "required": false; }; "task": { "alias": "task"; "required": false; }; }, {}, never, never, true, never>;
1212
+ }
1213
+
1214
+ declare class DefaultTaskActionThumbnailComponent {
1215
+ action?: OzzyClientTaskAction | null;
1216
+ task?: OzzyClientTask | null;
1217
+ expanded: boolean;
1218
+ toggleExpand?: () => void;
1219
+ get statusClass(): string;
1220
+ onToggle(): void;
1221
+ onButtonClick(event: MouseEvent): void;
1222
+ static ɵfac: i0.ɵɵFactoryDeclaration<DefaultTaskActionThumbnailComponent, never>;
1223
+ static ɵcmp: i0.ɵɵComponentDeclaration<DefaultTaskActionThumbnailComponent, "rtsee-default-task-action-thumbnail", never, { "action": { "alias": "action"; "required": false; }; "task": { "alias": "task"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; "toggleExpand": { "alias": "toggleExpand"; "required": false; }; }, {}, never, never, true, never>;
1224
+ }
1225
+
1226
+ /**
1227
+ * Custom task-action thumbnail widget for Story creation / update actions.
1228
+ * Displays story-name, recommendedAge, friendlyUrl, and 2-line truncated
1229
+ * description, moralMeaning, and history with full text tooltip on hover.
1230
+ */
1231
+ declare class StoryTaskActionThumbnailComponent {
1232
+ action?: OzzyClientTaskAction<Partial<IRTSeeStory>, Partial<IRTSeeStory>> | null;
1233
+ task?: OzzyClientTask | null;
1234
+ expanded: boolean;
1235
+ toggleExpand?: () => void;
1236
+ private get storyData();
1237
+ get storyName(): string;
1238
+ get recommendedAge(): string;
1239
+ get friendlyUrl(): string;
1240
+ get description(): string;
1241
+ get moralMeaning(): string;
1242
+ get history(): string;
1243
+ get statusClass(): string;
1244
+ onToggle(): void;
1245
+ onButtonClick(event: MouseEvent): void;
1246
+ static ɵfac: i0.ɵɵFactoryDeclaration<StoryTaskActionThumbnailComponent, never>;
1247
+ static ɵcmp: i0.ɵɵComponentDeclaration<StoryTaskActionThumbnailComponent, "rtsee-story-task-action-thumbnail", never, { "action": { "alias": "action"; "required": false; }; "task": { "alias": "task"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; "toggleExpand": { "alias": "toggleExpand"; "required": false; }; }, {}, never, never, true, never>;
1248
+ }
1249
+
1250
+ /**
1251
+ * Custom task-action thumbnail widget for Slide creation / update actions.
1252
+ * Displays slide number and 2 first truncated lines of slide text with full text tooltip on hover.
1253
+ */
1254
+ declare class SlideTaskActionThumbnailComponent {
1255
+ action?: OzzyClientTaskAction<Partial<IRTSeeStorySlide>, Partial<IRTSeeStorySlide>> | null;
1256
+ task?: OzzyClientTask | null;
1257
+ expanded: boolean;
1258
+ toggleExpand?: () => void;
1259
+ private get slideData();
1260
+ get slideNumber(): number | string;
1261
+ get slideText(): string;
1262
+ get statusClass(): string;
1263
+ onToggle(): void;
1264
+ onButtonClick(event: MouseEvent): void;
1265
+ static ɵfac: i0.ɵɵFactoryDeclaration<SlideTaskActionThumbnailComponent, never>;
1266
+ static ɵcmp: i0.ɵɵComponentDeclaration<SlideTaskActionThumbnailComponent, "rtsee-slide-task-action-thumbnail", never, { "action": { "alias": "action"; "required": false; }; "task": { "alias": "task"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; "toggleExpand": { "alias": "toggleExpand"; "required": false; }; }, {}, never, never, true, never>;
1267
+ }
1268
+
1269
+ declare class DefaultTaskActionPromptComponent {
1270
+ prompt?: IOzzyTaskActionPrompt | null;
1271
+ task?: OzzyClientTask | null;
1272
+ expanded: boolean;
1273
+ toggleExpand?: () => void;
1274
+ responseValue: string;
1275
+ submitting: boolean;
1276
+ get promptDataJson(): string;
1277
+ onToggle(): void;
1278
+ onButtonClick(event: MouseEvent): void;
1279
+ submit(): Promise<void>;
1280
+ static ɵfac: i0.ɵɵFactoryDeclaration<DefaultTaskActionPromptComponent, never>;
1281
+ static ɵcmp: i0.ɵɵComponentDeclaration<DefaultTaskActionPromptComponent, "rtsee-default-task-action-prompt", never, { "prompt": { "alias": "prompt"; "required": false; }; "task": { "alias": "task"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; "toggleExpand": { "alias": "toggleExpand"; "required": false; }; }, {}, never, never, true, never>;
1282
+ }
1283
+
1089
1284
  declare abstract class BaseEventWidgetComponent implements OnInit, OnChanges, OnDestroy {
1090
1285
  protected cd: ChangeDetectorRef;
1091
1286
  private _event;
@@ -1141,5 +1336,77 @@ declare class SlideNumberChangedWidgetComponent extends BaseEventWidgetComponent
1141
1336
  static ɵcmp: i0.ɵɵComponentDeclaration<SlideNumberChangedWidgetComponent, "rtsee-slide-number-changed-widget", never, {}, {}, never, never, true, never>;
1142
1337
  }
1143
1338
 
1144
- export { BaseEventWidgetComponent, EntitiesConfigurationsListComponent, EntitiesListComponent, EventsWidgetsService, FormComponent, GtagService, IllustratorComponent, InteractiveStoryEditorComponent, ManageEntityComponent, ManageEntityConfigurationComponent, MessengerComponent, NgxService, PaymentProductSnippetComponent, PresentationComponent, ProfileComponent, RTSeeAuthComponent, RTSeeConferenceComponent, RTSeeContainerComponent, RTSeeControlsComponent, RTSeeModule, RTSeeTaskComponent, RtseeEntityCommentsComponent, RtseeEntityPreviewComponent, RtseeEntityTagsComponent, RtseeEventsDashboardComponent, RtseePeerComponent, RtseeSettingsComponent, RtseeTagGroupManageComponent, RtseeTagGroupsManageComponent, RtseeTagManageComponent, RtseeTagsAccordionMenuComponent, SlideNumberChangedWidgetComponent, StoryDetailsOpenedWidgetComponent, StoryElementsSectionComponent, StoryReadingStartedWidgetComponent, TranslationsPanelComponent };
1145
- export type { IAccordionItem, RTSeeTagForm, RTSeeTagGroupForm };
1339
+ declare class ProfileOpenedWidgetComponent extends BaseEventWidgetComponent {
1340
+ constructor(cd: ChangeDetectorRef);
1341
+ get userName(): string;
1342
+ get imageUrl(): string | null;
1343
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProfileOpenedWidgetComponent, never>;
1344
+ static ɵcmp: i0.ɵɵComponentDeclaration<ProfileOpenedWidgetComponent, "rtsee-profile-opened-widget", never, {}, {}, never, never, true, never>;
1345
+ }
1346
+
1347
+ declare class ChatOpenedWidgetComponent extends BaseEventWidgetComponent {
1348
+ constructor(cd: ChangeDetectorRef);
1349
+ get chatName(): string;
1350
+ get imageUrl(): string | null;
1351
+ get chatTypeLabel(): string;
1352
+ static ɵfac: i0.ɵɵFactoryDeclaration<ChatOpenedWidgetComponent, never>;
1353
+ static ɵcmp: i0.ɵɵComponentDeclaration<ChatOpenedWidgetComponent, "rtsee-chat-opened-widget", never, {}, {}, never, never, true, never>;
1354
+ }
1355
+
1356
+ declare class ChatCreatedWidgetComponent extends BaseEventWidgetComponent {
1357
+ constructor(cd: ChangeDetectorRef);
1358
+ get chatName(): string;
1359
+ get imageUrl(): string | null;
1360
+ get chatTypeLabel(): string;
1361
+ static ɵfac: i0.ɵɵFactoryDeclaration<ChatCreatedWidgetComponent, never>;
1362
+ static ɵcmp: i0.ɵɵComponentDeclaration<ChatCreatedWidgetComponent, "rtsee-chat-created-widget", never, {}, {}, never, never, true, never>;
1363
+ }
1364
+
1365
+ declare class ChatMemberInviteClickedWidgetComponent extends BaseEventWidgetComponent {
1366
+ constructor(cd: ChangeDetectorRef);
1367
+ get chatName(): string;
1368
+ get imageUrl(): string | null;
1369
+ static ɵfac: i0.ɵɵFactoryDeclaration<ChatMemberInviteClickedWidgetComponent, never>;
1370
+ static ɵcmp: i0.ɵɵComponentDeclaration<ChatMemberInviteClickedWidgetComponent, "rtsee-chat-member-invite-clicked-widget", never, {}, {}, never, never, true, never>;
1371
+ }
1372
+
1373
+ declare class ChatAgentCreatedWidgetComponent extends BaseEventWidgetComponent {
1374
+ constructor(cd: ChangeDetectorRef);
1375
+ get agentName(): string;
1376
+ get chatName(): string;
1377
+ get imageUrl(): string | null;
1378
+ static ɵfac: i0.ɵɵFactoryDeclaration<ChatAgentCreatedWidgetComponent, never>;
1379
+ static ɵcmp: i0.ɵɵComponentDeclaration<ChatAgentCreatedWidgetComponent, "rtsee-chat-agent-created-widget", never, {}, {}, never, never, true, never>;
1380
+ }
1381
+
1382
+ declare class ChatMessageSentWidgetComponent extends BaseEventWidgetComponent {
1383
+ constructor(cd: ChangeDetectorRef);
1384
+ get chatName(): string;
1385
+ get imageUrl(): string | null;
1386
+ static ɵfac: i0.ɵɵFactoryDeclaration<ChatMessageSentWidgetComponent, never>;
1387
+ static ɵcmp: i0.ɵɵComponentDeclaration<ChatMessageSentWidgetComponent, "rtsee-chat-message-sent-widget", never, {}, {}, never, never, true, never>;
1388
+ }
1389
+
1390
+ declare class ApplicationEventWidgetComponent extends BaseEventWidgetComponent {
1391
+ constructor(cd: ChangeDetectorRef);
1392
+ get eventAction(): 'created' | 'updated' | 'deleted';
1393
+ get badgeLabel(): string;
1394
+ get badgeIcon(): string;
1395
+ get badgeClass(): string;
1396
+ get placeholderClass(): string;
1397
+ get appName(): string;
1398
+ get appUrl(): string | null;
1399
+ static ɵfac: i0.ɵɵFactoryDeclaration<ApplicationEventWidgetComponent, never>;
1400
+ static ɵcmp: i0.ɵɵComponentDeclaration<ApplicationEventWidgetComponent, "rtsee-application-event-widget", never, {}, {}, never, never, true, never>;
1401
+ }
1402
+
1403
+ declare class RequestDemoClickedWidgetComponent extends BaseEventWidgetComponent {
1404
+ constructor(cd: ChangeDetectorRef);
1405
+ get title(): string;
1406
+ get pageUrl(): string | null;
1407
+ static ɵfac: i0.ɵɵFactoryDeclaration<RequestDemoClickedWidgetComponent, never>;
1408
+ static ɵcmp: i0.ɵɵComponentDeclaration<RequestDemoClickedWidgetComponent, "rtsee-request-demo-clicked-widget", never, {}, {}, never, never, true, never>;
1409
+ }
1410
+
1411
+ export { ApplicationEventWidgetComponent, BaseEventWidgetComponent, ChatAgentCreatedWidgetComponent, ChatCreatedWidgetComponent, ChatMemberInviteClickedWidgetComponent, ChatMessageSentWidgetComponent, ChatOpenedWidgetComponent, DefaultTaskActionPromptComponent, DefaultTaskActionThumbnailComponent, EntitiesConfigurationsListComponent, EntitiesListComponent, EventsWidgetsService, FormComponent, GtagService, IllustratorComponent, InteractiveStoryEditorComponent, ManageEntityComponent, ManageEntityConfigurationComponent, MessengerComponent, NgxService, PaymentProductSnippetComponent, PresentationComponent, ProfileComponent, ProfileOpenedWidgetComponent, RTSeeAuthComponent, RTSeeConferenceComponent, RTSeeContainerComponent, RTSeeControlsComponent, RTSeeModule, RTSeeTaskActionComponent, RTSeeTaskComponent, RequestDemoClickedWidgetComponent, RtseeEntityCommentsComponent, RtseeEntityPreviewComponent, RtseeEntityTagsComponent, RtseeEventsDashboardComponent, RtseePeerComponent, RtseeSettingsComponent, RtseeTagGroupManageComponent, RtseeTagGroupsManageComponent, RtseeTagManageComponent, RtseeTagsAccordionMenuComponent, SlideNumberChangedWidgetComponent, SlideTaskActionThumbnailComponent, StoryDetailsOpenedWidgetComponent, StoryElementsSectionComponent, StoryReadingStartedWidgetComponent, StoryTaskActionThumbnailComponent, TaskActionPromptComponent, TaskActionThumbnailComponent, TaskActionWidgetsService, TranslationsPanelComponent };
1412
+ export type { IAccordionItem, ITaskActionPromptWidget, ITaskActionThumbnailWidget, RTSeeTagForm, RTSeeTagGroupForm };
@@ -140,6 +140,26 @@
140
140
  display: none;
141
141
  //padding-bottom: $rts-bottom-nav-height + $rts-offset-md;
142
142
  background-color: #fff;
143
+
144
+ .rts-manage-chat-info {
145
+ padding-bottom: $rts-bottom-nav-height + $rts-offset-sm;
146
+ }
147
+
148
+ .rts-messenger-profile-data-container {
149
+ padding-bottom: $rts-bottom-nav-height + $rts-offset-sm;
150
+ }
151
+
152
+ @media screen and (min-width: $rts-break-md) {
153
+
154
+ .rts-manage-chat-info {
155
+ padding-bottom: 0;
156
+ }
157
+
158
+ .rts-messenger-profile-data-container {
159
+ padding-bottom: 0;
160
+ }
161
+
162
+ }
143
163
  }
144
164
 
145
165
  .rtsee-conference-container {
@@ -61,6 +61,61 @@
61
61
  color: #2ecc71;
62
62
  border: 1px solid rgba(46, 204, 113, 0.35);
63
63
  }
64
+
65
+ &.profile-badge {
66
+ background: rgba(168, 85, 247, 0.2);
67
+ color: #c084fc;
68
+ border: 1px solid rgba(168, 85, 247, 0.35);
69
+ }
70
+
71
+ &.chat-badge {
72
+ background: rgba(56, 189, 248, 0.2);
73
+ color: #38bdf8;
74
+ border: 1px solid rgba(56, 189, 248, 0.35);
75
+ }
76
+
77
+ &.created-badge,
78
+ &.app-created-badge {
79
+ background: rgba(16, 185, 129, 0.2);
80
+ color: #34d399;
81
+ border: 1px solid rgba(16, 185, 129, 0.35);
82
+ }
83
+
84
+ &.invite-badge {
85
+ background: rgba(245, 158, 11, 0.2);
86
+ color: #fbbf24;
87
+ border: 1px solid rgba(245, 158, 11, 0.35);
88
+ }
89
+
90
+ &.agent-badge {
91
+ background: rgba(236, 72, 153, 0.2);
92
+ color: #f472b6;
93
+ border: 1px solid rgba(236, 72, 153, 0.35);
94
+ }
95
+
96
+ &.message-badge {
97
+ background: rgba(99, 102, 241, 0.2);
98
+ color: #818cf8;
99
+ border: 1px solid rgba(99, 102, 241, 0.35);
100
+ }
101
+
102
+ &.app-updated-badge {
103
+ background: rgba(59, 130, 246, 0.2);
104
+ color: #60a5fa;
105
+ border: 1px solid rgba(59, 130, 246, 0.35);
106
+ }
107
+
108
+ &.app-deleted-badge {
109
+ background: rgba(239, 68, 68, 0.2);
110
+ color: #f87171;
111
+ border: 1px solid rgba(239, 68, 68, 0.35);
112
+ }
113
+
114
+ &.demo-badge {
115
+ background: rgba(249, 115, 22, 0.2);
116
+ color: #fb923c;
117
+ border: 1px solid rgba(249, 115, 22, 0.35);
118
+ }
64
119
  }
65
120
 
66
121
  .widget-timer {
@@ -108,6 +163,10 @@
108
163
  align-items: center;
109
164
  justify-content: center;
110
165
 
166
+ &.avatar-media {
167
+ border-radius: 50%;
168
+ }
169
+
111
170
  .widget-thumbnail-image {
112
171
  width: 100%;
113
172
  height: 100%;
@@ -145,6 +204,80 @@
145
204
  color: #2ecc71;
146
205
  }
147
206
 
207
+ &.profile-placeholder {
208
+ background: linear-gradient(
209
+ 135deg,
210
+ rgba(168, 85, 247, 0.3) 0%,
211
+ rgba(99, 102, 241, 0.2) 100%
212
+ );
213
+ color: #c084fc;
214
+ }
215
+
216
+ &.chat-placeholder,
217
+ &.message-placeholder {
218
+ background: linear-gradient(
219
+ 135deg,
220
+ rgba(56, 189, 248, 0.3) 0%,
221
+ rgba(99, 102, 241, 0.2) 100%
222
+ );
223
+ color: #38bdf8;
224
+ }
225
+
226
+ &.created-placeholder,
227
+ &.app-created-placeholder {
228
+ background: linear-gradient(
229
+ 135deg,
230
+ rgba(16, 185, 129, 0.3) 0%,
231
+ rgba(56, 189, 248, 0.2) 100%
232
+ );
233
+ color: #34d399;
234
+ }
235
+
236
+ &.invite-placeholder {
237
+ background: linear-gradient(
238
+ 135deg,
239
+ rgba(245, 158, 11, 0.3) 0%,
240
+ rgba(236, 72, 153, 0.2) 100%
241
+ );
242
+ color: #fbbf24;
243
+ }
244
+
245
+ &.agent-placeholder {
246
+ background: linear-gradient(
247
+ 135deg,
248
+ rgba(236, 72, 153, 0.3) 0%,
249
+ rgba(168, 85, 247, 0.2) 100%
250
+ );
251
+ color: #f472b6;
252
+ }
253
+
254
+ &.app-updated-placeholder {
255
+ background: linear-gradient(
256
+ 135deg,
257
+ rgba(59, 130, 246, 0.3) 0%,
258
+ rgba(99, 102, 241, 0.2) 100%
259
+ );
260
+ color: #60a5fa;
261
+ }
262
+
263
+ &.app-deleted-placeholder {
264
+ background: linear-gradient(
265
+ 135deg,
266
+ rgba(239, 68, 68, 0.3) 0%,
267
+ rgba(249, 115, 22, 0.2) 100%
268
+ );
269
+ color: #f87171;
270
+ }
271
+
272
+ &.demo-placeholder {
273
+ background: linear-gradient(
274
+ 135deg,
275
+ rgba(249, 115, 22, 0.3) 0%,
276
+ rgba(245, 158, 11, 0.2) 100%
277
+ );
278
+ color: #fb923c;
279
+ }
280
+
148
281
  .material-icons-outlined {
149
282
  font-size: 22px;
150
283
  }
@@ -7,6 +7,16 @@
7
7
  height: 100%;
8
8
  background: var(--rts-bg-primary);
9
9
 
10
+ &:not(.rts-chat-standalone) {
11
+ display: flex;
12
+ flex-direction: column;
13
+
14
+ .rts-chat-body-container {
15
+ flex: 1;
16
+ min-height: 0;
17
+ }
18
+ }
19
+
10
20
  // ── Standalone Mode (embedded in story player etc.) ──
11
21
  &.rts-chat-standalone {
12
22
  background: transparent;
@@ -159,4 +169,11 @@
159
169
  bottom: 0;
160
170
  }
161
171
  }
172
+
173
+ &.rts-chat-framed {
174
+ .rts-chat-footer-container {
175
+ position: absolute;
176
+ bottom: 0;
177
+ }
178
+ }
162
179
  }
@@ -15,6 +15,10 @@
15
15
  }
16
16
  }
17
17
 
18
+ .rts-messenger-framed & {
19
+ padding-bottom: 0;
20
+ }
21
+
18
22
  @media screen and (min-width: $rtsu-break-md) {
19
23
  padding-bottom: 0;
20
24
  }
@@ -5,8 +5,6 @@
5
5
 
6
6
  // ── Manage Chat Info (create / edit form panel) ──
7
7
  .rts-manage-chat-info {
8
- overflow-y: auto;
9
- max-height: 100vh;
10
8
  -webkit-overflow-scrolling: touch;
11
9
 
12
10
  .rts-form-title {
@@ -42,9 +40,6 @@
42
40
  // ── Chat Info Panel ──
43
41
  .rts-chat-info {
44
42
  padding: $rtsu-space-md;
45
- overflow-y: auto;
46
- max-height: calc(100vh - #{$rts-messenger-header-height});
47
- -webkit-overflow-scrolling: touch;
48
43
 
49
44
  .rts-chat-info-meta {
50
45
  text-align: center;
@@ -168,7 +168,25 @@
168
168
  }
169
169
  }
170
170
 
171
- // ── Tablet+ ──
171
+ // ── Internal Scrollable Mode & Tablet+ ──
172
+ &.rts-messages-list-scrollable {
173
+ overflow: auto;
174
+ overscroll-behavior-y: contain;
175
+
176
+ .rts-messenger-message-wrapper {
177
+ &:last-child,
178
+ &:last-of-type {
179
+ margin-bottom: 0;
180
+ }
181
+
182
+ .rts-messenger-message-inset {
183
+ .rts-messenger-message-sender-image {
184
+ top: $rtsu-space-sm;
185
+ }
186
+ }
187
+ }
188
+ }
189
+
172
190
  @media screen and (min-width: $rtsu-break-md) {
173
191
  overflow: auto;
174
192
  overscroll-behavior-y: contain;