| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 | 
							- import PropTypes from 'prop-types';
 - import React, { Component } from 'react';
 - 
 - import { Video } from '../../base/media';
 - 
 - /**
 -  * Constants to describe the dimensions of the video. Landscape videos
 -  * are wider than they are taller and portrait videos are taller than they
 -  * are wider. The dimensions will determine how {@code LargeVideoBackground}
 -  * will strech to fill its container.
 -  *
 -  * @type {Object}
 -  */
 - export const ORIENTATION = {
 -     LANDSCAPE: 'landscape',
 -     PORTRAIT: 'portrait'
 - };
 - 
 - /**
 -  * A mapping of orientations to a class that should fit the
 -  * {@code LargeVideoBackground} into its container.
 -  *
 -  * @private
 -  * @type {Object}
 -  */
 - const ORIENTATION_TO_CLASS = {
 -     [ORIENTATION.LANDSCAPE]: 'fit-full-width',
 -     [ORIENTATION.PORTRAIT]: 'fit-full-height'
 - };
 - 
 - /**
 -  * Implements a React Component which shows a video element intended to be used
 -  * as a background to fill the empty space of container with another video.
 -  *
 -  * @extends Component
 -  */
 - export class LargeVideoBackground extends Component {
 -     /**
 -      * {@code LargeVideoBackground} component's property types.
 -      *
 -      * @static
 -      */
 -     static propTypes = {
 -         /**
 -          * Additional CSS class names to add to the root of the component.
 -          */
 -         className: PropTypes.string,
 - 
 -         /**
 -          * Whether or not the background should have its visibility hidden.
 -          */
 -         hidden: PropTypes.bool,
 - 
 -         /**
 -          * Whether or not the video should display flipped horizontally, so
 -          * left becomes right and right becomes left.
 -          */
 -         mirror: PropTypes.bool,
 - 
 -         /**
 -          * Whether the component should ensure full width of the video is
 -          * displayed (landscape) or full height (portrait).
 -          */
 -         orientationFit: PropTypes.oneOf([
 -             ORIENTATION.LANDSCAPE,
 -             ORIENTATION.PORTRAIT
 -         ]),
 - 
 -         /**
 -          * Whether or not to display a filter on the video to visually indicate
 -          * a problem with the video being displayed.
 -          */
 -         showLocalProblemFilter: PropTypes.bool,
 - 
 -         /**
 -          * Whether or not to display a filter on the video to visually indicate
 -          * a problem with the video being displayed.
 -          */
 -         showRemoteProblemFilter: PropTypes.bool,
 - 
 -         /**
 -          * The video stream to display.
 -          */
 -         videoTrack: PropTypes.object
 -     };
 - 
 -     /**
 -      * Implements React's {@link Component#render()}.
 -      *
 -      * @inheritdoc
 -      * @returns {ReactElement}
 -      */
 -     render() {
 -         const {
 -             hidden,
 -             mirror,
 -             orientationFit,
 -             showLocalProblemFilter,
 -             showRemoteProblemFilter,
 -             videoTrack
 -         } = this.props;
 -         const orientationClass = orientationFit
 -             ? ORIENTATION_TO_CLASS[orientationFit] : '';
 -         const classNames = `large-video-background ${mirror ? 'flip-x' : ''} ${
 -             hidden ? 'invisible' : ''} ${orientationClass} ${
 -             showLocalProblemFilter ? 'videoProblemFilter' : ''} ${
 -             showRemoteProblemFilter ? 'remoteVideoProblemFilter' : ''}`;
 -         const videoTrackModel = {
 -             jitsiTrack: hidden ? null : videoTrack
 -         };
 - 
 -         return (
 -             <div className = { classNames }>
 -                 <Video
 -                     autoPlay = { true }
 -                     id = 'largeVideoBackground'
 -                     videoTrack = { videoTrackModel } />
 -             </div>
 -         );
 -     }
 - }
 
 
  |