UNPKG

@oslokommune/punkt-elements

Version:

Komponentbiblioteket til Punkt, et designsystem laget av Oslo Origo

95 lines (94 loc) 3.36 kB
import { PropertyValues } from 'lit'; import { Ref } from 'lit/directives/ref.js'; import { PktInputElement } from '../../base-elements/input-element'; import { ElementProps } from '../../types/typeUtils'; type Props = ElementProps<PktTimepicker, 'value' | 'hidePicker' | 'stepArrows'>; export interface IPktTimepicker { value?: string; min?: string; max?: string; step?: number; name?: string; id?: string; disabled?: boolean; required?: boolean; hidePicker?: boolean; stepArrows?: boolean; fullwidth?: boolean; label?: string | null; helptext?: string; helptextDropdown?: string; helptextDropdownButton?: string | null; hasError?: boolean; errorMessage?: string; requiredTag?: boolean; requiredText?: string; optionalTag?: boolean; optionalText?: string; tagText?: string | null; inline?: boolean; } export declare class PktTimepicker extends PktInputElement<Props> { hiddenInputRef: Ref<HTMLInputElement>; hoursInputRef: Ref<HTMLInputElement>; minutesInputRef: Ref<HTMLInputElement>; buttonRef: Ref<HTMLButtonElement>; /** * Exposes hiddenInputRef as inputRef so the base class validate() method * triggers our manageValidity override automatically after every onChange call. * The hidden input itself is never used for reporting — see manageValidity below. */ get inputRef(): Ref<HTMLInputElement>; /** * Overrides the base class manageValidity to solve a focusability problem: * the browser requires the third argument to setValidity (the "anchor") to be * a visible, focusable element — it focuses that element when navigating to an * invalid field. Our hidden input[type=time] cannot receive focus, so passing it * as the anchor would silently fail with "form control is not focusable". */ protected manageValidity(_input?: HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement): void; value: string; hidePicker: boolean; stepArrows: boolean; private _hours; private _minutes; private _isOpen; private _hoursDigitCount; private _hoursFirstDigit; private _minutesDigitCount; private _minutesFirstDigit; private _hasFocus; private _setAriaInvalid; private _outsideClickHandler; private _handleComponentFocusIn; private _handleComponentFocusOut; connectedCallback(): void; disconnectedCallback(): void; protected willUpdate(changedProperties: PropertyValues): void; protected updated(changedProperties: PropertyValues): void; protected formResetCallback(): void; private _isValidStep; private _syncDisplayFromValue; private _syncValueFromDisplay; private get _minuteStep(); private get _hourOptions(); private get _minuteOptions(); private _openPopup; private _closePopup; private _togglePopup; private _scrollToSelected; private _focusSelectedOrFirst; private _handleHoursKeydown; private _handleHoursBlur; private _handleMinutesKeydown; private _handleMinutesBlur; private _handleOptionClick; private _focusOptionAndSync; private _handlePopupKeydown; private _stepTime; private _renderOption; private _renderPopup; private _renderContainer; render(): import('lit-html').TemplateResult<1>; } export {};