import HTMLElement from '../html-element/HTMLElement.js'; import * as PropertySymbol from '../../PropertySymbol.js'; import ValidityState from '../../validity-state/ValidityState.js'; /** * HTMLObjectElement * * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement */ export default class HTMLObjectElement extends HTMLElement { [PropertySymbol.formNode] = null; [PropertySymbol.validationMessage] = ''; [PropertySymbol.validity] = new ValidityState(this); /** * Returns the content document. * * @returns Document */ get contentDocument() { return null; } /** * Returns the content window. * * @returns Window */ get contentWindow() { return null; } /** * Returns source. * * @returns Source. */ get data() { if (!this.hasAttribute('data')) { return ''; } try { return new URL(this.getAttribute('data'), this[PropertySymbol.ownerDocument].location.href) .href; } catch (e) { return this.getAttribute('data'); } } /** * Sets source. * * @param data Source. */ set data(data) { this.setAttribute('data', data); } /** * Returns the parent form element. * * @returns Form. */ get form() { if (this[PropertySymbol.formNode]) { return this[PropertySymbol.formNode]; } const id = this[PropertySymbol.attributes][PropertySymbol.namedItems].get('form')?.[PropertySymbol.value]; if (!id || !this[PropertySymbol.isConnected]) { return null; } return this[PropertySymbol.ownerDocument].getElementById(id); } /** * Returns height. * * @returns Height. */ get height() { return this.getAttribute('height') || ''; } /** * Sets height. * * @param height Height. */ set height(height) { this.setAttribute('height', height); } /** * Returns width. * * @returns Width. */ get width() { return this.getAttribute('width') || ''; } /** * Sets width. * * @param width Width. */ set width(width) { this.setAttribute('width', width); } /** * Returns name. * * @returns Name. */ get name() { return this.getAttribute('name') || ''; } /** * Sets name. * * @param name Name. */ set name(name) { this.setAttribute('name', name); } /** * Returns type. * * @returns Type. */ get type() { return this.getAttribute('type') || ''; } /** * Sets type. * * @param type Type. */ set type(type) { this.setAttribute('type', type); } /** * Returns validation message. * * @returns Validation message. */ get validationMessage() { return this[PropertySymbol.validationMessage]; } /** * Returns validity. * * @returns Validity. */ get validity() { return this[PropertySymbol.validity]; } /** * Returns "true" if it will validate. * * @returns "true" if it will validate. */ get willValidate() { return false; } /** * Checks validity. * * @returns "true" if the field is valid. */ checkValidity() { return true; } /** * Reports validity. * * @returns Validity. */ reportValidity() { return this.checkValidity(); } /** * Sets validation message. * * @param message Message. */ setCustomValidity(message) { this[PropertySymbol.validationMessage] = String(message); } } //# sourceMappingURL=HTMLObjectElement.js.map