mirror of https://github.com/OpenVidu/openvidu.git
openvidu-testapp: upgrade dependencies, including Angular 22
parent
e831d35da1
commit
4651dd1414
|
|
@ -81,6 +81,7 @@
|
||||||
"test": {
|
"test": {
|
||||||
"builder": "@angular/build:karma",
|
"builder": "@angular/build:karma",
|
||||||
"options": {
|
"options": {
|
||||||
|
"externalDependencies": ["node:crypto"],
|
||||||
"polyfills": [
|
"polyfills": [
|
||||||
"zone.js",
|
"zone.js",
|
||||||
"zone.js/testing",
|
"zone.js/testing",
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -18,22 +18,22 @@
|
||||||
},
|
},
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@angular/animations": "^21.2.14",
|
"@angular/animations": "^22.0.6",
|
||||||
"@angular/cdk": "^21.2.12",
|
"@angular/cdk": "^22.0.4",
|
||||||
"@angular/common": "^21.2.14",
|
"@angular/common": "^22.0.6",
|
||||||
"@angular/compiler": "^21.2.14",
|
"@angular/compiler": "^22.0.6",
|
||||||
"@angular/core": "^21.2.14",
|
"@angular/core": "^22.0.6",
|
||||||
"@angular/forms": "^21.2.14",
|
"@angular/forms": "^22.0.6",
|
||||||
"@angular/material": "^21.2.12",
|
"@angular/material": "^22.0.4",
|
||||||
"@angular/platform-browser": "^21.2.14",
|
"@angular/platform-browser": "^22.0.6",
|
||||||
"@angular/router": "^21.2.14",
|
"@angular/router": "^22.0.6",
|
||||||
"@livekit/protocol": "^1.46.0",
|
"@livekit/protocol": "^1.49.0",
|
||||||
"@livekit/track-processors": "^0.7.2",
|
"@livekit/track-processors": "^0.7.2",
|
||||||
"buffer": "^6.0.3",
|
"buffer": "^6.0.3",
|
||||||
"crypto-browserify": "^3.12.1",
|
"crypto-browserify": "^3.12.1",
|
||||||
"json-stringify-safe": "5.0.1",
|
"json-stringify-safe": "5.0.1",
|
||||||
"livekit-client": "2.19.0",
|
"livekit-client": "2.20.1",
|
||||||
"livekit-server-sdk": "^2.15.3",
|
"livekit-server-sdk": "^2.17.0",
|
||||||
"rxjs": "~7.8.2",
|
"rxjs": "~7.8.2",
|
||||||
"stream-browserify": "^3.0.0",
|
"stream-browserify": "^3.0.0",
|
||||||
"tslib": "^2.8.1",
|
"tslib": "^2.8.1",
|
||||||
|
|
@ -41,21 +41,22 @@
|
||||||
"zone.js": "~0.16.2"
|
"zone.js": "~0.16.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@angular/build": "^21.2.12",
|
"@angular/build": "^22.0.6",
|
||||||
"@angular/cli": "~21.2.12",
|
"@angular/cli": "~22.0.6",
|
||||||
"@angular/compiler-cli": "^21.2.14",
|
"@angular/compiler-cli": "^22.0.6",
|
||||||
"@types/dom-mediacapture-transform": "^0.1.11",
|
"@types/dom-mediacapture-transform": "^0.1.12",
|
||||||
"@types/events": "^3.0.3",
|
"@types/events": "^3.0.3",
|
||||||
"@types/jasmine": "~6.0.0",
|
"@types/jasmine": "~6.0.0",
|
||||||
"@types/json-stringify-safe": "^5.0.3",
|
"@types/json-stringify-safe": "^5.0.3",
|
||||||
"@types/node": "^25.9.1",
|
"@types/node": "^26.1.1",
|
||||||
"http-server": "^14.1.1",
|
"http-server": "^14.1.1",
|
||||||
"jasmine-core": "~6.2.0",
|
"istanbul-lib-instrument": "^6.0.3",
|
||||||
|
"jasmine-core": "~6.3.0",
|
||||||
"karma": "~6.4.4",
|
"karma": "~6.4.4",
|
||||||
"karma-chrome-launcher": "~3.2.0",
|
"karma-chrome-launcher": "~3.2.0",
|
||||||
"karma-coverage": "~2.2.1",
|
"karma-coverage": "~2.2.1",
|
||||||
"karma-jasmine": "~5.1.0",
|
"karma-jasmine": "~5.1.0",
|
||||||
"karma-jasmine-html-reporter": "~2.2.0",
|
"karma-jasmine-html-reporter": "~2.2.0",
|
||||||
"typescript": "~5.9.3"
|
"typescript": "~6.0.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,29 +1,18 @@
|
||||||
import { TestBed } from '@angular/core/testing';
|
import { TestBed } from '@angular/core/testing';
|
||||||
import { RouterTestingModule } from '@angular/router/testing';
|
import { provideRouter } from '@angular/router';
|
||||||
import { AppComponent } from './app.component';
|
import { AppComponent } from './app.component';
|
||||||
|
|
||||||
describe('AppComponent', () => {
|
describe('AppComponent', () => {
|
||||||
beforeEach(() => TestBed.configureTestingModule({
|
beforeEach(() =>
|
||||||
imports: [RouterTestingModule],
|
TestBed.configureTestingModule({
|
||||||
declarations: [AppComponent]
|
imports: [AppComponent],
|
||||||
}));
|
providers: [provideRouter([])],
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
it('should create the app', () => {
|
it('should create the app', () => {
|
||||||
const fixture = TestBed.createComponent(AppComponent);
|
const fixture = TestBed.createComponent(AppComponent);
|
||||||
const app = fixture.componentInstance;
|
const app = fixture.componentInstance;
|
||||||
expect(app).toBeTruthy();
|
expect(app).toBeTruthy();
|
||||||
});
|
});
|
||||||
|
|
||||||
it(`should have as title 'openvidu-testapp-livekit'`, () => {
|
|
||||||
const fixture = TestBed.createComponent(AppComponent);
|
|
||||||
const app = fixture.componentInstance;
|
|
||||||
expect(app.title).toEqual('openvidu-testapp-livekit');
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should render title', () => {
|
|
||||||
const fixture = TestBed.createComponent(AppComponent);
|
|
||||||
fixture.detectChanges();
|
|
||||||
const compiled = fixture.nativeElement as HTMLElement;
|
|
||||||
expect(compiled.querySelector('.content span')?.textContent).toContain('openvidu-testapp-livekit app is running!');
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Component } from '@angular/core';
|
import { Component, ChangeDetectionStrategy } from '@angular/core';
|
||||||
import { FormsModule } from '@angular/forms';
|
import { FormsModule } from '@angular/forms';
|
||||||
import { Router, RouterOutlet, RouterLink } from '@angular/router';
|
import { Router, RouterOutlet, RouterLink } from '@angular/router';
|
||||||
import { LogLevel, setLogLevel } from 'livekit-client';
|
import { LogLevel, setLogLevel } from 'livekit-client';
|
||||||
|
|
@ -13,6 +13,7 @@ import { MatButtonModule } from '@angular/material/button';
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
templateUrl: './app.component.html',
|
templateUrl: './app.component.html',
|
||||||
styleUrl: './app.component.css',
|
styleUrl: './app.component.css',
|
||||||
|
changeDetection: ChangeDetectionStrategy.Eager,
|
||||||
imports: [FormsModule, RouterOutlet, RouterLink, MatSidenavModule, MatToolbarModule, MatFormFieldModule, MatInputModule, MatButtonModule],
|
imports: [FormsModule, RouterOutlet, RouterLink, MatSidenavModule, MatToolbarModule, MatFormFieldModule, MatInputModule, MatButtonModule],
|
||||||
})
|
})
|
||||||
export class AppComponent {
|
export class AppComponent {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
import { TrackPublication } from 'livekit-client';
|
||||||
|
|
||||||
import { AudioTrackComponent } from './audio-track.component';
|
import { AudioTrackComponent } from './audio-track.component';
|
||||||
|
|
||||||
|
|
@ -8,10 +9,14 @@ describe('AudioTrackComponent', () => {
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
declarations: [AudioTrackComponent]
|
imports: [AudioTrackComponent]
|
||||||
});
|
});
|
||||||
fixture = TestBed.createComponent(AudioTrackComponent);
|
fixture = TestBed.createComponent(AudioTrackComponent);
|
||||||
component = fixture.componentInstance;
|
component = fixture.componentInstance;
|
||||||
|
fixture.componentRef.setInput('trackPublication', {
|
||||||
|
source: 'microphone',
|
||||||
|
} as unknown as TrackPublication);
|
||||||
|
fixture.componentRef.setInput('index', 0);
|
||||||
fixture.detectChanges();
|
fixture.detectChanges();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Component } from '@angular/core';
|
import { Component, ChangeDetectionStrategy } from '@angular/core';
|
||||||
import { NgClass } from '@angular/common';
|
import { NgClass } from '@angular/common';
|
||||||
import { LocalTrack } from 'livekit-client';
|
import { LocalTrack } from 'livekit-client';
|
||||||
import { MatIconModule } from '@angular/material/icon';
|
import { MatIconModule } from '@angular/material/icon';
|
||||||
|
|
@ -9,6 +9,7 @@ import { TrackComponent } from '../track/track.component';
|
||||||
selector: 'app-audio-track',
|
selector: 'app-audio-track',
|
||||||
templateUrl: './audio-track.component.html',
|
templateUrl: './audio-track.component.html',
|
||||||
styleUrl: './audio-track.component.css',
|
styleUrl: './audio-track.component.css',
|
||||||
|
changeDetection: ChangeDetectionStrategy.Eager,
|
||||||
imports: [NgClass, MatIconModule, MatTooltipModule],
|
imports: [NgClass, MatIconModule, MatTooltipModule],
|
||||||
})
|
})
|
||||||
export class AudioTrackComponent extends TrackComponent {
|
export class AudioTrackComponent extends TrackComponent {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Component, EventEmitter, Input, Output, ChangeDetectorRef } from '@angular/core';
|
import { Component, EventEmitter, Input, Output, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';
|
||||||
import { MatIconModule } from '@angular/material/icon';
|
import { MatIconModule } from '@angular/material/icon';
|
||||||
import { MatTooltipModule } from '@angular/material/tooltip';
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
||||||
import {
|
import {
|
||||||
|
|
@ -15,6 +15,7 @@ import {
|
||||||
selector: 'app-data-track',
|
selector: 'app-data-track',
|
||||||
templateUrl: './data-track.component.html',
|
templateUrl: './data-track.component.html',
|
||||||
styleUrl: './data-track.component.css',
|
styleUrl: './data-track.component.css',
|
||||||
|
changeDetection: ChangeDetectionStrategy.Eager,
|
||||||
imports: [MatIconModule, MatTooltipModule],
|
imports: [MatIconModule, MatTooltipModule],
|
||||||
})
|
})
|
||||||
export class DataTrackComponent {
|
export class DataTrackComponent {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Component, inject } from '@angular/core';
|
import { Component, inject, ChangeDetectionStrategy } from '@angular/core';
|
||||||
import { SlicePipe } from '@angular/common';
|
import { SlicePipe } from '@angular/common';
|
||||||
import { FormsModule } from '@angular/forms';
|
import { FormsModule } from '@angular/forms';
|
||||||
import { MatDialogRef, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
import { MatDialogRef, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
||||||
|
|
@ -81,6 +81,7 @@ export interface EventGroup {
|
||||||
'.group-label:first-child { margin-top: 0; }',
|
'.group-label:first-child { margin-top: 0; }',
|
||||||
'.extra-toggle { margin-top: 5px; }'
|
'.extra-toggle { margin-top: 5px; }'
|
||||||
],
|
],
|
||||||
|
changeDetection: ChangeDetectionStrategy.Eager,
|
||||||
imports: [SlicePipe, FormsModule, MatDialogModule, MatSlideToggleModule, MatDividerModule, MatButtonModule],
|
imports: [SlicePipe, FormsModule, MatDialogModule, MatSlideToggleModule, MatDividerModule, MatButtonModule],
|
||||||
})
|
})
|
||||||
export class EventsDialogComponent {
|
export class EventsDialogComponent {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
||||||
import { InfoDialogComponent } from './info-dialog.component';
|
import { InfoDialogComponent } from './info-dialog.component';
|
||||||
|
|
||||||
describe('InfoDialogComponent', () => {
|
describe('InfoDialogComponent', () => {
|
||||||
|
|
@ -8,7 +9,8 @@ describe('InfoDialogComponent', () => {
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
declarations: [InfoDialogComponent]
|
imports: [InfoDialogComponent],
|
||||||
|
providers: [{ provide: MAT_DIALOG_DATA, useValue: {} }]
|
||||||
});
|
});
|
||||||
fixture = TestBed.createComponent(InfoDialogComponent);
|
fixture = TestBed.createComponent(InfoDialogComponent);
|
||||||
component = fixture.componentInstance;
|
component = fixture.componentInstance;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Component, NgZone, OnDestroy, ViewChild, inject } from '@angular/core';
|
import { Component, NgZone, OnDestroy, ViewChild, inject, ChangeDetectionStrategy } from '@angular/core';
|
||||||
import { FormsModule } from '@angular/forms';
|
import { FormsModule } from '@angular/forms';
|
||||||
import { CdkTextareaAutosize } from '@angular/cdk/text-field';
|
import { CdkTextareaAutosize } from '@angular/cdk/text-field';
|
||||||
import { take } from 'rxjs/operators';
|
import { take } from 'rxjs/operators';
|
||||||
|
|
@ -11,6 +11,7 @@ import { MatButtonModule } from '@angular/material/button';
|
||||||
selector: 'app-info-dialog',
|
selector: 'app-info-dialog',
|
||||||
templateUrl: './info-dialog.component.html',
|
templateUrl: './info-dialog.component.html',
|
||||||
styleUrl: './info-dialog.component.css',
|
styleUrl: './info-dialog.component.css',
|
||||||
|
changeDetection: ChangeDetectionStrategy.Eager,
|
||||||
imports: [FormsModule, CdkTextareaAutosize, MatDialogModule, MatFormFieldModule, MatInputModule, MatButtonModule],
|
imports: [FormsModule, CdkTextareaAutosize, MatDialogModule, MatFormFieldModule, MatInputModule, MatButtonModule],
|
||||||
})
|
})
|
||||||
export class InfoDialogComponent implements OnDestroy {
|
export class InfoDialogComponent implements OnDestroy {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||||
import { OptionsDialogComponent } from './options-dialog.component';
|
import { OptionsDialogComponent } from './options-dialog.component';
|
||||||
|
|
||||||
describe('OptionsDialogComponent', () => {
|
describe('OptionsDialogComponent', () => {
|
||||||
|
|
@ -8,7 +9,11 @@ describe('OptionsDialogComponent', () => {
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
declarations: [OptionsDialogComponent]
|
imports: [OptionsDialogComponent],
|
||||||
|
providers: [
|
||||||
|
{ provide: MatDialogRef, useValue: {} },
|
||||||
|
{ provide: MAT_DIALOG_DATA, useValue: {} },
|
||||||
|
]
|
||||||
});
|
});
|
||||||
fixture = TestBed.createComponent(OptionsDialogComponent);
|
fixture = TestBed.createComponent(OptionsDialogComponent);
|
||||||
component = fixture.componentInstance;
|
component = fixture.componentInstance;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Component, inject } from '@angular/core';
|
import { Component, inject, ChangeDetectionStrategy } from '@angular/core';
|
||||||
import { NgClass, UpperCasePipe } from '@angular/common';
|
import { NgClass, UpperCasePipe } from '@angular/common';
|
||||||
import { FormsModule } from '@angular/forms';
|
import { FormsModule } from '@angular/forms';
|
||||||
import { MAT_DIALOG_DATA, MatDialogRef, MatDialogModule } from '@angular/material/dialog';
|
import { MAT_DIALOG_DATA, MatDialogRef, MatDialogModule } from '@angular/material/dialog';
|
||||||
|
|
@ -27,6 +27,7 @@ import {
|
||||||
selector: 'app-options-dialog',
|
selector: 'app-options-dialog',
|
||||||
templateUrl: './options-dialog.component.html',
|
templateUrl: './options-dialog.component.html',
|
||||||
styleUrl: './options-dialog.component.css',
|
styleUrl: './options-dialog.component.css',
|
||||||
|
changeDetection: ChangeDetectionStrategy.Eager,
|
||||||
imports: [NgClass, UpperCasePipe, FormsModule, MatDialogModule, MatRadioModule, MatDividerModule, MatCheckboxModule, MatFormFieldModule, MatInputModule, MatSelectModule, MatButtonModule, VideoResolutionComponent],
|
imports: [NgClass, UpperCasePipe, FormsModule, MatDialogModule, MatRadioModule, MatDividerModule, MatCheckboxModule, MatFormFieldModule, MatInputModule, MatSelectModule, MatButtonModule, VideoResolutionComponent],
|
||||||
})
|
})
|
||||||
export class OptionsDialogComponent {
|
export class OptionsDialogComponent {
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ describe('VideoResolutionComponent', () => {
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
declarations: [VideoResolutionComponent]
|
imports: [VideoResolutionComponent]
|
||||||
});
|
});
|
||||||
fixture = TestBed.createComponent(VideoResolutionComponent);
|
fixture = TestBed.createComponent(VideoResolutionComponent);
|
||||||
component = fixture.componentInstance;
|
component = fixture.componentInstance;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
import { Component, EventEmitter, Input, Output, ChangeDetectionStrategy } from '@angular/core';
|
||||||
import { FormsModule } from '@angular/forms';
|
import { FormsModule } from '@angular/forms';
|
||||||
import { MatFormFieldModule } from '@angular/material/form-field';
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
||||||
import { MatInputModule } from '@angular/material/input';
|
import { MatInputModule } from '@angular/material/input';
|
||||||
|
|
@ -7,6 +7,7 @@ import { MatInputModule } from '@angular/material/input';
|
||||||
selector: 'app-video-resolution',
|
selector: 'app-video-resolution',
|
||||||
templateUrl: './video-resolution.component.html',
|
templateUrl: './video-resolution.component.html',
|
||||||
styleUrl: './video-resolution.component.css',
|
styleUrl: './video-resolution.component.css',
|
||||||
|
changeDetection: ChangeDetectionStrategy.Eager,
|
||||||
imports: [FormsModule, MatFormFieldModule, MatInputModule],
|
imports: [FormsModule, MatFormFieldModule, MatInputModule],
|
||||||
})
|
})
|
||||||
export class VideoResolutionComponent {
|
export class VideoResolutionComponent {
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import {
|
||||||
OnDestroy,
|
OnDestroy,
|
||||||
ViewChild,
|
ViewChild,
|
||||||
inject,
|
inject,
|
||||||
|
ChangeDetectionStrategy
|
||||||
} from '@angular/core';
|
} from '@angular/core';
|
||||||
import { FormsModule } from '@angular/forms';
|
import { FormsModule } from '@angular/forms';
|
||||||
import { MAT_DIALOG_DATA, MatDialogRef, MatDialogModule } from '@angular/material/dialog';
|
import { MAT_DIALOG_DATA, MatDialogRef, MatDialogModule } from '@angular/material/dialog';
|
||||||
|
|
@ -28,6 +29,7 @@ import {
|
||||||
selector: 'app-processor-dialog',
|
selector: 'app-processor-dialog',
|
||||||
templateUrl: './processor-dialog.component.html',
|
templateUrl: './processor-dialog.component.html',
|
||||||
styleUrl: './processor-dialog.component.css',
|
styleUrl: './processor-dialog.component.css',
|
||||||
|
changeDetection: ChangeDetectionStrategy.Eager,
|
||||||
imports: [FormsModule, MatDialogModule, MatSlideToggleModule, MatFormFieldModule, MatSelectModule, MatSliderModule, MatButtonModule, MatTooltipModule, MatDividerModule, MatIconModule, MatInputModule],
|
imports: [FormsModule, MatDialogModule, MatSlideToggleModule, MatFormFieldModule, MatSelectModule, MatSliderModule, MatButtonModule, MatTooltipModule, MatDividerModule, MatIconModule, MatInputModule],
|
||||||
})
|
})
|
||||||
export class ProcessorDialogComponent implements AfterViewInit, OnDestroy {
|
export class ProcessorDialogComponent implements AfterViewInit, OnDestroy {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { LiveAnnouncer } from '@angular/cdk/a11y';
|
import { LiveAnnouncer } from '@angular/cdk/a11y';
|
||||||
import { COMMA, ENTER } from '@angular/cdk/keycodes';
|
import { COMMA, ENTER } from '@angular/cdk/keycodes';
|
||||||
import { Component, inject } from '@angular/core';
|
import { Component, inject, ChangeDetectionStrategy } from '@angular/core';
|
||||||
import { FormsModule } from '@angular/forms';
|
import { FormsModule } from '@angular/forms';
|
||||||
import { MatChipInputEvent, MatChipsModule } from '@angular/material/chips';
|
import { MatChipInputEvent, MatChipsModule } from '@angular/material/chips';
|
||||||
import { MatDialogRef, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
import { MatDialogRef, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
||||||
|
|
@ -40,6 +40,7 @@ import {
|
||||||
selector: 'app-room-api-dialog',
|
selector: 'app-room-api-dialog',
|
||||||
templateUrl: './room-api-dialog.component.html',
|
templateUrl: './room-api-dialog.component.html',
|
||||||
styleUrl: './room-api-dialog.component.css',
|
styleUrl: './room-api-dialog.component.css',
|
||||||
|
changeDetection: ChangeDetectionStrategy.Eager,
|
||||||
imports: [FormsModule, MatDialogModule, MatFormFieldModule, MatInputModule, MatButtonModule, MatCheckboxModule, MatDividerModule, MatSelectModule, MatChipsModule, MatIconModule, MatTooltipModule, MatSlideToggleModule],
|
imports: [FormsModule, MatDialogModule, MatFormFieldModule, MatInputModule, MatButtonModule, MatCheckboxModule, MatDividerModule, MatSelectModule, MatChipsModule, MatIconModule, MatTooltipModule, MatSlideToggleModule],
|
||||||
})
|
})
|
||||||
export class RoomApiDialogComponent {
|
export class RoomApiDialogComponent {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { RoomConf } from '../test-sessions/test-sessions.component';
|
||||||
import { OpenviduInstanceComponent } from './openvidu-instance.component';
|
import { OpenviduInstanceComponent } from './openvidu-instance.component';
|
||||||
|
|
||||||
describe('OpenviduInstanceComponent', () => {
|
describe('OpenviduInstanceComponent', () => {
|
||||||
|
|
@ -8,10 +9,18 @@ describe('OpenviduInstanceComponent', () => {
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
declarations: [OpenviduInstanceComponent]
|
imports: [OpenviduInstanceComponent]
|
||||||
});
|
});
|
||||||
fixture = TestBed.createComponent(OpenviduInstanceComponent);
|
fixture = TestBed.createComponent(OpenviduInstanceComponent);
|
||||||
component = fixture.componentInstance;
|
component = fixture.componentInstance;
|
||||||
|
const roomConf: RoomConf = {
|
||||||
|
uid: 0,
|
||||||
|
subscriber: true,
|
||||||
|
publisher: true,
|
||||||
|
startSession: false,
|
||||||
|
};
|
||||||
|
fixture.componentRef.setInput('roomConf', roomConf);
|
||||||
|
fixture.componentRef.setInput('index', 0);
|
||||||
fixture.detectChanges();
|
fixture.detectChanges();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import {
|
||||||
Input,
|
Input,
|
||||||
Output,
|
Output,
|
||||||
inject,
|
inject,
|
||||||
|
ChangeDetectionStrategy
|
||||||
} from '@angular/core';
|
} from '@angular/core';
|
||||||
import { NgClass, KeyValuePipe } from '@angular/common';
|
import { NgClass, KeyValuePipe } from '@angular/common';
|
||||||
import { FormsModule } from '@angular/forms';
|
import { FormsModule } from '@angular/forms';
|
||||||
|
|
@ -77,6 +78,7 @@ import {
|
||||||
selector: 'app-openvidu-instance',
|
selector: 'app-openvidu-instance',
|
||||||
templateUrl: './openvidu-instance.component.html',
|
templateUrl: './openvidu-instance.component.html',
|
||||||
styleUrl: './openvidu-instance.component.css',
|
styleUrl: './openvidu-instance.component.css',
|
||||||
|
changeDetection: ChangeDetectionStrategy.Eager,
|
||||||
imports: [NgClass, KeyValuePipe, FormsModule, MatCardModule, MatFormFieldModule, MatInputModule, MatIconModule, MatButtonModule, MatCheckboxModule, MatExpansionModule, ParticipantComponent],
|
imports: [NgClass, KeyValuePipe, FormsModule, MatCardModule, MatFormFieldModule, MatInputModule, MatIconModule, MatButtonModule, MatCheckboxModule, MatExpansionModule, ParticipantComponent],
|
||||||
})
|
})
|
||||||
export class OpenviduInstanceComponent {
|
export class OpenviduInstanceComponent {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
import { Room } from 'livekit-client';
|
||||||
|
|
||||||
import { ParticipantComponent } from './participant.component';
|
import { ParticipantComponent } from './participant.component';
|
||||||
|
|
||||||
|
|
@ -8,10 +9,14 @@ describe('ParticipantComponent', () => {
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
declarations: [ParticipantComponent]
|
imports: [ParticipantComponent]
|
||||||
});
|
});
|
||||||
fixture = TestBed.createComponent(ParticipantComponent);
|
fixture = TestBed.createComponent(ParticipantComponent);
|
||||||
component = fixture.componentInstance;
|
component = fixture.componentInstance;
|
||||||
|
const room = new Room();
|
||||||
|
fixture.componentRef.setInput('room', room);
|
||||||
|
fixture.componentRef.setInput('participant', room.localParticipant);
|
||||||
|
fixture.componentRef.setInput('index', 0);
|
||||||
fixture.detectChanges();
|
fixture.detectChanges();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Component, EventEmitter, Input, Output, ChangeDetectorRef, inject } from '@angular/core';
|
import { Component, EventEmitter, Input, Output, ChangeDetectorRef, inject, ChangeDetectionStrategy } from '@angular/core';
|
||||||
import { NgClass, KeyValuePipe } from '@angular/common';
|
import { NgClass, KeyValuePipe } from '@angular/common';
|
||||||
import { MatDialog } from '@angular/material/dialog';
|
import { MatDialog } from '@angular/material/dialog';
|
||||||
import { MatIconModule } from '@angular/material/icon';
|
import { MatIconModule } from '@angular/material/icon';
|
||||||
|
|
@ -47,6 +47,7 @@ import {
|
||||||
selector: 'app-participant',
|
selector: 'app-participant',
|
||||||
templateUrl: './participant.component.html',
|
templateUrl: './participant.component.html',
|
||||||
styleUrl: './participant.component.css',
|
styleUrl: './participant.component.css',
|
||||||
|
changeDetection: ChangeDetectionStrategy.Eager,
|
||||||
imports: [NgClass, KeyValuePipe, MatIconModule, MatTooltipModule, MatExpansionModule, VideoTrackComponent, AudioTrackComponent, DataTrackComponent],
|
imports: [NgClass, KeyValuePipe, MatIconModule, MatTooltipModule, MatExpansionModule, VideoTrackComponent, AudioTrackComponent, DataTrackComponent],
|
||||||
})
|
})
|
||||||
export class ParticipantComponent {
|
export class ParticipantComponent {
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ describe('TestScenariosComponent', () => {
|
||||||
|
|
||||||
beforeEach(waitForAsync(() => {
|
beforeEach(waitForAsync(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
declarations: [ TestScenariosComponent ]
|
imports: [TestScenariosComponent]
|
||||||
})
|
})
|
||||||
.compileComponents();
|
.compileComponents();
|
||||||
}));
|
}));
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Component, OnDestroy, OnInit } from '@angular/core';
|
import { Component, OnDestroy, OnInit, ChangeDetectionStrategy } from '@angular/core';
|
||||||
import { FormsModule } from '@angular/forms';
|
import { FormsModule } from '@angular/forms';
|
||||||
import { Subscription } from 'rxjs';
|
import { Subscription } from 'rxjs';
|
||||||
|
|
||||||
|
|
@ -49,6 +49,7 @@ export interface User {
|
||||||
selector: 'app-test-scenarios',
|
selector: 'app-test-scenarios',
|
||||||
templateUrl: './test-scenarios.component.html',
|
templateUrl: './test-scenarios.component.html',
|
||||||
styleUrl: './test-scenarios.component.css',
|
styleUrl: './test-scenarios.component.css',
|
||||||
|
changeDetection: ChangeDetectionStrategy.Eager,
|
||||||
imports: [FormsModule, MatButtonModule, MatFormFieldModule, MatInputModule, MatIconModule, UsersTableComponent],
|
imports: [FormsModule, MatButtonModule, MatFormFieldModule, MatInputModule, MatIconModule, UsersTableComponent],
|
||||||
})
|
})
|
||||||
export class TestScenariosComponent implements OnInit, OnDestroy {
|
export class TestScenariosComponent implements OnInit, OnDestroy {
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ describe('TestSessionsComponent', () => {
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
declarations: [TestSessionsComponent]
|
imports: [TestSessionsComponent]
|
||||||
});
|
});
|
||||||
fixture = TestBed.createComponent(TestSessionsComponent);
|
fixture = TestBed.createComponent(TestSessionsComponent);
|
||||||
component = fixture.componentInstance;
|
component = fixture.componentInstance;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { animate, style, transition, trigger } from '@angular/animations';
|
import { animate, style, transition, trigger } from '@angular/animations';
|
||||||
import { Component } from '@angular/core';
|
import { Component, ChangeDetectionStrategy } from '@angular/core';
|
||||||
import { FormsModule } from '@angular/forms';
|
import { FormsModule } from '@angular/forms';
|
||||||
import { Subscription } from 'rxjs';
|
import { Subscription } from 'rxjs';
|
||||||
import { TestFeedService } from 'src/app/services/test-feed.service';
|
import { TestFeedService } from 'src/app/services/test-feed.service';
|
||||||
|
|
@ -30,6 +30,7 @@ export interface RoomConf {
|
||||||
]),
|
]),
|
||||||
]),
|
]),
|
||||||
],
|
],
|
||||||
|
changeDetection: ChangeDetectionStrategy.Eager,
|
||||||
imports: [FormsModule, MatButtonModule, MatCheckboxModule, MatFormFieldModule, MatInputModule, OpenviduInstanceComponent],
|
imports: [FormsModule, MatButtonModule, MatCheckboxModule, MatFormFieldModule, MatInputModule, OpenviduInstanceComponent],
|
||||||
})
|
})
|
||||||
export class TestSessionsComponent {
|
export class TestSessionsComponent {
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import {
|
||||||
Input,
|
Input,
|
||||||
Output,
|
Output,
|
||||||
ViewChild,
|
ViewChild,
|
||||||
|
ChangeDetectionStrategy
|
||||||
} from '@angular/core';
|
} from '@angular/core';
|
||||||
import {
|
import {
|
||||||
TrackPublication,
|
TrackPublication,
|
||||||
|
|
@ -28,6 +29,7 @@ import {
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-track',
|
selector: 'app-track',
|
||||||
|
changeDetection: ChangeDetectionStrategy.Eager,
|
||||||
template: '',
|
template: '',
|
||||||
})
|
})
|
||||||
export class TrackComponent {
|
export class TrackComponent {
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import {
|
||||||
AfterViewInit,
|
AfterViewInit,
|
||||||
ViewChild,
|
ViewChild,
|
||||||
ElementRef,
|
ElementRef,
|
||||||
|
ChangeDetectionStrategy
|
||||||
} from '@angular/core';
|
} from '@angular/core';
|
||||||
import { AudioTrack, VideoTrack } from 'livekit-client';
|
import { AudioTrack, VideoTrack } from 'livekit-client';
|
||||||
|
|
||||||
|
|
@ -12,6 +13,7 @@ import { AudioTrack, VideoTrack } from 'livekit-client';
|
||||||
template: `
|
template: `
|
||||||
<video #mediaElement [id]="videoId" autoplay playsinline></video>
|
<video #mediaElement [id]="videoId" autoplay playsinline></video>
|
||||||
`,
|
`,
|
||||||
|
changeDetection: ChangeDetectionStrategy.Eager,
|
||||||
styles: [
|
styles: [
|
||||||
`
|
`
|
||||||
video {
|
video {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Component, Input } from '@angular/core';
|
import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
|
||||||
import { AudioTrack, VideoTrack } from 'livekit-client';
|
import { AudioTrack, VideoTrack } from 'livekit-client';
|
||||||
import { MatBadgeModule } from '@angular/material/badge';
|
import { MatBadgeModule } from '@angular/material/badge';
|
||||||
import { CallbackPipe } from 'src/app/pipes/callback.pipe';
|
import { CallbackPipe } from 'src/app/pipes/callback.pipe';
|
||||||
|
|
@ -9,6 +9,7 @@ import { User } from '../test-scenarios/test-scenarios.component';
|
||||||
selector: 'app-users-table',
|
selector: 'app-users-table',
|
||||||
styleUrl: 'users-table.component.css',
|
styleUrl: 'users-table.component.css',
|
||||||
templateUrl: 'users-table.component.html',
|
templateUrl: 'users-table.component.html',
|
||||||
|
changeDetection: ChangeDetectionStrategy.Eager,
|
||||||
imports: [MatBadgeModule, CallbackPipe, TableVideoComponent],
|
imports: [MatBadgeModule, CallbackPipe, TableVideoComponent],
|
||||||
})
|
})
|
||||||
export class UsersTableComponent {
|
export class UsersTableComponent {
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ describe('VideoTrackComponent', () => {
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
declarations: [VideoTrackComponent]
|
imports: [VideoTrackComponent]
|
||||||
});
|
});
|
||||||
fixture = TestBed.createComponent(VideoTrackComponent);
|
fixture = TestBed.createComponent(VideoTrackComponent);
|
||||||
component = fixture.componentInstance;
|
component = fixture.componentInstance;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Component, inject } from '@angular/core';
|
import { Component, inject, ChangeDetectionStrategy } from '@angular/core';
|
||||||
import { NgClass } from '@angular/common';
|
import { NgClass } from '@angular/common';
|
||||||
import {
|
import {
|
||||||
LocalTrack,
|
LocalTrack,
|
||||||
|
|
@ -20,6 +20,7 @@ import { MatSelectModule } from '@angular/material/select';
|
||||||
selector: 'app-video-track',
|
selector: 'app-video-track',
|
||||||
templateUrl: './video-track.component.html',
|
templateUrl: './video-track.component.html',
|
||||||
styleUrl: './video-track.component.css',
|
styleUrl: './video-track.component.css',
|
||||||
|
changeDetection: ChangeDetectionStrategy.Eager,
|
||||||
imports: [NgClass, MatIconModule, MatTooltipModule, MatFormFieldModule, MatSelectModule],
|
imports: [NgClass, MatIconModule, MatTooltipModule, MatFormFieldModule, MatSelectModule],
|
||||||
})
|
})
|
||||||
export class VideoTrackComponent extends TrackComponent {
|
export class VideoTrackComponent extends TrackComponent {
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import { provideZoneChangeDetection } from "@angular/core";
|
||||||
import { bootstrapApplication } from '@angular/platform-browser';
|
import { bootstrapApplication } from '@angular/platform-browser';
|
||||||
import { provideRouter, withHashLocation } from '@angular/router';
|
import { provideRouter, withHashLocation } from '@angular/router';
|
||||||
import { provideAnimationsAsync } from '@angular/platform-browser/animations/async';
|
import { provideAnimationsAsync } from '@angular/platform-browser/animations/async';
|
||||||
import { provideHttpClient } from '@angular/common/http';
|
import { provideHttpClient, withXhr } from '@angular/common/http';
|
||||||
import { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';
|
import { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';
|
||||||
|
|
||||||
import { AppComponent } from './app/app.component';
|
import { AppComponent } from './app/app.component';
|
||||||
|
|
@ -12,7 +12,7 @@ bootstrapApplication(AppComponent, {
|
||||||
providers: [
|
providers: [
|
||||||
provideZoneChangeDetection(),provideRouter(routes, withHashLocation()),
|
provideZoneChangeDetection(),provideRouter(routes, withHashLocation()),
|
||||||
provideAnimationsAsync(),
|
provideAnimationsAsync(),
|
||||||
provideHttpClient(),
|
provideHttpClient(withXhr()),
|
||||||
{
|
{
|
||||||
provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,
|
provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,
|
||||||
useValue: { appearance: 'outline', subscriptSizing: 'dynamic' },
|
useValue: { appearance: 'outline', subscriptSizing: 'dynamic' },
|
||||||
|
|
|
||||||
|
|
@ -14,5 +14,13 @@
|
||||||
],
|
],
|
||||||
"include": [
|
"include": [
|
||||||
"src/**/*.d.ts"
|
"src/**/*.d.ts"
|
||||||
]
|
],
|
||||||
|
"angularCompilerOptions": {
|
||||||
|
"extendedDiagnostics": {
|
||||||
|
"checks": {
|
||||||
|
"nullishCoalescingNotNullable": "suppress",
|
||||||
|
"optionalChainNotNullable": "suppress"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
{
|
{
|
||||||
"compileOnSave": false,
|
"compileOnSave": false,
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"baseUrl": "./",
|
|
||||||
"outDir": "./dist/out-tsc",
|
"outDir": "./dist/out-tsc",
|
||||||
"forceConsistentCasingInFileNames": true,
|
"forceConsistentCasingInFileNames": true,
|
||||||
"esModuleInterop": true,
|
"esModuleInterop": true,
|
||||||
|
|
@ -22,6 +21,8 @@
|
||||||
"strictPropertyInitialization": false,
|
"strictPropertyInitialization": false,
|
||||||
"skipLibCheck": true,
|
"skipLibCheck": true,
|
||||||
"paths": {
|
"paths": {
|
||||||
|
"src/*": ["./src/*"],
|
||||||
|
"node_modules/*": ["./node_modules/*"],
|
||||||
"crypto": ["./node_modules/crypto-browserify"],
|
"crypto": ["./node_modules/crypto-browserify"],
|
||||||
"node:crypto": ["./node_modules/crypto-browserify"],
|
"node:crypto": ["./node_modules/crypto-browserify"],
|
||||||
"stream": ["./node_modules/stream-browserify"],
|
"stream": ["./node_modules/stream-browserify"],
|
||||||
|
|
|
||||||
|
|
@ -10,5 +10,13 @@
|
||||||
"include": [
|
"include": [
|
||||||
"src/**/*.spec.ts",
|
"src/**/*.spec.ts",
|
||||||
"src/**/*.d.ts"
|
"src/**/*.d.ts"
|
||||||
]
|
],
|
||||||
|
"angularCompilerOptions": {
|
||||||
|
"extendedDiagnostics": {
|
||||||
|
"checks": {
|
||||||
|
"nullishCoalescingNotNullable": "suppress",
|
||||||
|
"optionalChainNotNullable": "suppress"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue