UNPKG

@instawork/design-system

Version:

The design system for Instawork's web apps

83 lines (82 loc) 3.86 kB
/// <reference types="jquery" /> import { DateTime } from 'luxon'; import { JQueryClipboardEvent, JQueryFocusEvent, JQueryKeyboardEvent, NavDirection } from '../common'; import { TemporalComponent, TemporalInputElement } from '../temporal-component'; import './time-input.component.scss'; export interface TimeInputElement extends TemporalInputElement { } declare global { interface HTMLElementTagNameMap { 'iw-time-input': TimeInputElement; } interface JQuery { iwTimeInput(): JQuery<TimeInputElement>; } } declare type JQueryTimeInputPart = JQuery<HTMLInputElement>; export declare class TimeInputComponent extends TemporalComponent<TimeInputElement> { static readonly COMPONENT_SELECTOR = "iw-time-input"; static readonly TEMPLATE: string; static loadPlugin(): void; get placeholder(): string; set placeholder(placeholder: string); get disabledPlaceholder(): string | boolean; get hasInput(): boolean; private _displayPlaceholder; get displayPlaceholder(): [string, string, string]; get hasDisplayPlaceholder(): boolean; $spacer: JQuery; $parts: JQueryTimeInputPart; parts: HTMLInputElement[]; $hour: JQueryTimeInputPart; $minute: JQueryTimeInputPart; $meridian: JQueryTimeInputPart; constructor($el: JQuery<TimeInputElement>); /** * Returns a jQuery selector of all tabbable elements in the document. * * Used to determine next/previous tab navigation targets. */ getTabbable(): JQuery; protected getDisplayInput(): JQuery; protected getDisplayPlaceholder(): JQuery; protected getValueInput(): JQuery<HTMLInputElement>; protected initDomRefs(): void; protected initEvents(): void; protected initDom(): void; protected onInput(): void; protected onValue(value: DateTime, isChanged: boolean, isValid: boolean): void; protected onInputKeyDown(e: JQueryKeyboardEvent<HTMLInputElement>): boolean; protected eventReturn(e: JQuery.TriggeredEvent, allowBubble: boolean): boolean; protected onInputKeyUp(e: JQueryKeyboardEvent<HTMLInputElement>): void; protected onInputFocus(e: JQueryFocusEvent<HTMLInputElement>): void; protected onInputBlur(): void; protected onComponentFocus(): void; validatePart($part: JQueryTimeInputPart, value?: string): boolean; protected getPartValue($part: JQueryTimeInputPart): string; protected getMaxLength($part: JQueryTimeInputPart): number; protected validatePartInput($part: JQueryTimeInputPart, newValue: string, inputValue: string): boolean; protected onCopy(e: JQueryClipboardEvent): false; protected onPaste(e: JQueryClipboardEvent): false; syncValue(value?: DateTime): DateTime; protected getValueFromInputParts(): DateTime; protected getInputParts(): [string, string, string]; protected getInvalidValue(date: DateTime, time: DateTime): DateTime; protected syncSpacer(): void; protected setDisplay(value: string): JQuery; protected setInputValues(time: DateTime): void; protected formatInputPart(value: DateTime, format: string): string; protected isHour($el: JQueryTimeInputPart): boolean; protected isMinute($el: JQueryTimeInputPart): boolean; protected isMeridian($el: JQueryTimeInputPart): boolean; protected arrowNav($part: JQueryTimeInputPart, dir: NavDirection): boolean; protected focusPart(part: HTMLInputElement): void; protected incrementValue($part: JQueryTimeInputPart, amount: number, select?: boolean): void; protected validateKeyDown($part: JQueryTimeInputPart, key: string): boolean; protected handleKeyDown($part: JQueryTimeInputPart, key: string): boolean; protected tabPrev(): false; protected tabNext(): false; private getMultipartDisplayPlaceholder; protected syncPlaceholder(disabled: boolean): void; } export {};