|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499 |
- import HTMLElement from '../html-element/HTMLElement';
- import ValidityState from '../validity-state/ValidityState';
- import Event from '../../event/Event';
- import HTMLInputElementSelectionModeEnum from './HTMLInputElementSelectionModeEnum';
- import IHTMLInputElement from './IHTMLInputElement';
- import IHTMLFormElement from '../html-form-element/IHTMLFormElement';
- import File from '../../file/File';
- import IFileList from './IFileList';
- /**
- * HTML Input Element.
- *
- * Reference:
- * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.
- *
- * Used as reference for some of the logic (like selection range):
- * https://github.com/jsdom/jsdom/blob/master/lib/jsdom/living/nodes/nodes/HTMLInputElement-impl.js (MIT licensed).
- */
- export default class HTMLInputElement extends HTMLElement implements IHTMLInputElement {
- formAction: string;
- formMethod: string;
- formNoValidate: boolean;
- _value: any;
- _height: number;
- _width: number;
- defaultChecked: boolean;
- files: IFileList<File>;
- oninput: (event: Event) => void | null;
- oninvalid: (event: Event) => void | null;
- onselectionchange: (event: Event) => void | null;
- private _selectionStart;
- private _selectionEnd;
- private _selectionDirection;
- private _validationMessage;
- /**
- * Returns height.
- *
- * @returns Height.
- */
- get height(): number;
- /**
- * Sets height.
- *
- * @param height Height.
- */
- set height(height: number);
- /**
- * Returns width.
- *
- * @returns Width.
- */
- get width(): number;
- /**
- * Sets width.
- *
- * @param width Width.
- */
- set width(width: number);
- /**
- * Returns size.
- *
- * @returns Size.
- */
- get size(): number;
- /**
- * Sets size.
- *
- * @param size Size.
- */
- set size(size: number);
- /**
- * Returns minlength.
- *
- * @returns Min length.
- */
- get minLength(): number;
- /**
- * Sets minlength.
- *
- * @param minLength Min length.
- */
- set minLength(minlength: number);
- /**
- * Returns maxlength.
- *
- * @returns Max length.
- */
- get maxLength(): number;
- /**
- * Sets maxlength.
- *
- * @param maxlength Max length.
- */
- set maxLength(maxLength: number);
- /**
- * Returns type.
- *
- * @returns Type. Defaults to "text".
- */
- get type(): string;
- /**
- * Sets type.
- *
- * @param type Type.
- */
- set type(type: string);
- /**
- * Returns name.
- *
- * @returns Name.
- */
- get name(): string;
- /**
- * Sets name.
- *
- * @param name Name.
- */
- set name(name: string);
- /**
- * Returns alt.
- *
- * @returns Alt.
- */
- get alt(): string;
- /**
- * Sets alt.
- *
- * @param alt Alt.
- */
- set alt(alt: string);
- /**
- * Returns min.
- *
- * @returns Min.
- */
- get min(): string;
- /**
- * Sets min.
- *
- * @param min Min.
- */
- set min(min: string);
- /**
- * Returns max.
- *
- * @returns Max.
- */
- get max(): string;
- /**
- * Sets max.
- *
- * @param max Max.
- */
- set max(max: string);
- /**
- * Returns pattern.
- *
- * @returns Pattern.
- */
- get pattern(): string;
- /**
- * Sets pattern.
- *
- * @param pattern Pattern.
- */
- set pattern(pattern: string);
- /**
- * Returns placeholder.
- *
- * @returns Placeholder.
- */
- get placeholder(): string;
- /**
- * Sets placeholder.
- *
- * @param placeholder Placeholder.
- */
- set placeholder(placeholder: string);
- /**
- * Returns step.
- *
- * @returns Step.
- */
- get step(): string;
- /**
- * Sets step.
- *
- * @param step Step.
- */
- set step(step: string);
- /**
- * Returns inputmode.
- *
- * @returns Inputmode.
- */
- get inputmode(): string;
- /**
- * Sets inputmode.
- *
- * @param inputmode Inputmode.
- */
- set inputmode(inputmode: string);
- /**
- * Returns accept.
- *
- * @returns Accept.
- */
- get accept(): string;
- /**
- * Sets accept.
- *
- * @param accept Accept.
- */
- set accept(accept: string);
- /**
- * Returns allowdirs.
- *
- * @returns Allowdirs.
- */
- get allowdirs(): string;
- /**
- * Sets allowdirs.
- *
- * @param allowdirs Allowdirs.
- */
- set allowdirs(allowdirs: string);
- /**
- * Returns autocomplete.
- *
- * @returns Autocomplete.
- */
- get autocomplete(): string;
- /**
- * Sets autocomplete.
- *
- * @param autocomplete Autocomplete.
- */
- set autocomplete(autocomplete: string);
- /**
- * Returns src.
- *
- * @returns Src.
- */
- get src(): string;
- /**
- * Sets src.
- *
- * @param src Src.
- */
- set src(src: string);
- /**
- * Returns defaultValue.
- *
- * @returns Defaultvalue.
- */
- get defaultValue(): string;
- /**
- * Sets defaultValue.
- *
- * @param defaultValue Defaultvalue.
- */
- set defaultValue(defaultValue: string);
- /**
- * Returns read only.
- *
- * @returns Read only.
- */
- get readOnly(): boolean;
- /**
- * Sets read only.
- *
- * @param readOnly Read only.
- */
- set readOnly(readOnly: boolean);
- /**
- * Returns disabled.
- *
- * @returns Disabled.
- */
- get disabled(): boolean;
- /**
- * Sets disabled.
- *
- * @param disabled Disabled.
- */
- set disabled(disabled: boolean);
- /**
- * Returns autofocus.
- *
- * @returns Autofocus.
- */
- get autofocus(): boolean;
- /**
- * Sets autofocus.
- *
- * @param autofocus Autofocus.
- */
- set autofocus(autofocus: boolean);
- /**
- * Returns required.
- *
- * @returns Required.
- */
- get required(): boolean;
- /**
- * Sets required.
- *
- * @param required Required.
- */
- set required(required: boolean);
- /**
- * Returns indeterminate.
- *
- * @returns Indeterminate.
- */
- get indeterminate(): boolean;
- /**
- * Sets indeterminate.
- *
- * @param indeterminate Indeterminate.
- */
- set indeterminate(indeterminate: boolean);
- /**
- * Returns multiple.
- *
- * @returns Multiple.
- */
- get multiple(): boolean;
- /**
- * Sets multiple.
- *
- * @param multiple Multiple.
- */
- set multiple(multiple: boolean);
- /**
- * Returns checked.
- *
- * @returns Checked.
- */
- get checked(): boolean;
- /**
- * Sets checked.
- *
- * @param checked Checked.
- */
- set checked(checked: boolean);
- /**
- * Returns value.
- *
- * @returns Value.
- */
- get value(): string;
- /**
- * Sets value.
- *
- * @param value Value.
- */
- set value(value: string);
- /**
- * Returns selection start.
- *
- * @returns Selection start.
- */
- get selectionStart(): number;
- /**
- * Sets selection start.
- *
- * @param start Start.
- */
- set selectionStart(start: number);
- /**
- * Returns selection end.
- *
- * @returns Selection end.
- */
- get selectionEnd(): number;
- /**
- * Sets selection end.
- *
- * @param end End.
- */
- set selectionEnd(end: number);
- /**
- * Returns selection direction.
- *
- * @returns Selection direction.
- */
- get selectionDirection(): string;
- /**
- * Sets selection direction.
- *
- * @param direction Direction.
- */
- set selectionDirection(direction: string);
- /**
- * Returns the parent form element.
- *
- * @returns Form.
- */
- get form(): IHTMLFormElement;
- /**
- * Returns validity state.
- *
- * @returns Validity state.
- */
- get validity(): ValidityState;
- /**
- * Returns "true" if it will validate.
- *
- * @returns "true" if it will validate.
- */
- get willValidate(): boolean;
- /**
- * Returns value as Date.
- *
- * @returns Date.
- */
- get valueAsDate(): Date;
- /**
- * Returns value as number.
- *
- * @returns Number.
- */
- get valueAsNumber(): number;
- /**
- * Returns validation message.
- *
- * @returns Validation message.
- */
- get validationMessage(): string;
- /**
- * Sets validation message.
- *
- * @param message Message.
- */
- setCustomValidity(message: string): void;
- /**
- * Reports validity by dispatching an "invalid" event.
- */
- reportValidity(): void;
- /**
- * Selects the text.
- */
- select(): void;
- /**
- * Set selection range.
- *
- * @param start Start.
- * @param end End.
- * @param [direction="none"] Direction.
- */
- setSelectionRange(start: number, end: number, direction?: string): void;
- /**
- * Set range text.
- *
- * @param replacement Replacement.
- * @param [start] Start.
- * @param [end] End.
- * @param [direction] Direction.
- * @param selectionMode
- */
- setRangeText(replacement: string, start?: number, end?: number, selectionMode?: HTMLInputElementSelectionModeEnum): void;
- /**
- * Checks validity.
- *
- * @returns "true" if the field is valid.
- */
- checkValidity(): boolean;
- /**
- * Steps up.
- *
- * @param [increment] Increment.
- */
- stepUp(increment?: number): void;
- /**
- * Steps down.
- *
- * @param [increment] Increment.
- */
- stepDown(increment?: number): void;
- /**
- * Clones a node.
- *
- * @override
- * @param [deep=false] "true" to clone deep.
- * @returns Cloned node.
- */
- cloneNode(deep?: boolean): IHTMLInputElement;
- /**
- * Checks if private value is supported.
- *
- * @returns "true" if private value is supported.
- */
- /**
- * Checks is selection is supported.
- *
- * @returns "true" if selection is supported.
- */
- private _isSelectionSupported;
- }
|