@rtsee/ngx 0.0.10 → 0.0.16
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/bundles/rtsee-ngx.umd.js +294 -8
- package/dist/ngx/bundles/rtsee-ngx.umd.js.map +1 -1
- package/dist/ngx/esm2015/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client/rtsee-events-dashboard-client.component.js +15 -0
- package/dist/ngx/esm2015/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client-thumbnail/rtsee-events-dashboard-client-thumbnail.component.js +30 -0
- package/dist/ngx/esm2015/lib/components/rtsee-events-dashboard/rtsee-events-dashboard.component.js +19 -0
- package/dist/ngx/esm2015/lib/components/rtsee-messenger/chat/chat.component.js +21 -0
- package/dist/ngx/esm2015/lib/components/rtsee-messenger/chat-input/chat-input.component.js +37 -0
- package/dist/ngx/esm2015/lib/components/rtsee-messenger/chat-thumbnail/chat-thumbnail.component.js +19 -0
- package/dist/ngx/esm2015/lib/components/rtsee-messenger/chats-list/chats-list.component.js +24 -0
- package/dist/ngx/esm2015/lib/components/rtsee-messenger/message/message.component.js +22 -0
- package/dist/ngx/esm2015/lib/components/rtsee-messenger/messages-list/messages-list.component.js +21 -0
- package/dist/ngx/esm2015/lib/components/rtsee-messenger/messenger/messenger.component.js +21 -0
- package/dist/ngx/esm2015/lib/components/rtsee-messenger/messenger-header/messenger-header.component.js +18 -0
- package/dist/ngx/esm2015/lib/components/rtsee-settings/rtsee-settings.component.js +3 -2
- package/dist/ngx/esm2015/lib/ngx.module.js +41 -4
- package/dist/ngx/esm2015/lib/services/time-format-helper.service.js +21 -0
- package/dist/ngx/esm2015/public-api.js +3 -1
- package/dist/ngx/fesm2015/rtsee-ngx.js +258 -5
- package/dist/ngx/fesm2015/rtsee-ngx.js.map +1 -1
- package/dist/ngx/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client/rtsee-events-dashboard-client.component.d.ts +5 -0
- package/dist/ngx/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client-thumbnail/rtsee-events-dashboard-client-thumbnail.component.d.ts +14 -0
- package/dist/ngx/lib/components/rtsee-events-dashboard/rtsee-events-dashboard.component.d.ts +7 -0
- package/dist/ngx/lib/components/rtsee-messenger/chat/chat.component.d.ts +8 -0
- package/dist/ngx/lib/components/rtsee-messenger/chat-input/chat-input.component.d.ts +11 -0
- package/dist/ngx/lib/components/rtsee-messenger/chat-thumbnail/chat-thumbnail.component.d.ts +8 -0
- package/dist/ngx/lib/components/rtsee-messenger/chats-list/chats-list.component.d.ts +10 -0
- package/dist/ngx/lib/components/rtsee-messenger/message/message.component.d.ts +9 -0
- package/dist/ngx/lib/components/rtsee-messenger/messages-list/messages-list.component.d.ts +8 -0
- package/dist/ngx/lib/components/rtsee-messenger/messenger/messenger.component.d.ts +7 -0
- package/dist/ngx/lib/components/rtsee-messenger/messenger-header/messenger-header.component.d.ts +7 -0
- package/dist/ngx/lib/ngx.module.d.ts +19 -7
- package/dist/ngx/lib/services/time-format-helper.service.d.ts +6 -0
- package/dist/ngx/public-api.d.ts +2 -0
- package/package.json +3 -2
|
@@ -6,7 +6,11 @@ import * as i2 from '@angular/common';
|
|
|
6
6
|
import { CommonModule } from '@angular/common';
|
|
7
7
|
import * as i3 from '@angular/material/form-field';
|
|
8
8
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
9
|
+
import * as i1$1 from '@angular/forms';
|
|
10
|
+
import { FormGroup, FormControl, Validators, ReactiveFormsModule } from '@angular/forms';
|
|
9
11
|
import { interval } from 'rxjs';
|
|
12
|
+
import * as dayjs from 'dayjs';
|
|
13
|
+
import * as relativeTime from 'dayjs/plugin/relativeTime';
|
|
10
14
|
import { MatIconModule } from '@angular/material/icon';
|
|
11
15
|
import { MatSelectModule } from '@angular/material/select';
|
|
12
16
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
@@ -71,7 +75,7 @@ class RtseeSettingsComponent {
|
|
|
71
75
|
}
|
|
72
76
|
}
|
|
73
77
|
RtseeSettingsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeSettingsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
74
|
-
RtseeSettingsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: RtseeSettingsComponent, selector: "ngx-rtsee-settings", inputs: { rtSee: "rtSee", fullScreenMode: "fullScreenMode" }, ngImport: i0, template: "<div class=\"rtsee-settings\" [ngClass]=\"{'rtsee-full-screen-settings' : fullScreenMode}\">\n <div class=\"rtsee-devices\">\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"audio-input\">Audio Input:</label>\n <select class=\"rtsee-select\" id=\"audio-input\" (click)=\"refreshSelectOptions()\">\n <option *ngFor=\"let device of rtSee.audioInputDevices\" [value]=\"device.deviceId\" (click)=\"setAudioInput(device.deviceId)\">\n {{device.label}}\n </option>\n </select>\n </div>\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"audio-output\">Audio Output:</label>\n <select class=\"rtsee-select\" id=\"audio-output\" (click)=\"refreshSelectOptions()\">\n <option *ngFor=\"let device of rtSee.audioOutputDevices\" [value]=\"device.deviceId\" (click)=\"setAudioOutput(device.deviceId)\">\n {{device.label}}\n </option>\n </select>\n </div>\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"video-input\">Video Input:</label>\n <select class=\"rtsee-select\" id=\"video-input\" (click)=\"refreshSelectOptions()\">\n <option *ngFor=\"let device of rtSee.videoInputDevices\" [value]=\"device.deviceId\" (click)=\"setVideoInput(device.deviceId)\">\n {{device.label}}\n </option>\n </select>\n </div>\n </div>\n</div>\n", styles: [".rtsee-settings{box-sizing:border-box;background-color:#404040;border-bottom:1px solid;max-height:180px;padding:16px 0;overflow:auto;color:#fff}.rtsee-settings .rtsee-device-select-wrapper{padding:0 10px}.rtsee-settings .rtsee-device-select-wrapper .rtsee-select-label{font-family:monospace;display:inline-block;margin:8px}.rtsee-settings.rtsee-full-screen-settings{max-height:unset;overflow:unset}"], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
78
|
+
RtseeSettingsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: RtseeSettingsComponent, selector: "ngx-rtsee-settings", inputs: { rtSee: "rtSee", fullScreenMode: "fullScreenMode" }, ngImport: i0, template: "<div class=\"rtsee-settings\" [ngClass]=\"{'rtsee-full-screen-settings' : fullScreenMode}\">\n <div class=\"rtsee-devices\">\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"audio-input\">Audio Input:</label>\n <select class=\"rtsee-select\" id=\"audio-input\" (click)=\"refreshSelectOptions()\">\n <option *ngFor=\"let device of rtSee.audioInputDevices\" [value]=\"device.deviceId\" (click)=\"setAudioInput(device.deviceId)\">\n {{device.label}}\n </option>\n </select>\n </div>\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"audio-output\">Audio Output:</label>\n <select class=\"rtsee-select\" id=\"audio-output\" (click)=\"refreshSelectOptions()\">\n <option *ngFor=\"let device of rtSee.audioOutputDevices\" [value]=\"device.deviceId\" (click)=\"setAudioOutput(device.deviceId)\">\n {{device.label}}\n </option>\n </select>\n </div>\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"video-input\">Video Input:</label>\n <select class=\"rtsee-select\" id=\"video-input\" (click)=\"refreshSelectOptions()\">\n <option *ngFor=\"let device of rtSee.videoInputDevices\" [value]=\"device.deviceId\" (click)=\"setVideoInput(device.deviceId)\">\n {{device.label}}\n </option>\n </select>\n </div>\n </div>\n</div>\n", styles: [".rtsee-settings{box-sizing:border-box;background-color:#404040;border-bottom:1px solid;max-height:180px;padding:16px 0;overflow:auto;color:#fff}.rtsee-settings .rtsee-device-select-wrapper{padding:0 10px}.rtsee-settings .rtsee-device-select-wrapper .rtsee-select-label{font-family:monospace;display:inline-block;margin:8px}.rtsee-settings.rtsee-full-screen-settings{max-height:unset;overflow:unset}"], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i1$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] });
|
|
75
79
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeSettingsComponent, decorators: [{
|
|
76
80
|
type: Component,
|
|
77
81
|
args: [{
|
|
@@ -196,6 +200,217 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImpor
|
|
|
196
200
|
type: Input
|
|
197
201
|
}] } });
|
|
198
202
|
|
|
203
|
+
class MessengerHeaderComponent {
|
|
204
|
+
}
|
|
205
|
+
MessengerHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessengerHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
206
|
+
MessengerHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: MessengerHeaderComponent, selector: "ngx-messenger-header", inputs: { messenger: "messenger" }, ngImport: i0, template: "<div class=\"rtsee-messenger-header\" [ngClass]=\"{ 'chat-header': messenger.openedChat }\">\n <button *ngIf=\"messenger.openedChat\" (click)=\"messenger.closeChat()\"><span>←</span></button>\n <p class=\"title\" *ngIf=\"!messenger.openedChat\">Wessenger</p>\n <p class=\"title\" *ngIf=\"messenger.openedChat\">{{ messenger.openedChat.name }}</p>\n</div>\n", styles: [""], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
207
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessengerHeaderComponent, decorators: [{
|
|
208
|
+
type: Component,
|
|
209
|
+
args: [{
|
|
210
|
+
selector: 'ngx-messenger-header',
|
|
211
|
+
templateUrl: './messenger-header.component.html',
|
|
212
|
+
styleUrls: ['./messenger-header.component.css'],
|
|
213
|
+
}]
|
|
214
|
+
}], propDecorators: { messenger: [{
|
|
215
|
+
type: Input
|
|
216
|
+
}] } });
|
|
217
|
+
|
|
218
|
+
class ChatThumbnailComponent {
|
|
219
|
+
}
|
|
220
|
+
ChatThumbnailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ChatThumbnailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
221
|
+
ChatThumbnailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: ChatThumbnailComponent, selector: "ngx-chat-thumbnail", inputs: { chat: "chat", messenger: "messenger" }, ngImport: i0, template: "<div class=\"rtsee-chat-thumbnail\" (click)=\"messenger.openChat(chat)\">\n <div class=\"chat-info\">\n <div class=\"rtsee-chat-thumbnail-image\">\n <img [src]=\"chat.imageUrl\" alt=\"chat-img\">\n </div>\n <p class=\"rtsee-chat-thumbnail-name\">{{ chat.name }}</p>\n </div>\n <div class=\"last-message\">\n <p class=\"rtsee-chat-thumbnail-last-message\">{{chat.getLastSenderName()}} {{chat.getLastSentMessageText()}}</p>\n </div>\n</div>\n", styles: [""] });
|
|
222
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ChatThumbnailComponent, decorators: [{
|
|
223
|
+
type: Component,
|
|
224
|
+
args: [{
|
|
225
|
+
selector: 'ngx-chat-thumbnail',
|
|
226
|
+
templateUrl: './chat-thumbnail.component.html',
|
|
227
|
+
styleUrls: ['./chat-thumbnail.component.css'],
|
|
228
|
+
}]
|
|
229
|
+
}], propDecorators: { chat: [{
|
|
230
|
+
type: Input
|
|
231
|
+
}], messenger: [{
|
|
232
|
+
type: Input
|
|
233
|
+
}] } });
|
|
234
|
+
|
|
235
|
+
class ChatsListComponent {
|
|
236
|
+
ngOnInit() {
|
|
237
|
+
console.log(this.chats);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
ChatsListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ChatsListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
241
|
+
ChatsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: ChatsListComponent, selector: "ngx-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 <ngx-chat-thumbnail [chat]=\"chat\" [messenger]=\"messenger\"></ngx-chat-thumbnail>\n <div class=\"rtsee-chat-separator\"></div>\n </div>\n</div>\n", styles: [".rtsee-chat-separator{width:100%;color:#fff;height:1px;opacity:.7}"], components: [{ type: ChatThumbnailComponent, selector: "ngx-chat-thumbnail", inputs: ["chat", "messenger"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
242
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ChatsListComponent, decorators: [{
|
|
243
|
+
type: Component,
|
|
244
|
+
args: [{
|
|
245
|
+
selector: 'ngx-chats-list',
|
|
246
|
+
templateUrl: './chats-list.component.html',
|
|
247
|
+
styleUrls: ['./chats-list.component.css'],
|
|
248
|
+
}]
|
|
249
|
+
}], propDecorators: { messenger: [{
|
|
250
|
+
type: Input
|
|
251
|
+
}], chats: [{
|
|
252
|
+
type: Input
|
|
253
|
+
}] } });
|
|
254
|
+
|
|
255
|
+
class MessageComponent {
|
|
256
|
+
}
|
|
257
|
+
MessageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
258
|
+
MessageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: MessageComponent, selector: "ngx-message", inputs: { chat: "chat", message: "message", member: "member" }, ngImport: i0, template: "<div class=\"rtsee-message-container\" [ngClass]=\"{'rtsee-from-me': message.from !== chat.receiverId}\">\n <div class=\"rtsee-messenger-message\">\n <p>{{ message.text }}</p>\n </div>\n</div>\n", styles: [""], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
259
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessageComponent, decorators: [{
|
|
260
|
+
type: Component,
|
|
261
|
+
args: [{
|
|
262
|
+
selector: 'ngx-message',
|
|
263
|
+
templateUrl: './message.component.html',
|
|
264
|
+
styleUrls: ['./message.component.css'],
|
|
265
|
+
}]
|
|
266
|
+
}], propDecorators: { chat: [{
|
|
267
|
+
type: Input
|
|
268
|
+
}], message: [{
|
|
269
|
+
type: Input
|
|
270
|
+
}], member: [{
|
|
271
|
+
type: Input
|
|
272
|
+
}] } });
|
|
273
|
+
|
|
274
|
+
class MessagesListComponent {
|
|
275
|
+
}
|
|
276
|
+
MessagesListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessagesListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
277
|
+
MessagesListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: MessagesListComponent, selector: "ngx-messages-list", inputs: { chat: "chat", messenger: "messenger" }, ngImport: i0, template: "<div class=\"rtsee-messenger-messages-list\">\n <div class=\"rtsee-messenger-message-wrapper\" *ngFor=\"let message of chat.messages\">\n <ngx-message [message]=\"message\" [chat]=\"chat\"></ngx-message>\n </div>\n</div>\n", styles: [""], components: [{ type: MessageComponent, selector: "ngx-message", inputs: ["chat", "message", "member"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
278
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessagesListComponent, decorators: [{
|
|
279
|
+
type: Component,
|
|
280
|
+
args: [{
|
|
281
|
+
selector: 'ngx-messages-list',
|
|
282
|
+
templateUrl: './messages-list.component.html',
|
|
283
|
+
styleUrls: ['./messages-list.component.css'],
|
|
284
|
+
}]
|
|
285
|
+
}], propDecorators: { chat: [{
|
|
286
|
+
type: Input
|
|
287
|
+
}], messenger: [{
|
|
288
|
+
type: Input
|
|
289
|
+
}] } });
|
|
290
|
+
|
|
291
|
+
class ChatInputComponent {
|
|
292
|
+
constructor() {
|
|
293
|
+
this.sendMessageForm = new FormGroup({
|
|
294
|
+
/* eslint-disable */
|
|
295
|
+
message: new FormControl('', Validators.required),
|
|
296
|
+
/* eslint-enable */
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
sendMessage() {
|
|
300
|
+
var _a, _b;
|
|
301
|
+
const text = (_a = this.sendMessageForm.get('message')) === null || _a === void 0 ? void 0 : _a.value;
|
|
302
|
+
if (!text) {
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
305
|
+
this.chat.sendMessage(text);
|
|
306
|
+
(_b = this.sendMessageForm.get('message')) === null || _b === void 0 ? void 0 : _b.setValue('');
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
ChatInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ChatInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
310
|
+
ChatInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: ChatInputComponent, selector: "ngx-chat-input", inputs: { messenger: "messenger", chat: "chat" }, ngImport: i0, template: "<div class=\"rtsee-chat-input\">\n <div class=\"rtsee-send-message\">\n <form [formGroup]=\"sendMessageForm\">\n <input placeholder=\"Type message...\" type=\"text\" formControlName=\"message\" required>\n <button (click)=\"sendMessage()\"\n class=\"rtsee-send-message-button\"\n type=\"submit\">\n <span>Send</span>\n </button>\n </form>\n </div>\n</div>\n", styles: [""], directives: [{ type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }] });
|
|
311
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ChatInputComponent, decorators: [{
|
|
312
|
+
type: Component,
|
|
313
|
+
args: [{
|
|
314
|
+
selector: 'ngx-chat-input',
|
|
315
|
+
templateUrl: './chat-input.component.html',
|
|
316
|
+
styleUrls: ['./chat-input.component.css'],
|
|
317
|
+
}]
|
|
318
|
+
}], propDecorators: { messenger: [{
|
|
319
|
+
type: Input
|
|
320
|
+
}], chat: [{
|
|
321
|
+
type: Input
|
|
322
|
+
}] } });
|
|
323
|
+
|
|
324
|
+
class ChatComponent {
|
|
325
|
+
}
|
|
326
|
+
ChatComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ChatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
327
|
+
ChatComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: ChatComponent, selector: "ngx-chat", inputs: { chat: "chat", messenger: "messenger" }, ngImport: i0, template: "<div class=\"rtsee-chat\">\n <div class=\"rtsee-chat-body-container\">\n <ngx-messages-list [messenger]=\"messenger\" [chat]=\"chat\"></ngx-messages-list>\n </div>\n <div class=\"input-container\">\n <ngx-chat-input [messenger]=\"messenger\" [chat]=\"chat\"></ngx-chat-input>\n </div>\n</div>\n", styles: [""], components: [{ type: MessagesListComponent, selector: "ngx-messages-list", inputs: ["chat", "messenger"] }, { type: ChatInputComponent, selector: "ngx-chat-input", inputs: ["messenger", "chat"] }] });
|
|
328
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ChatComponent, decorators: [{
|
|
329
|
+
type: Component,
|
|
330
|
+
args: [{
|
|
331
|
+
selector: 'ngx-chat',
|
|
332
|
+
templateUrl: './chat.component.html',
|
|
333
|
+
styleUrls: ['./chat.component.css'],
|
|
334
|
+
}]
|
|
335
|
+
}], propDecorators: { chat: [{
|
|
336
|
+
type: Input
|
|
337
|
+
}], messenger: [{
|
|
338
|
+
type: Input
|
|
339
|
+
}] } });
|
|
340
|
+
|
|
341
|
+
class MessengerComponent {
|
|
342
|
+
}
|
|
343
|
+
MessengerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessengerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
344
|
+
MessengerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: MessengerComponent, selector: "ngx-messenger", inputs: { messenger: "messenger" }, ngImport: i0, template: "<div class=\"rtsee-messenger\">\n <div class=\"rtsee-messenger-header-container\">\n <ngx-messenger-header [messenger]=\"messenger\"></ngx-messenger-header>\n </div>\n <div class=\"rtsee-messenger-body-container\">\n <ngx-chats-list *ngIf=\"!messenger.openedChat\" [chats]=\"messenger.chats\" [messenger]=\"messenger\"></ngx-chats-list>\n <ngx-chat *ngIf=\"messenger.openedChat\" [messenger]=\"messenger\" [chat]=\"messenger.openedChat\"></ngx-chat>\n </div>\n</div>\n\n\n", styles: ["*{box-sizing:border-box}.rtsee-messenger{max-width:450px;background-color:#333;min-width:320px;min-height:520px;padding:58px 8px 8px;color:#fff;position:relative;border-radius:8px;overflow:hidden}.rtsee-messenger .rtsee-messenger-header-container{position:absolute;top:0;left:0;width:100%;height:50px}"], components: [{ type: MessengerHeaderComponent, selector: "ngx-messenger-header", inputs: ["messenger"] }, { type: ChatsListComponent, selector: "ngx-chats-list", inputs: ["messenger", "chats"] }, { type: ChatComponent, selector: "ngx-chat", inputs: ["chat", "messenger"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
345
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessengerComponent, decorators: [{
|
|
346
|
+
type: Component,
|
|
347
|
+
args: [{
|
|
348
|
+
selector: 'ngx-messenger',
|
|
349
|
+
templateUrl: './messenger.component.html',
|
|
350
|
+
styleUrls: ['./messenger.component.scss'],
|
|
351
|
+
}]
|
|
352
|
+
}], propDecorators: { messenger: [{
|
|
353
|
+
type: Input
|
|
354
|
+
}] } });
|
|
355
|
+
|
|
356
|
+
dayjs.extend(relativeTime);
|
|
357
|
+
class TimeFormatHelperService {
|
|
358
|
+
toAgo(time) {
|
|
359
|
+
/* eslint-disable */
|
|
360
|
+
return dayjs(time).fromNow();
|
|
361
|
+
/* eslint-enable */
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
TimeFormatHelperService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: TimeFormatHelperService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
365
|
+
TimeFormatHelperService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: TimeFormatHelperService, providedIn: 'root' });
|
|
366
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: TimeFormatHelperService, decorators: [{
|
|
367
|
+
type: Injectable,
|
|
368
|
+
args: [{
|
|
369
|
+
providedIn: 'root',
|
|
370
|
+
}]
|
|
371
|
+
}] });
|
|
372
|
+
|
|
373
|
+
class RtseeEventsDashboardClientThumbnailComponent {
|
|
374
|
+
constructor(timeFormatService) {
|
|
375
|
+
this.timeFormatService = timeFormatService;
|
|
376
|
+
}
|
|
377
|
+
ngOnInit() {
|
|
378
|
+
console.log(this.client);
|
|
379
|
+
}
|
|
380
|
+
openChat() {
|
|
381
|
+
this.dashboard.openChat(this.client);
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
RtseeEventsDashboardClientThumbnailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeEventsDashboardClientThumbnailComponent, deps: [{ token: TimeFormatHelperService }], target: i0.ɵɵFactoryTarget.Component });
|
|
385
|
+
RtseeEventsDashboardClientThumbnailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: RtseeEventsDashboardClientThumbnailComponent, selector: "ngx-rtsee-events-dashboard-client-thumbnail", inputs: { dashboard: "dashboard", client: "client" }, ngImport: i0, template: "<div class=\"rtsee-dashboard-client-thumbnail\">\n <span class=\"rtsee-dashboard-client-id\" *ngIf=\"client.name\">{{ client.id }}</span>\n <span class=\"rtsee-dashboard-client-name\">{{ client.name || client.id }}</span>\n <div class=\"rtsee-dashboard-client-live\" *ngIf=\"client.isConnected\"></div>\n <div class=\"rtsee-dashboard-client-thumbnail-events\">\n <details *ngIf=\"client.events && client.events.length\">\n <summary>Last event: {{client.events[0].name}} ({{ timeFormatService.toAgo(client.events[0].createdAt) }})</summary>\n <ul>\n <li *ngFor=\"let event of client.events.slice(1, client.events.length)\" class=\"rtsee-dashboard-client-thumbnail-event\">\n <span>{{event.name}}</span>\n <span> </span>\n <span>{{ timeFormatService.toAgo(event.createdAt) }}</span>\n </li>\n </ul>\n </details>\n <div class=\"rtsee-dashboard-client-thumbnail-actions\">\n <button (click)=\"openChat()\">Chat</button>\n </div>\n </div>\n</div>\n", styles: [".rtsee-dashboard-client-thumbnail{position:relative}.rtsee-dashboard-client-thumbnail .rtsee-dashboard-client-thumbnail-events{padding:16px 0}.rtsee-dashboard-client-thumbnail .rtsee-dashboard-client-live{top:16px;right:16px;position:absolute;border-radius:50%;width:10px;height:10px;background:#32cd32}"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
386
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeEventsDashboardClientThumbnailComponent, decorators: [{
|
|
387
|
+
type: Component,
|
|
388
|
+
args: [{
|
|
389
|
+
selector: 'ngx-rtsee-events-dashboard-client-thumbnail',
|
|
390
|
+
templateUrl: './rtsee-events-dashboard-client-thumbnail.component.html',
|
|
391
|
+
styleUrls: ['./rtsee-events-dashboard-client-thumbnail.component.scss'],
|
|
392
|
+
}]
|
|
393
|
+
}], ctorParameters: function () { return [{ type: TimeFormatHelperService }]; }, propDecorators: { dashboard: [{
|
|
394
|
+
type: Input
|
|
395
|
+
}], client: [{
|
|
396
|
+
type: Input
|
|
397
|
+
}] } });
|
|
398
|
+
|
|
399
|
+
class RtseeEventsDashboardComponent {
|
|
400
|
+
}
|
|
401
|
+
RtseeEventsDashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeEventsDashboardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
402
|
+
RtseeEventsDashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", 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", styles: [".rtsee-events-dashboard{background-color:#333;padding:16px}.rtsee-events-dashboard .rtsee-dashboard-client-id{display:inline-block;font-weight:600}.rtsee-events-dashboard .rtsee-events-dashboard-client-thumbnails .rtsee-events-dashboard-client-thumbnail-wrapper{margin-bottom:16px}.rtsee-events-dashboard .rtsee-events-dashboard-client-thumbnails .rtsee-events-dashboard-client-thumbnail-wrapper:last-of-type{margin-bottom:0}"], components: [{ type: RtseeEventsDashboardClientThumbnailComponent, selector: "ngx-rtsee-events-dashboard-client-thumbnail", inputs: ["dashboard", "client"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
403
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeEventsDashboardComponent, decorators: [{
|
|
404
|
+
type: Component,
|
|
405
|
+
args: [{
|
|
406
|
+
selector: 'ngx-rtsee-events-dashboard',
|
|
407
|
+
templateUrl: './rtsee-events-dashboard.component.html',
|
|
408
|
+
styleUrls: ['./rtsee-events-dashboard.component.scss'],
|
|
409
|
+
}]
|
|
410
|
+
}], propDecorators: { eventsDashboard: [{
|
|
411
|
+
type: Input
|
|
412
|
+
}] } });
|
|
413
|
+
|
|
199
414
|
class RtseePeersListComponent {
|
|
200
415
|
}
|
|
201
416
|
RtseePeersListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseePeersListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -209,6 +424,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImpor
|
|
|
209
424
|
}]
|
|
210
425
|
}] });
|
|
211
426
|
|
|
427
|
+
class RtseeEventsDashboardClientComponent {
|
|
428
|
+
}
|
|
429
|
+
RtseeEventsDashboardClientComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeEventsDashboardClientComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
430
|
+
RtseeEventsDashboardClientComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: RtseeEventsDashboardClientComponent, selector: "ngx-rtsee-events-dashboard-client", ngImport: i0, template: "<p>rtsee-events-dashboard-client works!</p>\n", styles: [""] });
|
|
431
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeEventsDashboardClientComponent, decorators: [{
|
|
432
|
+
type: Component,
|
|
433
|
+
args: [{
|
|
434
|
+
selector: 'ngx-rtsee-events-dashboard-client',
|
|
435
|
+
templateUrl: './rtsee-events-dashboard-client.component.html',
|
|
436
|
+
styleUrls: ['./rtsee-events-dashboard-client.component.css'],
|
|
437
|
+
}]
|
|
438
|
+
}] });
|
|
439
|
+
|
|
212
440
|
class RTSeeModule {
|
|
213
441
|
}
|
|
214
442
|
RTSeeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RTSeeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
@@ -217,12 +445,24 @@ RTSeeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "1
|
|
|
217
445
|
RtseePeerComponent,
|
|
218
446
|
RtseeSoundbarComponent,
|
|
219
447
|
RtseePeersListComponent,
|
|
220
|
-
RtseeSettingsComponent
|
|
448
|
+
RtseeSettingsComponent,
|
|
449
|
+
MessengerComponent,
|
|
450
|
+
ChatComponent,
|
|
451
|
+
MessageComponent,
|
|
452
|
+
ChatsListComponent,
|
|
453
|
+
MessagesListComponent,
|
|
454
|
+
ChatThumbnailComponent,
|
|
455
|
+
ChatInputComponent,
|
|
456
|
+
MessengerHeaderComponent,
|
|
457
|
+
RtseeEventsDashboardComponent,
|
|
458
|
+
RtseeEventsDashboardClientComponent,
|
|
459
|
+
RtseeEventsDashboardClientThumbnailComponent], imports: [CommonModule,
|
|
221
460
|
MatIconModule,
|
|
222
461
|
MatButtonModule,
|
|
223
462
|
MatSelectModule,
|
|
224
463
|
BrowserAnimationsModule,
|
|
225
|
-
MatFormFieldModule
|
|
464
|
+
MatFormFieldModule,
|
|
465
|
+
ReactiveFormsModule], exports: [RTSeeComponent, MessengerComponent, RtseeEventsDashboardComponent] });
|
|
226
466
|
RTSeeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RTSeeModule, imports: [[
|
|
227
467
|
CommonModule,
|
|
228
468
|
MatIconModule,
|
|
@@ -230,6 +470,7 @@ RTSeeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "1
|
|
|
230
470
|
MatSelectModule,
|
|
231
471
|
BrowserAnimationsModule,
|
|
232
472
|
MatFormFieldModule,
|
|
473
|
+
ReactiveFormsModule,
|
|
233
474
|
]] });
|
|
234
475
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RTSeeModule, decorators: [{
|
|
235
476
|
type: NgModule,
|
|
@@ -241,6 +482,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImpor
|
|
|
241
482
|
RtseeSoundbarComponent,
|
|
242
483
|
RtseePeersListComponent,
|
|
243
484
|
RtseeSettingsComponent,
|
|
485
|
+
MessengerComponent,
|
|
486
|
+
ChatComponent,
|
|
487
|
+
MessageComponent,
|
|
488
|
+
ChatsListComponent,
|
|
489
|
+
MessagesListComponent,
|
|
490
|
+
ChatThumbnailComponent,
|
|
491
|
+
ChatInputComponent,
|
|
492
|
+
MessengerHeaderComponent,
|
|
493
|
+
RtseeEventsDashboardComponent,
|
|
494
|
+
RtseeEventsDashboardClientComponent,
|
|
495
|
+
RtseeEventsDashboardClientThumbnailComponent,
|
|
244
496
|
],
|
|
245
497
|
imports: [
|
|
246
498
|
CommonModule,
|
|
@@ -249,8 +501,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImpor
|
|
|
249
501
|
MatSelectModule,
|
|
250
502
|
BrowserAnimationsModule,
|
|
251
503
|
MatFormFieldModule,
|
|
504
|
+
ReactiveFormsModule,
|
|
252
505
|
],
|
|
253
|
-
exports: [RTSeeComponent],
|
|
506
|
+
exports: [RTSeeComponent, MessengerComponent, RtseeEventsDashboardComponent],
|
|
254
507
|
}]
|
|
255
508
|
}] });
|
|
256
509
|
|
|
@@ -262,5 +515,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImpor
|
|
|
262
515
|
* Generated bundle index. Do not edit.
|
|
263
516
|
*/
|
|
264
517
|
|
|
265
|
-
export { NgxService, RTSeeComponent, RTSeeControlsComponent, RTSeeModule };
|
|
518
|
+
export { MessengerComponent, NgxService, RTSeeComponent, RTSeeControlsComponent, RTSeeModule, RtseeEventsDashboardComponent };
|
|
266
519
|
//# sourceMappingURL=rtsee-ngx.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rtsee-ngx.js","sources":["../../../projects/ngx/src/lib/ngx.service.ts","../../../projects/ngx/src/lib/components/rtsee/rtsee-controls/rtsee-controls.component.ts","../../../projects/ngx/src/lib/components/rtsee/rtsee-controls/rtsee-controls.component.html","../../../projects/ngx/src/lib/components/rtsee-settings/rtsee-settings.component.ts","../../../projects/ngx/src/lib/components/rtsee-settings/rtsee-settings.component.html","../../../projects/ngx/src/lib/components/rtsee-soundbar/rtsee-soundbar.component.ts","../../../projects/ngx/src/lib/components/rtsee-soundbar/rtsee-soundbar.component.html","../../../projects/ngx/src/lib/components/rtsee-peer/rtsee-peer.component.ts","../../../projects/ngx/src/lib/components/rtsee-peer/rtsee-peer.component.html","../../../projects/ngx/src/lib/components/rtsee/rtsee.component.ts","../../../projects/ngx/src/lib/components/rtsee/rtsee.component.html","../../../projects/ngx/src/lib/components/rtsee-peers-list/rtsee-peers-list.component.ts","../../../projects/ngx/src/lib/components/rtsee-peers-list/rtsee-peers-list.component.html","../../../projects/ngx/src/lib/ngx.module.ts","../../../projects/ngx/src/public-api.ts","../../../projects/ngx/src/rtsee-ngx.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NgxService {\n lol: string;\n constructor() {\n this.lol = 'lol';\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { RTSee } from '@rtsee/core';\n\n@Component({\n selector: 'ngx-rtsee-controls',\n templateUrl: './rtsee-controls.component.html',\n styleUrls: ['./rtsee-controls.component.scss'],\n})\nexport class RTSeeControlsComponent {\n @Input() rtsee!: RTSee;\n @Input() fullScreenMode?: boolean;\n\n onPresentClicked() {\n return this.rtsee.isPresenter\n ? this.rtsee.stopScreenShare()\n : this.rtsee.startScreenShare();\n }\n}\n","<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","import { Component, Input, OnInit } from '@angular/core';\nimport { RTSee } from '@rtsee/core';\n\n@Component({\n selector: 'ngx-rtsee-settings',\n templateUrl: './rtsee-settings.component.html',\n styleUrls: ['./rtsee-settings.component.scss'],\n})\nexport class RtseeSettingsComponent implements OnInit {\n availableAudioInputDevices: MediaDeviceInfo[];\n availableVideoInputDevices: MediaDeviceInfo[];\n availableAudioOutputDevices: MediaDeviceInfo[];\n\n @Input() rtSee!: RTSee;\n @Input() fullScreenMode!: boolean;\n constructor() {\n this.availableAudioInputDevices = [];\n this.availableVideoInputDevices = [];\n this.availableAudioOutputDevices = [];\n }\n\n ngOnInit(): void {\n this.refreshSelectOptions();\n }\n\n refreshSelectOptions() {\n void this.rtSee.refreshMediaDevicesList();\n }\n\n setAudioInput(deviceId: string) {\n this.rtSee.setAudioInputDevice(deviceId);\n console.log(deviceId);\n }\n\n setAudioOutput(deviceId: string) {\n this.rtSee.setAudioOutputDevice(deviceId);\n }\n\n setVideoInput(deviceId: string) {\n this.rtSee.setVideoInputDevice(deviceId);\n }\n}\n","<div class=\"rtsee-settings\" [ngClass]=\"{'rtsee-full-screen-settings' : fullScreenMode}\">\n <div class=\"rtsee-devices\">\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"audio-input\">Audio Input:</label>\n <select class=\"rtsee-select\" id=\"audio-input\" (click)=\"refreshSelectOptions()\">\n <option *ngFor=\"let device of rtSee.audioInputDevices\" [value]=\"device.deviceId\" (click)=\"setAudioInput(device.deviceId)\">\n {{device.label}}\n </option>\n </select>\n </div>\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"audio-output\">Audio Output:</label>\n <select class=\"rtsee-select\" id=\"audio-output\" (click)=\"refreshSelectOptions()\">\n <option *ngFor=\"let device of rtSee.audioOutputDevices\" [value]=\"device.deviceId\" (click)=\"setAudioOutput(device.deviceId)\">\n {{device.label}}\n </option>\n </select>\n </div>\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"video-input\">Video Input:</label>\n <select class=\"rtsee-select\" id=\"video-input\" (click)=\"refreshSelectOptions()\">\n <option *ngFor=\"let device of rtSee.videoInputDevices\" [value]=\"device.deviceId\" (click)=\"setVideoInput(device.deviceId)\">\n {{device.label}}\n </option>\n </select>\n </div>\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { RTSeePeerConnection } from '@rtsee/core';\nimport { interval } from 'rxjs';\n\n@Component({\n selector: 'ngx-rtsee-soundbar',\n templateUrl: './rtsee-soundbar.component.html',\n styleUrls: ['./rtsee-soundbar.component.scss'],\n})\nexport class RtseeSoundbarComponent implements OnInit {\n intervalLength: number;\n noiceLevel: number;\n scaleOneLevel: number;\n scaleTwoLevel: number;\n scaleThreeLevel: number;\n\n @Input() peer!: RTSeePeerConnection;\n constructor() {\n this.intervalLength = 1000;\n this.noiceLevel = 0;\n this.scaleOneLevel = 0;\n this.scaleTwoLevel = 0;\n this.scaleThreeLevel = 0;\n }\n\n ngOnInit(): void {\n this.startSoundMeterListening();\n }\n\n startSoundMeterListening() {\n const step = interval(1000 / 10);\n step.subscribe(() => {\n if (!this.peer.soundMeter || !this.peer.soundMeter.level) {\n this.noiceLevel = 0;\n } else {\n this.noiceLevel = this.peer.soundMeter?.level * 100 || 0;\n }\n\n this.setSoundMeterHeights();\n });\n }\n\n setSoundMeterHeights() {\n const ZERO_LEVEL = 25;\n const SCALE_STEP = 25;\n const SCALE_ONE_TOP = ZERO_LEVEL + SCALE_STEP;\n const SCALE_TWO_TOP = SCALE_ONE_TOP + SCALE_STEP;\n\n if (!this.peer || !this.peer.soundMeter || this.noiceLevel < ZERO_LEVEL) {\n this.scaleOneLevel = 0;\n this.scaleTwoLevel = 0;\n this.scaleThreeLevel = 0;\n }\n\n const scaleOneValue = ((this.noiceLevel - ZERO_LEVEL) / SCALE_STEP) * 100;\n const scaleTwoValue =\n ((this.noiceLevel - SCALE_ONE_TOP) / SCALE_STEP) * 100;\n const scaleThreeValue =\n ((this.noiceLevel - SCALE_TWO_TOP) / SCALE_STEP) * 100;\n\n this.scaleOneLevel = scaleOneValue > 0 ? scaleOneValue : 0;\n this.scaleTwoLevel = scaleTwoValue > 0 ? scaleTwoValue : 0;\n this.scaleThreeLevel = scaleThreeValue > 0 ? scaleTwoValue : 0;\n }\n}\n","<div class=\"rtsee-soundbar\">\n <div class=\"rtsee-soundbar-scale\">\n <div class=\"rtsee-soundbar-scale-item\">\n <div class=\"rtsee-soundbar-scale-item-level rtsee-soundbar-scale-item-level-one\"\n [style.height.%]=\"scaleOneLevel\"\n ></div>\n </div>\n <div class=\"rtsee-soundbar-scale-item\">\n <div class=\"rtsee-soundbar-scale-item-level rtsee-soundbar-scale-item-level-two\"\n [style.height.%]=\"scaleTwoLevel\"\n ></div>\n </div>\n <div class=\"rtsee-soundbar-scale-item\">\n <div class=\"rtsee-soundbar-scale-item-level rtsee-soundbar-scale-item-level-three\"\n [style.height.%]=\"scaleThreeLevel\"\n ></div>\n </div>\n </div>\n</div>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { RTSeePeerConnection } from '@rtsee/core';\n\n@Component({\n selector: 'ngx-rtsee-peer',\n templateUrl: './rtsee-peer.component.html',\n styleUrls: ['./rtsee-peer.component.scss'],\n})\nexport class RtseePeerComponent implements AfterViewInit {\n intervalLength: number;\n noiceLevel: number;\n\n @ViewChild('audioOutput') audioOutput?: ElementRef;\n @ViewChild('videoOutput') videoOutput?: ElementRef;\n @Input() peer!: RTSeePeerConnection;\n\n constructor() {\n this.intervalLength = 1000;\n this.noiceLevel = 0;\n }\n\n ngAfterViewInit(): void {\n if (!this.audioOutput) {\n return;\n }\n this.peer.setAudioOutputElement(\n this.audioOutput.nativeElement as HTMLAudioElement\n );\n }\n}\n","<div class=\"rtsee-peer\" [ngClass]=\"{\n'rtsee-peer-video-disabled': !peer.remoteVideoStream || !peer.camera\n}\">\n <div class=\"rtsee-peer-content\">\n <div class=\"rtsee-peer-photo\" *ngIf=\"!peer.camera\">\n <div class=\"rtsee-peer-photo-wrapper\">\n <div *ngIf=\"peer.imageUrl\"\n [style.background-image]=\"'url(' + peer.imageUrl + ')'\"\n class=\"rtsee-peer-photo-image\"\n ></div>\n <img *ngIf=\"!peer.imageUrl\" [src]=\"\" alt=\"peer_photo\" class=\"rtsee-peer-photo-image\">\n </div>\n <div class=\"rtsee-peer-info\">\n <p class=\"rtsee-peer-name\" *ngIf=\"peer.name\">{{peer.name}}</p>\n </div>\n </div>\n <video #videoOutput\n class=\"rtsee-peer-video\"\n [autoplay]=\"true\"\n [srcObject]=\"peer.remoteVideoStream\"\n playsinline=\"true\"\n >\n </video>\n <div class=\"rtsee-peer-soundbar\">\n <ngx-rtsee-soundbar [peer]=\"peer\"></ngx-rtsee-soundbar>\n </div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { RTSee } from '@rtsee/core';\n\n@Component({\n selector: 'ngx-rtsee',\n templateUrl: './rtsee.component.html',\n styleUrls: ['./rtsee.component.scss'],\n})\nexport class RTSeeComponent {\n settingsViewEnabled: boolean;\n fullScreenModeEnabled: boolean;\n\n @Input() rtSee!: RTSee;\n constructor() {\n this.settingsViewEnabled = false;\n this.fullScreenModeEnabled = false;\n }\n\n toggleSettings() {\n this.settingsViewEnabled = !this.settingsViewEnabled;\n }\n\n toggleFullScreenMode() {\n this.fullScreenModeEnabled = !this.fullScreenModeEnabled;\n }\n}\n","<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","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngx-rtsee-peers-list',\n templateUrl: './rtsee-peers-list.component.html',\n styleUrls: ['./rtsee-peers-list.component.scss'],\n})\nexport class RtseePeersListComponent {}\n","<p>rtsee-peers-list works!</p>\n","import { NgModule } from '@angular/core';\nimport { RTSeeComponent } from './components/rtsee/rtsee.component';\nimport { RTSeeControlsComponent } from './components/rtsee/rtsee-controls/rtsee-controls.component';\nimport { CommonModule } from '@angular/common';\nimport { RtseePeerComponent } from './components/rtsee-peer/rtsee-peer.component';\nimport { RtseeSoundbarComponent } from './components/rtsee-soundbar/rtsee-soundbar.component';\nimport { RtseePeersListComponent } from './components/rtsee-peers-list/rtsee-peers-list.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { RtseeSettingsComponent } from './components/rtsee-settings/rtsee-settings.component';\nimport { MatSelectModule } from '@angular/material/select';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\n@NgModule({\n declarations: [\n RTSeeComponent,\n RTSeeControlsComponent,\n RtseePeerComponent,\n RtseeSoundbarComponent,\n RtseePeersListComponent,\n RtseeSettingsComponent,\n ],\n imports: [\n CommonModule,\n MatIconModule,\n MatButtonModule,\n MatSelectModule,\n BrowserAnimationsModule,\n MatFormFieldModule,\n ],\n exports: [RTSeeComponent],\n})\nexport class RTSeeModule {}\n","/*\n * Public API Surface of ngx\n */\n\nexport * from './lib/ngx.service';\nexport * from './lib/components/rtsee/rtsee-controls/rtsee-controls.component';\nexport * from './lib/components/rtsee/rtsee.component';\nexport * from './lib/ngx.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rtsee-ngx.js","sources":["../../../projects/ngx/src/lib/ngx.service.ts","../../../projects/ngx/src/lib/components/rtsee/rtsee-controls/rtsee-controls.component.ts","../../../projects/ngx/src/lib/components/rtsee/rtsee-controls/rtsee-controls.component.html","../../../projects/ngx/src/lib/components/rtsee-settings/rtsee-settings.component.ts","../../../projects/ngx/src/lib/components/rtsee-settings/rtsee-settings.component.html","../../../projects/ngx/src/lib/components/rtsee-soundbar/rtsee-soundbar.component.ts","../../../projects/ngx/src/lib/components/rtsee-soundbar/rtsee-soundbar.component.html","../../../projects/ngx/src/lib/components/rtsee-peer/rtsee-peer.component.ts","../../../projects/ngx/src/lib/components/rtsee-peer/rtsee-peer.component.html","../../../projects/ngx/src/lib/components/rtsee/rtsee.component.ts","../../../projects/ngx/src/lib/components/rtsee/rtsee.component.html","../../../projects/ngx/src/lib/components/rtsee-messenger/messenger-header/messenger-header.component.ts","../../../projects/ngx/src/lib/components/rtsee-messenger/messenger-header/messenger-header.component.html","../../../projects/ngx/src/lib/components/rtsee-messenger/chat-thumbnail/chat-thumbnail.component.ts","../../../projects/ngx/src/lib/components/rtsee-messenger/chat-thumbnail/chat-thumbnail.component.html","../../../projects/ngx/src/lib/components/rtsee-messenger/chats-list/chats-list.component.ts","../../../projects/ngx/src/lib/components/rtsee-messenger/chats-list/chats-list.component.html","../../../projects/ngx/src/lib/components/rtsee-messenger/message/message.component.ts","../../../projects/ngx/src/lib/components/rtsee-messenger/message/message.component.html","../../../projects/ngx/src/lib/components/rtsee-messenger/messages-list/messages-list.component.ts","../../../projects/ngx/src/lib/components/rtsee-messenger/messages-list/messages-list.component.html","../../../projects/ngx/src/lib/components/rtsee-messenger/chat-input/chat-input.component.ts","../../../projects/ngx/src/lib/components/rtsee-messenger/chat-input/chat-input.component.html","../../../projects/ngx/src/lib/components/rtsee-messenger/chat/chat.component.ts","../../../projects/ngx/src/lib/components/rtsee-messenger/chat/chat.component.html","../../../projects/ngx/src/lib/components/rtsee-messenger/messenger/messenger.component.ts","../../../projects/ngx/src/lib/components/rtsee-messenger/messenger/messenger.component.html","../../../projects/ngx/src/lib/services/time-format-helper.service.ts","../../../projects/ngx/src/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client-thumbnail/rtsee-events-dashboard-client-thumbnail.component.ts","../../../projects/ngx/src/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client-thumbnail/rtsee-events-dashboard-client-thumbnail.component.html","../../../projects/ngx/src/lib/components/rtsee-events-dashboard/rtsee-events-dashboard.component.ts","../../../projects/ngx/src/lib/components/rtsee-events-dashboard/rtsee-events-dashboard.component.html","../../../projects/ngx/src/lib/components/rtsee-peers-list/rtsee-peers-list.component.ts","../../../projects/ngx/src/lib/components/rtsee-peers-list/rtsee-peers-list.component.html","../../../projects/ngx/src/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client/rtsee-events-dashboard-client.component.ts","../../../projects/ngx/src/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client/rtsee-events-dashboard-client.component.html","../../../projects/ngx/src/lib/ngx.module.ts","../../../projects/ngx/src/public-api.ts","../../../projects/ngx/src/rtsee-ngx.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NgxService {\n lol: string;\n constructor() {\n this.lol = 'lol';\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { RTSee } from '@rtsee/core';\n\n@Component({\n selector: 'ngx-rtsee-controls',\n templateUrl: './rtsee-controls.component.html',\n styleUrls: ['./rtsee-controls.component.scss'],\n})\nexport class RTSeeControlsComponent {\n @Input() rtsee!: RTSee;\n @Input() fullScreenMode?: boolean;\n\n onPresentClicked() {\n return this.rtsee.isPresenter\n ? this.rtsee.stopScreenShare()\n : this.rtsee.startScreenShare();\n }\n}\n","<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","import { Component, Input, OnInit } from '@angular/core';\nimport { RTSee } from '@rtsee/core';\n\n@Component({\n selector: 'ngx-rtsee-settings',\n templateUrl: './rtsee-settings.component.html',\n styleUrls: ['./rtsee-settings.component.scss'],\n})\nexport class RtseeSettingsComponent implements OnInit {\n availableAudioInputDevices: MediaDeviceInfo[];\n availableVideoInputDevices: MediaDeviceInfo[];\n availableAudioOutputDevices: MediaDeviceInfo[];\n\n @Input() rtSee!: RTSee;\n @Input() fullScreenMode!: boolean;\n constructor() {\n this.availableAudioInputDevices = [];\n this.availableVideoInputDevices = [];\n this.availableAudioOutputDevices = [];\n }\n\n ngOnInit(): void {\n this.refreshSelectOptions();\n }\n\n refreshSelectOptions() {\n void this.rtSee.refreshMediaDevicesList();\n }\n\n setAudioInput(deviceId: string) {\n this.rtSee.setAudioInputDevice(deviceId);\n console.log(deviceId);\n }\n\n setAudioOutput(deviceId: string) {\n this.rtSee.setAudioOutputDevice(deviceId);\n }\n\n setVideoInput(deviceId: string) {\n this.rtSee.setVideoInputDevice(deviceId);\n }\n}\n","<div class=\"rtsee-settings\" [ngClass]=\"{'rtsee-full-screen-settings' : fullScreenMode}\">\n <div class=\"rtsee-devices\">\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"audio-input\">Audio Input:</label>\n <select class=\"rtsee-select\" id=\"audio-input\" (click)=\"refreshSelectOptions()\">\n <option *ngFor=\"let device of rtSee.audioInputDevices\" [value]=\"device.deviceId\" (click)=\"setAudioInput(device.deviceId)\">\n {{device.label}}\n </option>\n </select>\n </div>\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"audio-output\">Audio Output:</label>\n <select class=\"rtsee-select\" id=\"audio-output\" (click)=\"refreshSelectOptions()\">\n <option *ngFor=\"let device of rtSee.audioOutputDevices\" [value]=\"device.deviceId\" (click)=\"setAudioOutput(device.deviceId)\">\n {{device.label}}\n </option>\n </select>\n </div>\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"video-input\">Video Input:</label>\n <select class=\"rtsee-select\" id=\"video-input\" (click)=\"refreshSelectOptions()\">\n <option *ngFor=\"let device of rtSee.videoInputDevices\" [value]=\"device.deviceId\" (click)=\"setVideoInput(device.deviceId)\">\n {{device.label}}\n </option>\n </select>\n </div>\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { RTSeePeerConnection } from '@rtsee/core';\nimport { interval } from 'rxjs';\n\n@Component({\n selector: 'ngx-rtsee-soundbar',\n templateUrl: './rtsee-soundbar.component.html',\n styleUrls: ['./rtsee-soundbar.component.scss'],\n})\nexport class RtseeSoundbarComponent implements OnInit {\n intervalLength: number;\n noiceLevel: number;\n scaleOneLevel: number;\n scaleTwoLevel: number;\n scaleThreeLevel: number;\n\n @Input() peer!: RTSeePeerConnection;\n constructor() {\n this.intervalLength = 1000;\n this.noiceLevel = 0;\n this.scaleOneLevel = 0;\n this.scaleTwoLevel = 0;\n this.scaleThreeLevel = 0;\n }\n\n ngOnInit(): void {\n this.startSoundMeterListening();\n }\n\n startSoundMeterListening() {\n const step = interval(1000 / 10);\n step.subscribe(() => {\n if (!this.peer.soundMeter || !this.peer.soundMeter.level) {\n this.noiceLevel = 0;\n } else {\n this.noiceLevel = this.peer.soundMeter?.level * 100 || 0;\n }\n\n this.setSoundMeterHeights();\n });\n }\n\n setSoundMeterHeights() {\n const ZERO_LEVEL = 25;\n const SCALE_STEP = 25;\n const SCALE_ONE_TOP = ZERO_LEVEL + SCALE_STEP;\n const SCALE_TWO_TOP = SCALE_ONE_TOP + SCALE_STEP;\n\n if (!this.peer || !this.peer.soundMeter || this.noiceLevel < ZERO_LEVEL) {\n this.scaleOneLevel = 0;\n this.scaleTwoLevel = 0;\n this.scaleThreeLevel = 0;\n }\n\n const scaleOneValue = ((this.noiceLevel - ZERO_LEVEL) / SCALE_STEP) * 100;\n const scaleTwoValue =\n ((this.noiceLevel - SCALE_ONE_TOP) / SCALE_STEP) * 100;\n const scaleThreeValue =\n ((this.noiceLevel - SCALE_TWO_TOP) / SCALE_STEP) * 100;\n\n this.scaleOneLevel = scaleOneValue > 0 ? scaleOneValue : 0;\n this.scaleTwoLevel = scaleTwoValue > 0 ? scaleTwoValue : 0;\n this.scaleThreeLevel = scaleThreeValue > 0 ? scaleTwoValue : 0;\n }\n}\n","<div class=\"rtsee-soundbar\">\n <div class=\"rtsee-soundbar-scale\">\n <div class=\"rtsee-soundbar-scale-item\">\n <div class=\"rtsee-soundbar-scale-item-level rtsee-soundbar-scale-item-level-one\"\n [style.height.%]=\"scaleOneLevel\"\n ></div>\n </div>\n <div class=\"rtsee-soundbar-scale-item\">\n <div class=\"rtsee-soundbar-scale-item-level rtsee-soundbar-scale-item-level-two\"\n [style.height.%]=\"scaleTwoLevel\"\n ></div>\n </div>\n <div class=\"rtsee-soundbar-scale-item\">\n <div class=\"rtsee-soundbar-scale-item-level rtsee-soundbar-scale-item-level-three\"\n [style.height.%]=\"scaleThreeLevel\"\n ></div>\n </div>\n </div>\n</div>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { RTSeePeerConnection } from '@rtsee/core';\n\n@Component({\n selector: 'ngx-rtsee-peer',\n templateUrl: './rtsee-peer.component.html',\n styleUrls: ['./rtsee-peer.component.scss'],\n})\nexport class RtseePeerComponent implements AfterViewInit {\n intervalLength: number;\n noiceLevel: number;\n\n @ViewChild('audioOutput') audioOutput?: ElementRef;\n @ViewChild('videoOutput') videoOutput?: ElementRef;\n @Input() peer!: RTSeePeerConnection;\n\n constructor() {\n this.intervalLength = 1000;\n this.noiceLevel = 0;\n }\n\n ngAfterViewInit(): void {\n if (!this.audioOutput) {\n return;\n }\n this.peer.setAudioOutputElement(\n this.audioOutput.nativeElement as HTMLAudioElement\n );\n }\n}\n","<div class=\"rtsee-peer\" [ngClass]=\"{\n'rtsee-peer-video-disabled': !peer.remoteVideoStream || !peer.camera\n}\">\n <div class=\"rtsee-peer-content\">\n <div class=\"rtsee-peer-photo\" *ngIf=\"!peer.camera\">\n <div class=\"rtsee-peer-photo-wrapper\">\n <div *ngIf=\"peer.imageUrl\"\n [style.background-image]=\"'url(' + peer.imageUrl + ')'\"\n class=\"rtsee-peer-photo-image\"\n ></div>\n <img *ngIf=\"!peer.imageUrl\" [src]=\"\" alt=\"peer_photo\" class=\"rtsee-peer-photo-image\">\n </div>\n <div class=\"rtsee-peer-info\">\n <p class=\"rtsee-peer-name\" *ngIf=\"peer.name\">{{peer.name}}</p>\n </div>\n </div>\n <video #videoOutput\n class=\"rtsee-peer-video\"\n [autoplay]=\"true\"\n [srcObject]=\"peer.remoteVideoStream\"\n playsinline=\"true\"\n >\n </video>\n <div class=\"rtsee-peer-soundbar\">\n <ngx-rtsee-soundbar [peer]=\"peer\"></ngx-rtsee-soundbar>\n </div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { RTSee } from '@rtsee/core';\n\n@Component({\n selector: 'ngx-rtsee',\n templateUrl: './rtsee.component.html',\n styleUrls: ['./rtsee.component.scss'],\n})\nexport class RTSeeComponent {\n settingsViewEnabled: boolean;\n fullScreenModeEnabled: boolean;\n\n @Input() rtSee!: RTSee;\n constructor() {\n this.settingsViewEnabled = false;\n this.fullScreenModeEnabled = false;\n }\n\n toggleSettings() {\n this.settingsViewEnabled = !this.settingsViewEnabled;\n }\n\n toggleFullScreenMode() {\n this.fullScreenModeEnabled = !this.fullScreenModeEnabled;\n }\n}\n","<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","import { Component, Input } from '@angular/core';\nimport { RTSeeMessenger } from '@rtsee/messenger';\n\n@Component({\n selector: 'ngx-messenger-header',\n templateUrl: './messenger-header.component.html',\n styleUrls: ['./messenger-header.component.css'],\n})\nexport class MessengerHeaderComponent {\n @Input() messenger!: RTSeeMessenger;\n}\n","<div class=\"rtsee-messenger-header\" [ngClass]=\"{ 'chat-header': messenger.openedChat }\">\n <button *ngIf=\"messenger.openedChat\" (click)=\"messenger.closeChat()\"><span>←</span></button>\n <p class=\"title\" *ngIf=\"!messenger.openedChat\">Wessenger</p>\n <p class=\"title\" *ngIf=\"messenger.openedChat\">{{ messenger.openedChat.name }}</p>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { RTSeeChat, RTSeeMessenger } from '@rtsee/messenger';\n\n@Component({\n selector: 'ngx-chat-thumbnail',\n templateUrl: './chat-thumbnail.component.html',\n styleUrls: ['./chat-thumbnail.component.css'],\n})\nexport class ChatThumbnailComponent {\n @Input() chat!: RTSeeChat;\n @Input() messenger!: RTSeeMessenger;\n}\n","<div class=\"rtsee-chat-thumbnail\" (click)=\"messenger.openChat(chat)\">\n <div class=\"chat-info\">\n <div class=\"rtsee-chat-thumbnail-image\">\n <img [src]=\"chat.imageUrl\" alt=\"chat-img\">\n </div>\n <p class=\"rtsee-chat-thumbnail-name\">{{ chat.name }}</p>\n </div>\n <div class=\"last-message\">\n <p class=\"rtsee-chat-thumbnail-last-message\">{{chat.getLastSenderName()}} {{chat.getLastSentMessageText()}}</p>\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { RTSeeChat, RTSeeMessenger } from '@rtsee/messenger';\n\n@Component({\n selector: 'ngx-chats-list',\n templateUrl: './chats-list.component.html',\n styleUrls: ['./chats-list.component.css'],\n})\nexport class ChatsListComponent implements OnInit {\n @Input() messenger!: RTSeeMessenger;\n @Input() chats!: RTSeeChat[];\n\n ngOnInit(): void {\n console.log(this.chats);\n }\n}\n","<div class=\"rtsee-chats-list\">\n <div class=\"rtsee-chat-thumbnail-container\" *ngFor=\"let chat of chats; let last = last;\">\n <ngx-chat-thumbnail [chat]=\"chat\" [messenger]=\"messenger\"></ngx-chat-thumbnail>\n <div class=\"rtsee-chat-separator\"></div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { RTSeeChat, RTSeeChatMember, RTSeeMessage } from '@rtsee/messenger';\n\n@Component({\n selector: 'ngx-message',\n templateUrl: './message.component.html',\n styleUrls: ['./message.component.css'],\n})\nexport class MessageComponent {\n @Input() chat!: RTSeeChat;\n @Input() message!: RTSeeMessage;\n @Input() member!: RTSeeChatMember<any>;\n}\n","<div class=\"rtsee-message-container\" [ngClass]=\"{'rtsee-from-me': message.from !== chat.receiverId}\">\n <div class=\"rtsee-messenger-message\">\n <p>{{ message.text }}</p>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { RTSeeChat, RTSeeMessenger } from '@rtsee/messenger';\n\n@Component({\n selector: 'ngx-messages-list',\n templateUrl: './messages-list.component.html',\n styleUrls: ['./messages-list.component.css'],\n})\nexport class MessagesListComponent {\n @Input() chat!: RTSeeChat;\n @Input() messenger!: RTSeeMessenger;\n}\n","<div class=\"rtsee-messenger-messages-list\">\n <div class=\"rtsee-messenger-message-wrapper\" *ngFor=\"let message of chat.messages\">\n <ngx-message [message]=\"message\" [chat]=\"chat\"></ngx-message>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { RTSeeChat, RTSeeMessenger } from '@rtsee/messenger';\n\n@Component({\n selector: 'ngx-chat-input',\n templateUrl: './chat-input.component.html',\n styleUrls: ['./chat-input.component.css'],\n})\nexport class ChatInputComponent {\n sendMessageForm: FormGroup = new FormGroup({\n /* eslint-disable */\n message: new FormControl('', Validators.required),\n /* eslint-enable */\n });\n\n @Input() messenger!: RTSeeMessenger;\n @Input() chat!: RTSeeChat;\n\n sendMessage() {\n const text = this.sendMessageForm.get('message')?.value as string;\n if (!text) {\n return;\n }\n this.chat.sendMessage(text);\n this.sendMessageForm.get('message')?.setValue('');\n }\n}\n","<div class=\"rtsee-chat-input\">\n <div class=\"rtsee-send-message\">\n <form [formGroup]=\"sendMessageForm\">\n <input placeholder=\"Type message...\" type=\"text\" formControlName=\"message\" required>\n <button (click)=\"sendMessage()\"\n class=\"rtsee-send-message-button\"\n type=\"submit\">\n <span>Send</span>\n </button>\n </form>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { RTSeeChat, RTSeeMessenger } from '@rtsee/messenger';\n\n@Component({\n selector: 'ngx-chat',\n templateUrl: './chat.component.html',\n styleUrls: ['./chat.component.css'],\n})\nexport class ChatComponent {\n @Input() chat!: RTSeeChat;\n @Input() messenger!: RTSeeMessenger;\n}\n","<div class=\"rtsee-chat\">\n <div class=\"rtsee-chat-body-container\">\n <ngx-messages-list [messenger]=\"messenger\" [chat]=\"chat\"></ngx-messages-list>\n </div>\n <div class=\"input-container\">\n <ngx-chat-input [messenger]=\"messenger\" [chat]=\"chat\"></ngx-chat-input>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { RTSeeMessenger } from '@rtsee/messenger';\n\n@Component({\n selector: 'ngx-messenger',\n templateUrl: './messenger.component.html',\n styleUrls: ['./messenger.component.scss'],\n})\nexport class MessengerComponent {\n @Input() messenger!: RTSeeMessenger;\n}\n","<div class=\"rtsee-messenger\">\n <div class=\"rtsee-messenger-header-container\">\n <ngx-messenger-header [messenger]=\"messenger\"></ngx-messenger-header>\n </div>\n <div class=\"rtsee-messenger-body-container\">\n <ngx-chats-list *ngIf=\"!messenger.openedChat\" [chats]=\"messenger.chats\" [messenger]=\"messenger\"></ngx-chats-list>\n <ngx-chat *ngIf=\"messenger.openedChat\" [messenger]=\"messenger\" [chat]=\"messenger.openedChat\"></ngx-chat>\n </div>\n</div>\n\n\n","import { Injectable } from '@angular/core';\n\nimport * as dayjs from 'dayjs';\nimport * as relativeTime from 'dayjs/plugin/relativeTime';\ndayjs.extend(relativeTime);\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TimeFormatHelperService {\n toAgo(time: Date): string {\n /* eslint-disable */\n return dayjs(time).fromNow() as string;\n /* eslint-enable */\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport {\n RTSeeDashboardClient,\n RTSeeEventsDashboard,\n} from '@rtsee/events-manager';\nimport { TimeFormatHelperService } from '../../../../services/time-format-helper.service';\n\n@Component({\n selector: 'ngx-rtsee-events-dashboard-client-thumbnail',\n templateUrl: './rtsee-events-dashboard-client-thumbnail.component.html',\n styleUrls: ['./rtsee-events-dashboard-client-thumbnail.component.scss'],\n})\nexport class RtseeEventsDashboardClientThumbnailComponent implements OnInit {\n @Input() dashboard!: RTSeeEventsDashboard;\n @Input() client!: RTSeeDashboardClient;\n\n constructor(public timeFormatService: TimeFormatHelperService) {}\n\n ngOnInit(): void {\n console.log(this.client);\n }\n\n openChat() {\n this.dashboard.openChat(this.client);\n }\n}\n","<div class=\"rtsee-dashboard-client-thumbnail\">\n <span class=\"rtsee-dashboard-client-id\" *ngIf=\"client.name\">{{ client.id }}</span>\n <span class=\"rtsee-dashboard-client-name\">{{ client.name || client.id }}</span>\n <div class=\"rtsee-dashboard-client-live\" *ngIf=\"client.isConnected\"></div>\n <div class=\"rtsee-dashboard-client-thumbnail-events\">\n <details *ngIf=\"client.events && client.events.length\">\n <summary>Last event: {{client.events[0].name}} ({{ timeFormatService.toAgo(client.events[0].createdAt) }})</summary>\n <ul>\n <li *ngFor=\"let event of client.events.slice(1, client.events.length)\" class=\"rtsee-dashboard-client-thumbnail-event\">\n <span>{{event.name}}</span>\n <span> </span>\n <span>{{ timeFormatService.toAgo(event.createdAt) }}</span>\n </li>\n </ul>\n </details>\n <div class=\"rtsee-dashboard-client-thumbnail-actions\">\n <button (click)=\"openChat()\">Chat</button>\n </div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { RTSeeEventsDashboard } from '@rtsee/events-manager';\n\n@Component({\n selector: 'ngx-rtsee-events-dashboard',\n templateUrl: './rtsee-events-dashboard.component.html',\n styleUrls: ['./rtsee-events-dashboard.component.scss'],\n})\nexport class RtseeEventsDashboardComponent {\n @Input() eventsDashboard!: RTSeeEventsDashboard;\n}\n","<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","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngx-rtsee-peers-list',\n templateUrl: './rtsee-peers-list.component.html',\n styleUrls: ['./rtsee-peers-list.component.scss'],\n})\nexport class RtseePeersListComponent {}\n","<p>rtsee-peers-list works!</p>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngx-rtsee-events-dashboard-client',\n templateUrl: './rtsee-events-dashboard-client.component.html',\n styleUrls: ['./rtsee-events-dashboard-client.component.css'],\n})\nexport class RtseeEventsDashboardClientComponent {}\n","<p>rtsee-events-dashboard-client works!</p>\n","import { NgModule } from '@angular/core';\nimport { RTSeeComponent } from './components/rtsee/rtsee.component';\nimport { RTSeeControlsComponent } from './components/rtsee/rtsee-controls/rtsee-controls.component';\nimport { CommonModule } from '@angular/common';\nimport { RtseePeerComponent } from './components/rtsee-peer/rtsee-peer.component';\nimport { RtseeSoundbarComponent } from './components/rtsee-soundbar/rtsee-soundbar.component';\nimport { RtseePeersListComponent } from './components/rtsee-peers-list/rtsee-peers-list.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { RtseeSettingsComponent } from './components/rtsee-settings/rtsee-settings.component';\nimport { MatSelectModule } from '@angular/material/select';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MessengerComponent } from './components/rtsee-messenger/messenger/messenger.component';\nimport { ChatComponent } from './components/rtsee-messenger/chat/chat.component';\nimport { MessageComponent } from './components/rtsee-messenger/message/message.component';\nimport { ChatsListComponent } from './components/rtsee-messenger/chats-list/chats-list.component';\nimport { MessagesListComponent } from './components/rtsee-messenger/messages-list/messages-list.component';\nimport { ChatThumbnailComponent } from './components/rtsee-messenger/chat-thumbnail/chat-thumbnail.component';\nimport { ChatInputComponent } from './components/rtsee-messenger/chat-input/chat-input.component';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MessengerHeaderComponent } from './components/rtsee-messenger/messenger-header/messenger-header.component';\nimport { RtseeEventsDashboardComponent } from './components/rtsee-events-dashboard/rtsee-events-dashboard.component';\nimport { RtseeEventsDashboardClientComponent } from './components/rtsee-events-dashboard/components/rtsee-events-dashboard-client/rtsee-events-dashboard-client.component';\nimport { RtseeEventsDashboardClientThumbnailComponent } from './components/rtsee-events-dashboard/components/rtsee-events-dashboard-client-thumbnail/rtsee-events-dashboard-client-thumbnail.component';\n\n@NgModule({\n declarations: [\n RTSeeComponent,\n RTSeeControlsComponent,\n RtseePeerComponent,\n RtseeSoundbarComponent,\n RtseePeersListComponent,\n RtseeSettingsComponent,\n MessengerComponent,\n ChatComponent,\n MessageComponent,\n ChatsListComponent,\n MessagesListComponent,\n ChatThumbnailComponent,\n ChatInputComponent,\n MessengerHeaderComponent,\n RtseeEventsDashboardComponent,\n RtseeEventsDashboardClientComponent,\n RtseeEventsDashboardClientThumbnailComponent,\n ],\n imports: [\n CommonModule,\n MatIconModule,\n MatButtonModule,\n MatSelectModule,\n BrowserAnimationsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n ],\n exports: [RTSeeComponent, MessengerComponent, RtseeEventsDashboardComponent],\n})\nexport class RTSeeModule {}\n","/*\n * Public API Surface of ngx\n */\n\nexport * from './lib/ngx.service';\nexport * from './lib/components/rtsee/rtsee-controls/rtsee-controls.component';\nexport * from './lib/components/rtsee/rtsee.component';\nexport * from './lib/components/rtsee-messenger/messenger/messenger.component';\nexport * from './lib/components/rtsee-events-dashboard/rtsee-events-dashboard.component';\nexport * from './lib/ngx.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class RtseeEventsDashboardClientComponent {
|
|
3
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RtseeEventsDashboardClientComponent, never>;
|
|
4
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RtseeEventsDashboardClientComponent, "ngx-rtsee-events-dashboard-client", never, {}, {}, never, never>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { RTSeeDashboardClient, RTSeeEventsDashboard } from '@rtsee/events-manager';
|
|
3
|
+
import { TimeFormatHelperService } from '../../../../services/time-format-helper.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class RtseeEventsDashboardClientThumbnailComponent implements OnInit {
|
|
6
|
+
timeFormatService: TimeFormatHelperService;
|
|
7
|
+
dashboard: RTSeeEventsDashboard;
|
|
8
|
+
client: RTSeeDashboardClient;
|
|
9
|
+
constructor(timeFormatService: TimeFormatHelperService);
|
|
10
|
+
ngOnInit(): void;
|
|
11
|
+
openChat(): void;
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RtseeEventsDashboardClientThumbnailComponent, never>;
|
|
13
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RtseeEventsDashboardClientThumbnailComponent, "ngx-rtsee-events-dashboard-client-thumbnail", never, { "dashboard": "dashboard"; "client": "client"; }, {}, never, never>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { RTSeeEventsDashboard } from '@rtsee/events-manager';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class RtseeEventsDashboardComponent {
|
|
4
|
+
eventsDashboard: RTSeeEventsDashboard;
|
|
5
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RtseeEventsDashboardComponent, never>;
|
|
6
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RtseeEventsDashboardComponent, "ngx-rtsee-events-dashboard", never, { "eventsDashboard": "eventsDashboard"; }, {}, never, never>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { RTSeeChat, RTSeeMessenger } from '@rtsee/messenger';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class ChatComponent {
|
|
4
|
+
chat: RTSeeChat;
|
|
5
|
+
messenger: RTSeeMessenger;
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChatComponent, never>;
|
|
7
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ChatComponent, "ngx-chat", never, { "chat": "chat"; "messenger": "messenger"; }, {}, never, never>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FormGroup } from '@angular/forms';
|
|
2
|
+
import { RTSeeChat, RTSeeMessenger } from '@rtsee/messenger';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class ChatInputComponent {
|
|
5
|
+
sendMessageForm: FormGroup;
|
|
6
|
+
messenger: RTSeeMessenger;
|
|
7
|
+
chat: RTSeeChat;
|
|
8
|
+
sendMessage(): void;
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChatInputComponent, never>;
|
|
10
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ChatInputComponent, "ngx-chat-input", never, { "messenger": "messenger"; "chat": "chat"; }, {}, never, never>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { RTSeeChat, RTSeeMessenger } from '@rtsee/messenger';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class ChatThumbnailComponent {
|
|
4
|
+
chat: RTSeeChat;
|
|
5
|
+
messenger: RTSeeMessenger;
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChatThumbnailComponent, never>;
|
|
7
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ChatThumbnailComponent, "ngx-chat-thumbnail", never, { "chat": "chat"; "messenger": "messenger"; }, {}, never, never>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { RTSeeChat, RTSeeMessenger } from '@rtsee/messenger';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class ChatsListComponent implements OnInit {
|
|
5
|
+
messenger: RTSeeMessenger;
|
|
6
|
+
chats: RTSeeChat[];
|
|
7
|
+
ngOnInit(): void;
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChatsListComponent, never>;
|
|
9
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ChatsListComponent, "ngx-chats-list", never, { "messenger": "messenger"; "chats": "chats"; }, {}, never, never>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { RTSeeChat, RTSeeChatMember, RTSeeMessage } from '@rtsee/messenger';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class MessageComponent {
|
|
4
|
+
chat: RTSeeChat;
|
|
5
|
+
message: RTSeeMessage;
|
|
6
|
+
member: RTSeeChatMember<any>;
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MessageComponent, never>;
|
|
8
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MessageComponent, "ngx-message", never, { "chat": "chat"; "message": "message"; "member": "member"; }, {}, never, never>;
|
|
9
|
+
}
|