import { ComputePositionConfig } from '@floating-ui/dom'; import { ITextField } from '../text-field/text-field.types'; import { IRelativeTimePickerOption, ITimePickerTimezone } from '../relative-time-picker/relative-time-picker.types'; import { EventEmitter } from '../../stencil-public-runtime'; import { EAbsoluteTimePickerMode, ETooltipPosition } from '../../types'; export interface ITimePicker { /** (optional) Configuration of the dropdown input */ inputConfig?: Partial; /** (optional) Dropdown possible positions */ dropdownPositionOptions?: Partial; /** (optional) Defines if the dropdown panel is open. Two-way: the component assigns it as the user opens and closes the panel, and emits `dropdownStateChange` alongside */ isOpen?: boolean; /** (optional) The element the panel is positioned against, and which the click-outside check treats as "inside". Defaults to the picker's own action wrapper, which is what a projected `dropdown-action` trigger sits in */ actionElement?: HTMLElement | null; /** (optional) Defines if the dropdown is disabled */ disabled?: boolean; /** (optional) Determines if the show calendar toggle is enabled */ showCalendar?: boolean; /** (optional) Selected time key */ selectedTimeOption?: ITimePickerTimeState | ITimePickerTime; /** (optional) Relative time picker options*/ relativeTimePickerOptions?: IRelativeTimePickerOption[][]; /** (optional) Timezones */ timezones?: ITimezoneOffset[]; /** (optional) Determines if the customize interval option is visible */ displayCustomizeInterval?: boolean; /** (optional) Determines if the timezone dropdown is visible */ displayTimezoneDropdown?: boolean; /** (optional) Determines if the "Show Calendar" toggle is visible in the footer. Hiding it does not prevent `showCalendar` from being set programmatically */ displayCalendarToggle?: boolean; /** (optional) Defines if the custom interval calendar selects a single date or a range */ calendarMode?: EAbsoluteTimePickerMode; /** (optional) Lets the timezone visible but doesn't let the user change it */ disableTimezoneSelection?: boolean; /** (optional) calendar minimum date to be navigated */ calendarInputMinDate?: number; /** (optional) calendar maximum date to be navigated */ calendarInputMaxDate?: number; /** (optional) The time picker's z-index (default: 9003) */ zIndex?: number; /** (optional) Positioning of the tooltip */ tooltipPosition?: ETooltipPosition; } export interface ITimePickerEvents { /** Emitted when time range changes */ timeRangeChange: EventEmitter; /** Emitted when dropdown state changes */ dropdownStateChange: EventEmitter; /** Emitted when cancel button is clicked */ cancelClicked: EventEmitter>; /** Emitted when show calendar button state changes */ showCalendarStateChange: EventEmitter; } export interface ITimePickerTimeState { key: string; range: SelectedTimestamp; timezone?: ITimePickerTimezone; } export interface ITimePickerTime { key: string; range: [number] | [number, number]; timezone: ITimePickerTimezone; } export type SelectedTimestamp = [] | [number] | [number, number]; export interface ITimezoneOffset { name: string; offset: number; label: string; } export declare enum ETimePickerView { RelativeTimePicker = "relativeTimePicker", AbsoluteTimePicker = "absoluteTimePicker", FullView = "fullView" }