UNPKG

@nuralyui/timepicker

Version:

NuralyUI TimePicker - A comprehensive time selection component with clock interface, multiple formats, and validation

117 lines 4.05 kB
import { LitElement, TemplateResult } from 'lit'; import '../input/input.component.js'; import '../button/button.component.js'; import { DropdownHost } from '../../shared/controllers/dropdown.interface.js'; import { TimeValue, TimeFormat, TimePickerConfig, TimePickerPlacement } from './timepicker.types.js'; export interface TimePickerHost extends LitElement, DropdownHost { getCurrentTime(): TimeValue; setTime(time: TimeValue): void; formatTime(time: TimeValue): string; parseTime(timeString: string): TimeValue | null; getConfig(): TimePickerConfig; validateTime(time: TimeValue): boolean; requestUpdate(): void; } declare const NrTimePickerElement_base: (new (...args: any[]) => import("../../shared/dependency-mixin.js").DependencyAware) & (new (...args: any[]) => import("../../shared/theme-mixin.js").ThemeAware) & (new (...args: any[]) => import("../../shared/event-handler-mixin.js").EventHandlerCapable) & typeof LitElement; /** * A comprehensive time picker component that supports both 12-hour and 24-hour formats, * with optional seconds display and extensive customization options. * * @example * ```html * <nr-timepicker * value="14:30:00" * format="24h" * show-seconds * placeholder="Select time"> * </nr-timepicker> * ``` */ export declare class NrTimePickerElement extends NrTimePickerElement_base implements TimePickerHost { static styles: import("lit").CSSResult[]; value: string; name: string; placeholder: string; format: TimeFormat; showSeconds: boolean; disabled: boolean; readonly: boolean; required: boolean; minTime?: string; maxTime?: string; disabledTimes?: string[]; enabledTimes?: string[]; helperText: string; label: string; size: 'small' | 'medium' | 'large'; variant: 'outlined' | 'filled' | 'standard'; placement: TimePickerPlacement; /** Scroll behavior for dropdown navigation - 'instant' for immediate, 'smooth' for animated, 'auto' for browser default */ scrollBehavior: 'auto' | 'instant' | 'smooth'; private inputValue; private state; private validationMessage; private dropdownController; private selectionController; private validationController; private formattingController; constructor(); connectedCallback(): void; disconnectedCallback(): void; updated(changedProperties: Map<string, any>): void; private setupDropdownElements; render(): TemplateResult; open(): void; close(): void; clear(): void; setToNow(): void; validate(): boolean; validateTime(time: TimeValue): boolean; private isHourValid; private isMinuteValid; private isSecondValid; private renderLabel; private renderInput; private renderDropdown; private renderColumnPicker; private renderHourColumn; private renderMinuteColumn; private renderSecondColumn; private renderActions; private renderHelperText; private scrollToSelectedTime; private scrollToSelectedHour; private scrollToSelectedMinute; private scrollToSelectedSecond; private getHourIndex; private handleComponentClick; private handleDocumentClick; private handleDropdownClick; private handleOkClick; private handleInputBlur; private handleInputClick; private handleInputChange; private handleHourSelect; private handleMinuteSelect; private handleSecondSelect; private shouldUpdateConstraints; private updateConstraints; private setTimeFromValue; private updateInputValue; getConfig(): TimePickerConfig; getCurrentTime(): TimeValue; setTime(time: TimeValue): void; formatTime(time: TimeValue): string; /** * Get appropriate placeholder text based on format */ private getFormatPlaceholder; parseTime(timeString: string): TimeValue | null; } declare global { interface HTMLElementTagNameMap { 'nr-timepicker': NrTimePickerElement; } } export {}; //# sourceMappingURL=timepicker.component.d.ts.map