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.
99 lines (98 loc) • 4.08 kB
TypeScript
import { TemplateRef } from '@angular/core';
import { IconDefinition } from '@fortawesome/free-solid-svg-icons';
import { EventType } from '../../../@types/types';
import * as i0 from "@angular/core";
export interface ShareButton {
icon: IconDefinition;
action: () => void | Promise<void>;
show: boolean;
color?: string;
iconColor?: string;
wrapperAttributes?: {
[key: string]: any;
};
iconAttributes?: {
[key: string]: any;
};
}
export interface ShareButtonRenderContext {
button: ShareButton;
index: number;
shareUrl: string;
}
export interface ShareButtonsRenderContext {
buttons: ShareButton[];
shareUrl: string;
}
export interface ShareButtonsComponentOptions {
meetingID: string;
shareButtons?: ShareButton[];
eventType: EventType;
localLink?: string;
containerAttributes?: {
[key: string]: any;
};
renderContainer?: TemplateRef<ShareButtonsRenderContext>;
renderButtons?: TemplateRef<ShareButtonsRenderContext>;
renderButton?: TemplateRef<ShareButtonRenderContext>;
renderIcon?: TemplateRef<ShareButtonRenderContext>;
getShareUrl?: (options: {
meetingID: string;
eventType: EventType;
localLink?: string;
}) => string;
}
export type ShareButtonsComponentType = (options: ShareButtonsComponentOptions) => HTMLElement;
/**
* @component ShareButtonsComponent
* @selector app-share-buttons-component
* @description Displays a set of share buttons for sharing a meeting link on social media and email.
*
* @example
* ```html
* <app-share-buttons-component
* [meetingID]="'12345'"
* [eventType]="'broadcast'"
* [shareButtons]="customShareButtons"
* [localLink]="'https://www.google.com'"
* ></app-share-buttons-component>
* ```
*
* ```typescript
* const customShareButtons = [
* { icon: faEnvelope, action: () => console.log('Email'), show: true },
* { icon: faFacebook, action: () => console.log('Facebook'), show: true },
* ];
* ```
*/
export declare class ShareButtonsComponent {
meetingID: string;
isDarkMode?: boolean;
shareButtons: ShareButton[];
eventType: EventType;
localLink?: string;
containerAttributes?: {
[key: string]: any;
};
renderContainer?: TemplateRef<ShareButtonsRenderContext>;
renderButtons?: TemplateRef<ShareButtonsRenderContext>;
renderButton?: TemplateRef<ShareButtonRenderContext>;
renderIcon?: TemplateRef<ShareButtonRenderContext>;
getShareUrlFn?: (options: {
meetingID: string;
eventType: EventType;
localLink?: string;
}) => string;
get resolvedIsDarkMode(): boolean;
defaultShareButtons: ShareButton[];
get shareName(): "chat" | "broadcast" | "meeting";
getShareUrl(): string;
get filteredShareButtons(): ShareButton[];
get shareButtonsRenderContext(): ShareButtonsRenderContext;
getButtonRenderContext(button: ShareButton, index: number): ShareButtonRenderContext;
getButtonStyle(button: ShareButton, index: number): any;
getIconStyle(button: ShareButton): any;
getButtonAriaLabel(index: number): string;
static ɵfac: i0.ɵɵFactoryDeclaration<ShareButtonsComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<ShareButtonsComponent, "app-share-buttons-component", never, { "meetingID": { "alias": "meetingID"; "required": false; }; "isDarkMode": { "alias": "isDarkMode"; "required": false; }; "shareButtons": { "alias": "shareButtons"; "required": false; }; "eventType": { "alias": "eventType"; "required": false; }; "localLink": { "alias": "localLink"; "required": false; }; "containerAttributes": { "alias": "containerAttributes"; "required": false; }; "renderContainer": { "alias": "renderContainer"; "required": false; }; "renderButtons": { "alias": "renderButtons"; "required": false; }; "renderButton": { "alias": "renderButton"; "required": false; }; "renderIcon": { "alias": "renderIcon"; "required": false; }; "getShareUrlFn": { "alias": "getShareUrlFn"; "required": false; }; }, {}, never, never, true, never>;
}