UNPKG

vidstack

Version:

Build awesome media experiences on the web.

33 lines (30 loc) 1.45 kB
import { $$_create_walker, $$_effect, $$_attr, $$_ref, $$_create_template } from 'maverick.js/dom'; import { computed } from 'maverick.js'; import { isString } from 'maverick.js/std'; import { V as VIDEO_EXTENSIONS, c as VIDEO_TYPES, i as isHLSSrc } from '../audio/loader.js'; import { X as canPlayHLSNatively } from '../../media-core.js'; const $$_templ = /* @__PURE__ */ $$_create_template(`<!$><video preload="none" aria-hidden="true"></video>`), $$_templ_2 = $$_templ; class VideoProviderLoader { qa; canPlay(src) { return isString(src.src) ? VIDEO_EXTENSIONS.test(src.src) || VIDEO_TYPES.has(src.type) || src.src.startsWith("blob:") && src.type === "video/object" || isHLSSrc(src) && canPlayHLSNatively() : src.type === "video/object"; } mediaType() { return "video"; } async load(context) { return new (await import('./provider.js')).VideoProvider(this.qa, context); } render($store) { const $poster = computed(() => $store.poster() && $store.controls() ? $store.poster() : null); return (() => { const [$$_root, $$_walker] = $$_create_walker($$_templ_2); $$_effect(() => $$_attr($$_root, "controls", $store.controls())); $$_effect(() => $$_attr($$_root, "crossorigin", $store.crossorigin())); $$_effect(() => $$_attr($$_root, "poster", $poster())); $$_ref($$_root, (el) => void (this.qa = el)); return $$_root; })(); } } export { VideoProviderLoader as V };