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.
90 lines (89 loc) • 5.61 kB
TypeScript
import { OnInit, OnChanges, SimpleChanges } from '@angular/core';
import { Participant, ShowAlert } from '../../../@types/types';
import { Socket } from 'socket.io-client';
import { UpdateParticipantPermission, PermissionLevel } from '../../../methods/permissions-methods/update-participant-permission.service';
import { BulkUpdateParticipantPermissions } from '../../../methods/permissions-methods/bulk-update-participant-permissions.service';
import { UpdatePermissionConfig, PermissionConfig, PermissionCapabilities } from '../../../methods/permissions-methods/update-permission-config.service';
import * as i0 from "@angular/core";
export interface PermissionsModalParameters {
participants: Participant[];
member: string;
islevel: string;
socket: Socket;
roomName: string;
showAlert?: ShowAlert;
permissionConfig?: PermissionConfig;
updatePermissionConfig?: (config: PermissionConfig) => void;
getUpdatedAllParams: () => PermissionsModalParameters;
audioSetting?: string;
videoSetting?: string;
screenshareSetting?: string;
chatSetting?: string;
}
type PermissionValue = PermissionCapabilities[keyof PermissionCapabilities];
export declare class PermissionsModalComponent implements OnInit, OnChanges {
private updateParticipantPermissionService;
private bulkUpdateParticipantPermissionsService;
private updatePermissionConfigService;
isPermissionsModalVisible: boolean;
onPermissionsClose: () => void;
parameters: PermissionsModalParameters;
backgroundColor: string;
position: string;
faTimes: import("@fortawesome/fontawesome-common-types").IconDefinition;
faUserShield: import("@fortawesome/fontawesome-common-types").IconDefinition;
faUsers: import("@fortawesome/fontawesome-common-types").IconDefinition;
faCog: import("@fortawesome/fontawesome-common-types").IconDefinition;
faChevronUp: import("@fortawesome/fontawesome-common-types").IconDefinition;
faChevronDown: import("@fortawesome/fontawesome-common-types").IconDefinition;
faCheck: import("@fortawesome/fontawesome-common-types").IconDefinition;
faClock: import("@fortawesome/fontawesome-common-types").IconDefinition;
faBan: import("@fortawesome/fontawesome-common-types").IconDefinition;
faMicrophone: import("@fortawesome/fontawesome-common-types").IconDefinition;
faVideo: import("@fortawesome/fontawesome-common-types").IconDefinition;
faDesktop: import("@fortawesome/fontawesome-common-types").IconDefinition;
faComment: import("@fortawesome/fontawesome-common-types").IconDefinition;
activeTab: 'users' | 'config';
searchFilter: string;
selectedParticipants: Set<string>;
expandedLevel: 'level0' | 'level1' | null;
localConfig: PermissionConfig;
participantsState: Participant[];
constructor(updateParticipantPermissionService: UpdateParticipantPermission, bulkUpdateParticipantPermissionsService: BulkUpdateParticipantPermissions, updatePermissionConfigService: UpdatePermissionConfig);
ngOnInit(): void;
ngOnChanges(changes: SimpleChanges): void;
computeInitialConfig(): PermissionConfig;
updateStateFromParams(): void;
get isHost(): boolean;
get filteredParticipants(): Participant[];
get participantsByLevel(): {
'1': Participant[];
'0': Participant[];
};
getLevelLabel(level: '1' | '0'): string;
getLevelColor(level: '1' | '0'): string;
hasSelected(participantName: string): boolean;
handleParticipantSelect(participantName: string): void;
handleSelectAll(): void;
handleBulkUpdate(newLevel: PermissionLevel): Promise<void>;
handleSingleUpdate(participant: Participant, newLevel: PermissionLevel): Promise<void>;
handleConfigChange(level: 'level0' | 'level1', capability: keyof PermissionCapabilities, value: PermissionValue): void;
handleSaveConfig(): Promise<void>;
toggleLevelConfig(level: 'level0' | 'level1'): void;
levels: ('1' | '0')[];
configLevels: ('level0' | 'level1')[];
capabilities: (keyof PermissionCapabilities)[];
readonly chatOptions: PermissionCapabilities['useChat'][];
readonly standardOptions: PermissionCapabilities['useMic'][];
getParticipantsForLevel(level: '1' | '0'): Participant[];
getConfigValue(level: 'level0' | 'level1', capability: keyof PermissionCapabilities): PermissionValue;
isSelectedConfigOption(level: 'level0' | 'level1', capability: keyof PermissionCapabilities, value: PermissionValue): boolean;
getCapabilityIcon(capability: keyof PermissionCapabilities): import("@fortawesome/fontawesome-common-types").IconDefinition;
getCapabilityName(capability: keyof PermissionCapabilities): "Chat" | "Screen Share" | "Microphone" | "Camera";
getStatusIcon(status: string): import("@fortawesome/fontawesome-common-types").IconDefinition;
getStatusColor(status: string): "#ef4444" | "#f59e0b" | "#22c55e";
getOptionsForCapability(capability: keyof PermissionCapabilities): readonly PermissionValue[];
static ɵfac: i0.ɵɵFactoryDeclaration<PermissionsModalComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<PermissionsModalComponent, "app-permissions-modal", never, { "isPermissionsModalVisible": { "alias": "isPermissionsModalVisible"; "required": false; }; "onPermissionsClose": { "alias": "onPermissionsClose"; "required": false; }; "parameters": { "alias": "parameters"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "position": { "alias": "position"; "required": false; }; }, {}, never, never, true, never>;
}
export {};