mediasfu-angular
Version:
mediasfu-angular - Angular 17/18/19 WebRTC SDK for video conferencing, webinars, broadcasts, live streaming, chat, recording, whiteboard, and AI agents. Prebuilt rooms and fully custom UIs.
125 lines (124 loc) • 7.65 kB
TypeScript
import { OnChanges, SimpleChanges } from '@angular/core';
import { Socket } from 'socket.io-client';
import { Participant, ShowAlert } from '../../../@types/types';
import { TranslationRoomConfig } from '../../../producers/socket-receive-methods/translation-receive-methods.service';
import { ModernRenderMode } from '../../../modern/utils/render-mode.utils';
import * as i0 from "@angular/core";
export interface TranslationChannelAvailability {
languages: string[];
originalProducerId: string;
}
export interface TranslationSettingsModalOptions {
isVisible: boolean;
onClose: () => void;
translationSupported: boolean;
translationConfig: TranslationRoomConfig | null;
member: string;
islevel: string;
audioProducerId: string | null;
participants: Participant[];
mySpokenLanguage: string;
mySpokenLanguageEnabled: boolean;
myDefaultOutputLanguage: string | null;
myDefaultListenLanguage: string | null;
listenPreferences: Map<string, string>;
availableTranslationChannels: Map<string, TranslationChannelAvailability>;
updateMySpokenLanguage: (lang: string) => void;
updateMySpokenLanguageEnabled: (enabled: boolean) => void;
updateMyDefaultOutputLanguage: (lang: string | null) => void;
updateMyDefaultListenLanguage: (lang: string | null) => void;
updateListenPreferences: (prefs: Map<string, string>) => void;
socket: Socket;
roomName: string;
showAlert?: ShowAlert;
showSubtitlesOnCards?: boolean;
updateShowSubtitlesOnCards?: (value: boolean) => void;
canUsePersonalTranslation?: boolean;
personalTranslationUsername?: string;
}
export declare class TranslationSettingsModal implements OnChanges {
isVisible: boolean;
onClose: () => void;
translationSupported: boolean;
translationConfig: TranslationRoomConfig | null;
member: string;
islevel: string;
audioProducerId: string | null;
participants: Participant[];
mySpokenLanguage: string;
mySpokenLanguageEnabled: boolean;
myDefaultOutputLanguage: string | null;
myDefaultListenLanguage: string | null;
listenPreferences: Map<string, string>;
availableTranslationChannels: Map<string, TranslationChannelAvailability>;
updateMySpokenLanguage: (lang: string) => void;
updateMySpokenLanguageEnabled: (enabled: boolean) => void;
updateMyDefaultOutputLanguage: (lang: string | null) => void;
updateMyDefaultListenLanguage: (lang: string | null) => void;
updateListenPreferences: (prefs: Map<string, string>) => void;
socket: Socket;
roomName: string;
showAlert?: ShowAlert;
showSubtitlesOnCards: boolean;
updateShowSubtitlesOnCards?: (value: boolean) => void;
canUsePersonalTranslation: boolean;
personalTranslationUsername?: string;
overlayStyle?: Partial<CSSStyleDeclaration>;
contentStyle?: Partial<CSSStyleDeclaration>;
isDarkMode: boolean;
renderMode: ModernRenderMode;
showHeader: boolean;
readonly faTimes: import("@fortawesome/fontawesome-common-types").IconDefinition;
readonly faClosedCaptioning: import("@fortawesome/fontawesome-common-types").IconDefinition;
readonly faHeadphones: import("@fortawesome/fontawesome-common-types").IconDefinition;
readonly faLanguage: import("@fortawesome/fontawesome-common-types").IconDefinition;
readonly faMicrophone: import("@fortawesome/fontawesome-common-types").IconDefinition;
readonly originalAudioValue = "__original_audio__";
activeTab: 'speaking' | 'listening';
localSpokenLanguage: string;
localSpokenEnabled: boolean;
localDefaultOutputLanguage: string;
localDefaultListenLanguage: string;
localListenPreferences: Map<string, string>;
perSpeakerMode: boolean;
localShowSubtitlesOnCards: boolean;
isSaving: boolean;
readonly allLanguageOptions: {
code: string;
name: string;
}[];
ngOnChanges(changes: SimpleChanges): void;
isVisibleState(): boolean;
isEmbedded(): boolean;
resolvedOverlayStyle(): Record<string, string | number>;
resolvedContentStyle(): Record<string, string | number>;
get translationAvailable(): boolean;
get spokenLanguageOptions(): Array<{
code: string;
name: string;
}>;
get listenLanguageOptions(): Array<{
code: string;
name: string;
}>;
get listeningParticipants(): Participant[];
syncLocalState(): void;
closeModal(): void;
getLanguageLabel(code: string | null | undefined): string;
getSpeakerName(participant: Participant): string;
getSpeakerSelection(participant: Participant): string;
getSpeakerOptions(participant: Participant): Array<{
code: string;
name: string;
}>;
hasSpeakerOptions(participant: Participant): boolean;
updateSpeakerPreference(participant: Participant, language: string): void;
saveSettings(): Promise<void>;
private filterLanguageOptions;
private normalizeSelectableValue;
private getChannelAvailability;
private resolveSpeakerId;
private getParticipantKeys;
static ɵfac: i0.ɵɵFactoryDeclaration<TranslationSettingsModal, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<TranslationSettingsModal, "app-translation-settings-modal", never, { "isVisible": { "alias": "isVisible"; "required": false; }; "onClose": { "alias": "onClose"; "required": false; }; "translationSupported": { "alias": "translationSupported"; "required": false; }; "translationConfig": { "alias": "translationConfig"; "required": false; }; "member": { "alias": "member"; "required": false; }; "islevel": { "alias": "islevel"; "required": false; }; "audioProducerId": { "alias": "audioProducerId"; "required": false; }; "participants": { "alias": "participants"; "required": false; }; "mySpokenLanguage": { "alias": "mySpokenLanguage"; "required": false; }; "mySpokenLanguageEnabled": { "alias": "mySpokenLanguageEnabled"; "required": false; }; "myDefaultOutputLanguage": { "alias": "myDefaultOutputLanguage"; "required": false; }; "myDefaultListenLanguage": { "alias": "myDefaultListenLanguage"; "required": false; }; "listenPreferences": { "alias": "listenPreferences"; "required": false; }; "availableTranslationChannels": { "alias": "availableTranslationChannels"; "required": false; }; "updateMySpokenLanguage": { "alias": "updateMySpokenLanguage"; "required": false; }; "updateMySpokenLanguageEnabled": { "alias": "updateMySpokenLanguageEnabled"; "required": false; }; "updateMyDefaultOutputLanguage": { "alias": "updateMyDefaultOutputLanguage"; "required": false; }; "updateMyDefaultListenLanguage": { "alias": "updateMyDefaultListenLanguage"; "required": false; }; "updateListenPreferences": { "alias": "updateListenPreferences"; "required": false; }; "socket": { "alias": "socket"; "required": false; }; "roomName": { "alias": "roomName"; "required": false; }; "showAlert": { "alias": "showAlert"; "required": false; }; "showSubtitlesOnCards": { "alias": "showSubtitlesOnCards"; "required": false; }; "updateShowSubtitlesOnCards": { "alias": "updateShowSubtitlesOnCards"; "required": false; }; "canUsePersonalTranslation": { "alias": "canUsePersonalTranslation"; "required": false; }; "personalTranslationUsername": { "alias": "personalTranslationUsername"; "required": false; }; "overlayStyle": { "alias": "overlayStyle"; "required": false; }; "contentStyle": { "alias": "contentStyle"; "required": false; }; "isDarkMode": { "alias": "isDarkMode"; "required": false; }; "renderMode": { "alias": "renderMode"; "required": false; }; "showHeader": { "alias": "showHeader"; "required": false; }; }, {}, never, never, true, never>;
}