From fa6a33c558d2d216a4674ed6b1abedab68e8b0be Mon Sep 17 00:00:00 2001 From: yaojunchang <1013905008@qq.com> Date: Wed, 24 Jul 2024 09:52:17 +0800 Subject: [PATCH] feat: augmenting HTMLVideoElement --- esm/html/video-element.js | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/esm/html/video-element.js b/esm/html/video-element.js index af0eadc4..4c202e2d 100644 --- a/esm/html/video-element.js +++ b/esm/html/video-element.js @@ -1,10 +1,33 @@ +import {registerHTMLClass} from '../shared/register-html-class.js'; +import {stringAttribute} from '../shared/attributes.js'; + import {HTMLElement} from './element.js'; +const tagName = 'video'; + /** * @implements globalThis.HTMLVideoElement */ -export class HTMLVideoElement extends HTMLElement { - constructor(ownerDocument, localName = 'video') { +class HTMLVideoElement extends HTMLElement { + constructor(ownerDocument, localName = tagName) { super(ownerDocument, localName); } + + /* c8 ignore start */ + get src() { return stringAttribute.get(this, 'src'); } + set src(value) { stringAttribute.set(this, 'src', value); } + + get srcset() { return stringAttribute.get(this, 'srcset'); } + set srcset(value) { stringAttribute.set(this, 'srcset', value); } + + get sizes() { return stringAttribute.get(this, 'sizes'); } + set sizes(value) { stringAttribute.set(this, 'sizes', value); } + + get type() { return stringAttribute.get(this, 'type'); } + set type(value) { stringAttribute.set(this, 'type', value); } + /* c8 ignore stop */ } + +registerHTMLClass(tagName, HTMLVideoElement); + +export {HTMLVideoElement};