import { globalThis } from '../utils/server-safe-globals.js'; import { MediaChromeMenu } from './media-chrome-menu.js'; import { getMediaController } from '../utils/element-utils.js'; function getTemplateHTML(_attrs: Record) { return /*html*/ ` ${MediaChromeMenu.getTemplateHTML(_attrs)} `; } /** * @extends {MediaChromeMenu} * * @cssproperty --media-settings-menu-justify-content - `justify-content` of the menu. * @cssproperty --media-settings-menu-background - `background` of settings menu. * @cssproperty --media-settings-menu-flex-direction - `flex-direction` of settings menu. * @cssproperty --media-settings-menu-min-width - `min-width` of settings menu. */ class MediaSettingsMenu extends MediaChromeMenu { static getTemplateHTML = getTemplateHTML; /** * Returns the anchor element when it is a floating menu. */ get anchorElement() { if (this.anchor !== 'auto') return super.anchorElement; return getMediaController(this).querySelector( 'media-settings-menu-button' ); } } if (!globalThis.customElements.get('media-settings-menu')) { globalThis.customElements.define('media-settings-menu', MediaSettingsMenu); } export { MediaSettingsMenu }; export default MediaSettingsMenu;