UNPKG

media-chrome

Version:

Custom elements (web components) for making audio and video player controls that look great in your website or app.

103 lines (98 loc) 3.61 kB
var __accessCheck = (obj, member, msg) => { if (!member.has(obj)) throw TypeError("Cannot " + msg); }; var __privateGet = (obj, member, getter) => { __accessCheck(obj, member, "read from private field"); return getter ? getter.call(obj) : member.get(obj); }; var __privateAdd = (obj, member, value) => { if (member.has(obj)) throw TypeError("Cannot add the same private member more than once"); member instanceof WeakSet ? member.add(obj) : member.set(obj, value); }; var __privateSet = (obj, member, value, setter) => { __accessCheck(obj, member, "write to private field"); setter ? setter.call(obj, value) : member.set(obj, value); return value; }; var _mediaController; import { MediaStateReceiverAttributes } from "./constants.js"; import { document, globalThis } from "./utils/server-safe-globals.js"; const template = document.createElement("template"); template.innerHTML = /*html*/ ` <style> :host { ${/* Need position to display above video for some reason */ ""} box-sizing: border-box; display: var(--media-control-display, var(--media-control-bar-display, inline-flex)); color: var(--media-text-color, var(--media-primary-color, rgb(238 238 238))); --media-loading-indicator-icon-height: 44px; } ::slotted(media-time-range), ::slotted(media-volume-range) { min-height: 100%; } ::slotted(media-time-range), ::slotted(media-clip-selector) { flex-grow: 1; } ::slotted([role="menu"]) { position: absolute; } </style> <slot></slot> `; class MediaControlBar extends globalThis.HTMLElement { constructor() { super(); __privateAdd(this, _mediaController, void 0); if (!this.shadowRoot) { this.attachShadow({ mode: "open" }); this.shadowRoot.appendChild(template.content.cloneNode(true)); } } static get observedAttributes() { return [MediaStateReceiverAttributes.MEDIA_CONTROLLER]; } attributeChangedCallback(attrName, oldValue, newValue) { var _a, _b, _c, _d, _e; if (attrName === MediaStateReceiverAttributes.MEDIA_CONTROLLER) { if (oldValue) { (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this); __privateSet(this, _mediaController, null); } if (newValue && this.isConnected) { __privateSet(this, _mediaController, (_c = this.getRootNode()) == null ? void 0 : _c.getElementById(newValue)); (_e = (_d = __privateGet(this, _mediaController)) == null ? void 0 : _d.associateElement) == null ? void 0 : _e.call(_d, this); } } } connectedCallback() { var _a, _b, _c; const mediaControllerId = this.getAttribute( MediaStateReceiverAttributes.MEDIA_CONTROLLER ); if (mediaControllerId) { __privateSet(this, _mediaController, (_a = this.getRootNode()) == null ? void 0 : _a.getElementById( mediaControllerId )); (_c = (_b = __privateGet(this, _mediaController)) == null ? void 0 : _b.associateElement) == null ? void 0 : _c.call(_b, this); } } disconnectedCallback() { var _a, _b; (_b = (_a = __privateGet(this, _mediaController)) == null ? void 0 : _a.unassociateElement) == null ? void 0 : _b.call(_a, this); __privateSet(this, _mediaController, null); } } _mediaController = new WeakMap(); if (!globalThis.customElements.get("media-control-bar")) { globalThis.customElements.define("media-control-bar", MediaControlBar); } var media_control_bar_default = MediaControlBar; export { media_control_bar_default as default };