2022-03-07 16:54:27 +01:00
|
|
|
import { Directive, TemplateRef, ViewContainerRef } from '@angular/core';
|
2022-03-07 15:50:27 +01:00
|
|
|
|
2022-03-23 13:48:17 +01:00
|
|
|
/**
|
|
|
|
* The ***ovToolbar** directive allows to replace the default toolbar component injecting your custom template.
|
|
|
|
*
|
|
|
|
* @example
|
|
|
|
* <my-custom-toolbar *ovToolbar></my-custom-toolbar>
|
|
|
|
*
|
|
|
|
*/
|
2022-03-07 15:50:27 +01:00
|
|
|
@Directive({
|
|
|
|
selector: '[ovToolbar]'
|
|
|
|
})
|
|
|
|
export class ToolbarDirective {
|
2022-03-23 13:48:17 +01:00
|
|
|
/**
|
|
|
|
* @ignore
|
|
|
|
*/
|
2022-03-07 15:50:27 +01:00
|
|
|
constructor(public template: TemplateRef<any>, public viewContainer: ViewContainerRef) {}
|
|
|
|
}
|
|
|
|
|
2022-03-23 13:48:17 +01:00
|
|
|
/**
|
|
|
|
* The ***ovToolbarAdditionalButtons** directive allows to add additional buttons to the toolbar.
|
|
|
|
* There are two ways to use this directive:
|
|
|
|
*
|
|
|
|
* 1. Adding it to an element as a child of the parent element **_ov-videoconference_** {@link VideoconferenceComponent}
|
|
|
|
* @example
|
|
|
|
* <ov-videoconference>
|
|
|
|
* <div *ovToolbarAdditionalButtons>
|
|
|
|
* <button>Additional button</button>
|
|
|
|
* <button>Click Me</button>
|
|
|
|
* </div>
|
|
|
|
* </ov-videoconference>
|
|
|
|
*
|
|
|
|
* <br>
|
|
|
|
* 2. Adding it to an element as child of the element tagged with the {@link ToolbarDirective}
|
|
|
|
* @example
|
|
|
|
* <ov-videoconference>
|
|
|
|
* <my-toolbar *ovToolbar>
|
|
|
|
* <div *ovToolbarAdditionalButtons>
|
|
|
|
* <button>Additional button</button>
|
|
|
|
* <button>Click Me</button>
|
|
|
|
* </div>
|
|
|
|
* </my-toolbar>
|
|
|
|
* </ov-videoconference>
|
|
|
|
*
|
|
|
|
*/
|
2022-03-10 11:42:48 +01:00
|
|
|
@Directive({
|
|
|
|
selector: '[ovToolbarAdditionalButtons]'
|
|
|
|
})
|
|
|
|
export class ToolbarAdditionalButtonsDirective {
|
2022-03-23 13:48:17 +01:00
|
|
|
/**
|
|
|
|
* @ignore
|
|
|
|
*/
|
2022-03-10 11:42:48 +01:00
|
|
|
constructor(public template: TemplateRef<any>, public viewContainer: ViewContainerRef) {}
|
|
|
|
}
|
|
|
|
|
2022-03-23 13:48:17 +01:00
|
|
|
/**
|
|
|
|
* The ***ovPanel** directive allows to replace the default panel component injecting your custom template.
|
|
|
|
*
|
|
|
|
* This directive is closely related to {@link ChatPanelDirective} and {@link ParticipantsPanelDirective}.
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* @example
|
|
|
|
* <my-custom-panel *ovPanel>
|
|
|
|
* ...
|
|
|
|
* </my-custom-panel>
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
2022-03-07 15:50:27 +01:00
|
|
|
@Directive({
|
|
|
|
selector: '[ovPanel]'
|
|
|
|
})
|
|
|
|
export class PanelDirective {
|
|
|
|
constructor(public template: TemplateRef<any>, public viewContainer: ViewContainerRef) {}
|
|
|
|
}
|
|
|
|
|
2022-03-23 13:48:17 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* The ***ovChatPanel** directive allows to replace the defaultchat panel template injecting your own component.
|
|
|
|
* There are two ways to use this directive:
|
|
|
|
*
|
|
|
|
* 1. Adding it to an element as a child of the parent element **_ov-videoconference_** {@link VideoconferenceComponent}
|
|
|
|
* @example
|
|
|
|
* <ov-videoconference>
|
|
|
|
* <my-chat-panel *ovChatPanel></my-chat-panel>
|
|
|
|
* </ov-videoconference>
|
|
|
|
*
|
|
|
|
* <br>
|
|
|
|
* 2. Adding it to an element as child of the element tagged with the {@link ToolbarDirective}
|
|
|
|
* @example
|
|
|
|
* <ov-videoconference>
|
|
|
|
* <my-panel *ovPanel>
|
|
|
|
* <my-chat-panel *ovChatPanel></my-chat-panel>
|
|
|
|
* </my-panel>
|
|
|
|
* </ov-videoconference>
|
|
|
|
*
|
|
|
|
* <div class="info-container">
|
|
|
|
* <span>INFO:</span>
|
|
|
|
* You also can use the default components adsada dasda d asd
|
|
|
|
* </div>
|
|
|
|
*
|
|
|
|
*/
|
2022-03-07 15:50:27 +01:00
|
|
|
@Directive({
|
|
|
|
selector: '[ovChatPanel]'
|
|
|
|
})
|
|
|
|
export class ChatPanelDirective {
|
|
|
|
constructor(public template: TemplateRef<any>, public viewContainer: ViewContainerRef) {}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Directive({
|
|
|
|
selector: '[ovParticipantsPanel]'
|
|
|
|
})
|
|
|
|
export class ParticipantsPanelDirective {
|
|
|
|
constructor(public template: TemplateRef<any>, public viewContainer: ViewContainerRef) {}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Directive({
|
|
|
|
selector: '[ovParticipantPanelItem]'
|
|
|
|
})
|
|
|
|
export class ParticipantPanelItemDirective {
|
|
|
|
constructor(public template: TemplateRef<any>, public viewContainer: ViewContainerRef) {}
|
|
|
|
}
|
|
|
|
|
2022-03-10 12:33:49 +01:00
|
|
|
@Directive({
|
|
|
|
selector: '[ovParticipantPanelItemElements]'
|
|
|
|
})
|
|
|
|
export class ParticipantPanelItemElementsDirective {
|
|
|
|
constructor(public template: TemplateRef<any>, public viewContainer: ViewContainerRef) {}
|
|
|
|
}
|
|
|
|
|
2022-03-07 15:50:27 +01:00
|
|
|
@Directive({
|
|
|
|
selector: '[ovLayout]'
|
|
|
|
})
|
|
|
|
export class LayoutDirective {
|
|
|
|
constructor(public template: TemplateRef<any>, public container: ViewContainerRef) {}
|
|
|
|
}
|
|
|
|
|
2022-03-23 13:48:17 +01:00
|
|
|
/**
|
|
|
|
* The ***ovStream** directive allows to replace the default stream component template injecting your own component.
|
|
|
|
* There are two ways to use this directive:
|
|
|
|
*
|
|
|
|
* 1. Adding it to an element as a child of the parent element **_ov-videoconference_** {@link VideoconferenceComponent}
|
|
|
|
* @example
|
|
|
|
* <ov-videoconference>
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* <my-chat-panel *ovChatPanel></my-chat-panel>
|
|
|
|
* </ov-videoconference>
|
|
|
|
*
|
|
|
|
* <br>
|
|
|
|
* 2. Adding it to an element as child of the element tagged with the {@link ToolbarDirective}
|
|
|
|
* @example
|
|
|
|
* <ov-videoconference>
|
|
|
|
* <my-panel *ovPanel>
|
|
|
|
* <my-chat-panel *ovChatPanel></my-chat-panel>
|
|
|
|
* </my-panel>
|
|
|
|
* </ov-videoconference>
|
|
|
|
*
|
|
|
|
* <div class="info-container">
|
|
|
|
* <span>INFO:</span>
|
|
|
|
* You also can use the default components adsada dasda d asd
|
|
|
|
* </div>
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
2022-03-07 15:50:27 +01:00
|
|
|
@Directive({
|
|
|
|
selector: '[ovStream]'
|
|
|
|
})
|
|
|
|
export class StreamDirective {
|
|
|
|
constructor(public template: TemplateRef<any>, public container: ViewContainerRef) {}
|
|
|
|
}
|