import { JBBaseComponent } from "jb-core"; //#region modules/jb-time-picker/web-component/lib/types.d.ts export type TimeUnits = "hour" | "minute" | "second"; export type TimeSteps = "prevTime" | "currentTime" | "nextTime" | "substitutePrevTime" | "substituteNextTime"; export type JBTimeInputElements = { svgDOM: SVGElement; timeIndicators: { hour: SVGGElement; minute: SVGGElement; second: SVGGElement; }; substitutePrevTime: { wrapper: SVGGElement; hour: SVGGElement | null; minute: SVGGElement | null; second: SVGGElement | null; }; prevTime: { wrapper: SVGGElement; hour: SVGGElement | null; minute: SVGGElement | null; second: SVGGElement | null; }; currentTime: { wrapper: SVGGElement; hour: SVGGElement | null; minute: SVGGElement | null; second: SVGGElement | null; }; nextTime: { wrapper: SVGGElement; hour: SVGGElement | null; minute: SVGGElement | null; second: SVGGElement | null; }; substituteNextTime: { wrapper: SVGGElement; hour: SVGGElement | null; minute: SVGGElement | null; second: SVGGElement | null; }; separatorTexts: NodeListOf; }; export type DefaultPositions = { substitutePrevTimeTextY: number; prevTimeTextY: number; currentTimeTextY: number; nextTimeTextY: number; substituteNextTimeTextY: number; hourTextX: number; minuteTextX: number; secondTextX: number; timeStepYDiff: number; svgPosScale: number; }; type AnimationHandlerPerUnit = { isTextAnimationPlaying: boolean; waitingAction: (() => void) | null; }; export type AnimationHandler = { [key in TimeUnitsString]: AnimationHandlerPerUnit; }; export type GrabbedElement = { dom: SVGGElement; timeUnit: TimeUnitsString; timeStep: TimeSteps; startY: number; iterationDone: number; lastAction: string | null; actionRecords: string[]; addActionRecord: (action: string) => void; lastLogicalAction: string; isDragged: boolean; acc: { inDirectionMoveStack: number[]; prevTouchYPos: number | null; direction: number; t: number; captureMove: (movementY: number) => void; }; }; type JBTimePickerFullValueObject = { [key in TimeUnitsString]: number; }; type Optional = Pick, K> & Omit; export type JBTimePickerValueObject = Optional; export type SecondRange = [null | number, null | number]; export type TimeUnitsString = 'hour' | 'minute' | 'second'; export type TimeUnitsObject = { [key in TimeUnitsString]: TimeUnitsString; }; //#endregion //#region modules/jb-time-picker/web-component/lib/jb-time-picker.d.ts export declare class JBTimePickerWebComponent extends JBBaseComponent { #private; elements: JBTimeInputElements; focusedTimeUnit: TimeUnits | null; get leadingZero(): boolean; set leadingZero(value: boolean); /** * @description user want to grey out some unit because they are optional */ set optionalUnits(value: TimeUnitsString[]); get optionalUnits(): TimeUnitsString[]; get value(): JBTimePickerValueObject; set value(value: JBTimePickerValueObject); get secondEnabled(): boolean; set secondEnabled(value: boolean); get showPersianNumber(): boolean; set showPersianNumber(value: boolean); /** * @public * @description if you are too obsessed with the svg text width to be equal and aligned you can set it base on your font width (between 150,300) base on your font */ textWidth: number | null; constructor(); connectedCallback(): void; disconnectedCallback(): void; get timeTextXPositions(): { hourX: number; minuteX: number; secondX: number; }; static get observedAttributes(): string[]; attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void; /** * @public * @description let user change focused time unit from outside */ setTimeUnitFocus(timeUnit: TimeUnits): void; } declare global { interface HTMLElementTagNameMap { "jb-time-picker": JBTimePickerWebComponent; } } //#endregion //# sourceMappingURL=jb-time-picker.d.ts.map