@theoplayer/web-ui
    Preparing search index...

    Class UIContainer

    The container element for a THEOplayer UI.

    This element provides a basic layout structure for a general player UI, and handles the creation and management of a THEOplayer player instance for this UI.

    1. Create a <theoplayer-ui> element.
    2. Place your UI elements as children of the <theoplayer-ui>. Set their slot attribute to one of the defined slots (see below) to place them in the layout.
    3. Set its configuration attribute or property to a valid player configuration.
    4. Set its source attribute or property to a valid stream source.

    This element does not provide any UI elements by default, you need to add all elements as children of the <theoplayer-ui> element. If you're looking for a simple out-of-the-box player experience instead, see <theoplayer-default-ui>.

    The styling can be controlled using CSS custom properties (see below).

    <theoplayer-ui>

    AttributeDescription

    configuration

    The THEOplayer UIPlayerConfiguration, as a JSON string.

    source

    The THEOplayer SourceDescription, as a JSON string.

    fluid

    If set, the player automatically adjusts its height to fit the video's aspect ratio.

    muted

    If set, the player starts out as muted. Reflects ui.player.muted.

    autoplay

    If set, the player attempts to automatically start playing (if allowed).

    device-type

    The device type, either "desktop", "mobile" or "tv". Can be used in CSS to show/hide certain device-specific UI controls.

    mobile

    Whether the user is on a mobile device. Equivalent to device-type == "mobile".

    tv

    Whether the user is on a TV device. Equivalent to device-type == "tv".

    stream-type

    The stream type, either "vod", "live" or "dvr". Can be used to show/hide certain UI controls specific for livestreams, such as a <theoplayer-live-button>. If you know in advance that the source will be a livestream, you can set this attribute to avoid a screen flicker when the player switches between its VOD-specific and live-only controls.

    user-idle (readonly)

    Whether the user is considered to be "idle". When the user is idle and the video is playing, all slotted UI elements will be hidden (unless they have the no-auto-hide attribute).

    user-idle-timeout

    The timeout (in seconds) between when the user stops interacting with the UI, and when the user is considered to be "idle".

    dvr-threshold

    The minimum length (in seconds) of a livestream's sliding window for the stream to be DVR and its stream type to be set to "dvr".

    paused (readonly)

    Whether the player is paused. Reflects ui.player.paused.

    ended (readonly)

    Whether the player is ended. Reflects ui.player.ended.

    casting (readonly)

    Whether the player is casting. Reflects ui.player.cast.casting.

    playing-ad (readonly)

    Whether the player is playing a linear ad. Reflects ui.player.ads.playing.

    has-error (readonly)

    Whether the player has encountered a fatal error.

    has-first-play (readonly)

    Whether the player has (previously) started playback for this stream. Can be used in CSS to show/hide certain initial controls, such as a poster image or a centered play button.

    SlotDescription

    (no name, default slot)

    A slot for controls at the bottom of the player. Can be used for controls such as a play button (<theoplayer-play-button>) or a seek bar (<theoplayer-time-range>).

    top-chrome

    A slot for controls at the top of the player. Can be used to display the stream's title, or for a cast button (<theoplayer-chromecast-button>).

    middle-chrome

    A slot for controls in the middle of the player (between the top and bottom chrome).

    centered-chrome

    A slot for controls in the center of the player, layered on top of other controls.

    centered-loading

    A slot for a loading indicator in the center of the player, layered on top of other controls but behind the centered chrome.

    menu

    A slot for extra menus (see <theoplayer-menu>).

    error

    A slot for an error display, to show when the player encounters a fatal error (see <theoplayer-error-display>).

    PropertyDescription

    --theoplayer-min-width

    The minimum width of the player. Defaults to 300px.

    --theoplayer-height

    The height of the player. Defaults to unset. Ignored when --theoplayer-aspect-ratio is set.

    --theoplayer-aspect-ratio

    The aspect ratio of the player. Defaults to 16 / 9. When fluid is set, this is automatically set to the video's natural aspect ratio. Set this to none (or any invalid <length>) to disable, for example when you want to use --theoplayer-height instead.

    --theoplayer-background

    The background color of the player. Defaults to #000.

    --theoplayer-text-color

    The text color of a control. Defaults to #fff.

    --theoplayer-text-font-size

    The font size of any text inside a control. Defaults to 14px.

    --theoplayer-control-height

    The height of a control. Defaults to 24px.

    --theoplayer-control-padding

    The padding around a control. Defaults to 10px.

    --theoplayer-video-border-radius

    The border radius of the <video> element. Defaults to 0.

    --theoplayer-video-object-fit

    The object-fit of the <video> element. Defaults to contain.

    --theoplayer-control-backdrop-background

    The background shown behind all controls. Defaults to transparent.

    --theoplayer-menu-backdrop-background

    The background of the menu layer. Defaults to rgba(0, 0, 0, 0.5).

    --theoplayer-menu-layer-padding

    Padding of the menu layer. Defaults to 10px.

    --theoplayer-menu-min-width

    Minimum width of the menu (desktop). Defaults to 200px.

    --theoplayer-error-background

    The background of the error layer shown when the player has a fatal error. Defaults to rgba(0, 0, 0, 0.5).

    Hierarchy

    Index

    Other

    READY_EVENT: "theoplayerready" = READY_EVENT

    Fired when the backing player is created, and the UIContainer.player property is set.

    • get dvrThreshold(): number

      The minimum length (in seconds) of a livestream's sliding window for the stream to be DVR and its stream type to be set to "dvr".

      Returns number

    • set dvrThreshold(value: number): void

      Parameters

      • value: number

      Returns void

    • get userIdleTimeout(): number

      The timeout (in seconds) between when the user stops interacting with the UI, and when the user is considered to be "idle".

      Returns number

    • set userIdleTimeout(value: number | undefined): void

      Parameters

      • value: number | undefined

      Returns void

    lifecycle

    • Invoked when the component is added to the document's DOM.

      In connectedCallback() you should setup tasks that should only occur when the element is connected to the document. The most common of these is adding event listeners to nodes external to the element, like a keydown event handler added to the window.

      connectedCallback() {
      super.connectedCallback();
      addEventListener('keydown', this._handleKeydown);
      }

      Typically, anything done in connectedCallback() should be undone when the element is disconnected, in disconnectedCallback().

      Returns void

    • Invoked when the component is removed from the document's DOM.

      This callback is the main signal to the element that it may no longer be used. disconnectedCallback() should ensure that nothing is holding a reference to the element (such as event listeners added to nodes external to the element), so that it is free to be garbage collected.

      disconnectedCallback() {
      super.disconnectedCallback();
      window.removeEventListener('keydown', this._handleKeydown);
      }

      An element may be re-connected after being disconnected.

      Returns void

    rendering

    shadowRootOptions: ShadowRootInit = ...

    Options used when calling attachShadow. Set this property to customize the options for the shadowRoot; for example, to create a closed shadowRoot: {mode: 'closed'}.

    Note, these options are used in createRenderRoot. If this method is customized, options should be respected if possible.

    • Invoked on each update to perform rendering tasks. This method may return any value renderable by lit-html's ChildPart - typically a TemplateResult. Setting properties inside this method will not trigger the element to update.

      Returns HTMLTemplateResult

    styles

    styles: CSSResult[] = ...

    Array of styles to apply to the element. The styles should be defined using the css tag function, via constructible stylesheets, or imported from native CSS module scripts.

    Note on Content Security Policy:

    Element styles are implemented with <style> tags when the browser doesn't support adopted StyleSheets. To use such <style> tags with the style-src CSP directive, the style-src value must either include 'unsafe-inline' or nonce-<base64-value> with <base64-value> replaced be a server-generated nonce.

    To provide a nonce to use on generated <style> elements, set window.litNonce to a server-generated nonce in your page's HTML, before loading application code:

    <script>
    // Generated and unique per request:
    window.litNonce = 'a1b2c3d4';
    </script>

    updates

    • Invoked when the element is first updated. Implement to perform one time work on the element after update.

      firstUpdated() {
      this.renderRoot.getElementById('my-text-area').focus();
      }

      Setting properties inside this method will trigger the element to update again after this update cycle completes.

      Returns void