@uplink-protocol/calendar-controller
Version:
Flexible calendar and time picker API supporting both calendar, date-picker, and time-picker integrations for any JavaScript framework or library
75 lines (74 loc) • 2.85 kB
TypeScript
import { ITimeValidationService } from "../interfaces";
/**
* TimeValidationService - Implementation of ITimeValidationService
* Validates times against constraints
*/
export declare class TimeValidationService implements ITimeValidationService {
/**
* Check if a time is valid according to constraints
* @param time Time to validate
* @param minTime Minimum allowed time
* @param maxTime Maximum allowed time
* @param disabledTimes Array of disabled times
* @param disabledHours Array of disabled hours
* @param disabledMinutes Array of disabled minutes
* @param disabledSeconds Array of disabled seconds
* @returns Whether the time is valid
*/
isTimeValid(time: Date, minTime: Date | null, maxTime: Date | null, disabledTimes: Date[], disabledHours: number[], disabledMinutes: number[], disabledSeconds: number[]): boolean;
/**
* Check if a time is within allowed range
* @param time Time to check
* @param minTime Minimum allowed time
* @param maxTime Maximum allowed time
* @returns Whether time is in range
*/
isTimeInRange(time: Date, minTime: Date | null, maxTime: Date | null): boolean;
/**
* Check if a time is specifically disabled
* @param time Time to check
* @param disabledTimes Array of disabled times
* @returns Whether time is disabled
*/
isTimeDisabled(time: Date, disabledTimes: Date[]): boolean;
/**
* Check if an hour is disabled
* @param hour Hour to check (0-23)
* @param disabledHours Array of disabled hours
* @returns Whether hour is disabled
*/
isHourDisabled(hour: number, disabledHours: number[]): boolean;
/**
* Check if a minute is disabled
* @param minute Minute to check (0-59)
* @param disabledMinutes Array of disabled minutes
* @returns Whether minute is disabled
*/
isMinuteDisabled(minute: number, disabledMinutes: number[]): boolean;
/**
* Check if a second is disabled
* @param second Second to check (0-59)
* @param disabledSeconds Array of disabled seconds
* @returns Whether second is disabled
*/
isSecondDisabled(second: number, disabledSeconds: number[]): boolean;
/**
* Validate time format string
* @param timeString Time string to validate
* @param format Expected format
* @returns Whether format is valid
*/
validateTimeFormat(timeString: string, format: string): boolean;
/**
* Get time-only milliseconds (ignoring date part)
* @param time Date object
* @returns Milliseconds since midnight
*/
private getTimeOnlyMs;
/**
* Basic time string parsing for validation
* @param timeString Time string to parse
* @returns Parsed time or null if invalid
*/
private parseBasicTimeString;
}