import IHTMLElement from '../html-element/IHTMLElement.js'; import IHTMLFormElement from '../html-form-element/IHTMLFormElement.js'; import IHTMLLabelElement from '../html-label-element/IHTMLLabelElement.js'; import INodeList from '../node/INodeList.js'; import IHTMLOptionsCollection from './IHTMLOptionsCollection.js'; import ValidityState from '../../validity-state/ValidityState.js'; import Event from '../../event/Event.js'; import IHTMLOptionElement from '../html-option-element/IHTMLOptionElement.js'; import IHTMLOptGroupElement from '../html-opt-group-element/IHTMLOptGroupElement.js'; /** * HTML Select Element. * * Reference: * https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement. */ export default interface IHTMLSelectElement extends IHTMLElement { readonly form: IHTMLFormElement; readonly labels: INodeList; readonly options: IHTMLOptionsCollection; readonly type: string; readonly validity: ValidityState; readonly willValidate: boolean; readonly validationMessage: string; autofocus: boolean; disabled: boolean; length: number; selectedIndex: number; value: string; name: string; multiple: boolean; required: boolean; // Events onchange: (event: Event) => void | null; oninput: (event: Event) => void | null; /** * Adds new option to collection. * * @param element HTMLOptionElement or HTMLOptGroupElement to add. * @param before HTMLOptionElement or index number. */ add( element: IHTMLOptionElement | IHTMLOptGroupElement, before?: number | IHTMLOptionElement | IHTMLOptGroupElement ): void; /** * Returns option element by index. * * @param index Index. */ item(index: number): IHTMLOptionElement | IHTMLOptGroupElement; /** * Removes option element from the collection. * * @param index Index. */ remove(index?: number): void; /** * Sets validation message. * * @param message Message. */ setCustomValidity(message: string): void; /** * Checks validity. * * @returns "true" if the field is valid. */ checkValidity(): boolean; /** * Reports validity. * * @returns "true" if the field is valid. */ reportValidity(): boolean; }