45 lines
2.8 KiB
TypeScript
45 lines
2.8 KiB
TypeScript
import type { PropType } from 'vue';
|
|
import type { VTimePickerViewMode } from './shared.js';
|
|
export type AllowFunction = (val: number) => boolean;
|
|
export declare const makeTimeValidationProps: <Defaults extends {
|
|
allowedHours?: unknown;
|
|
allowedMinutes?: unknown;
|
|
allowedSeconds?: unknown;
|
|
max?: unknown;
|
|
min?: unknown;
|
|
} = {}>(defaults?: Defaults | undefined) => {
|
|
allowedHours: unknown extends Defaults["allowedHours"] ? PropType<AllowFunction | number[]> : {
|
|
type: PropType<unknown extends Defaults["allowedHours"] ? AllowFunction | number[] : AllowFunction | number[] | Defaults["allowedHours"]>;
|
|
default: unknown extends Defaults["allowedHours"] ? AllowFunction | number[] : Defaults["allowedHours"] | NonNullable<AllowFunction | number[]>;
|
|
};
|
|
allowedMinutes: unknown extends Defaults["allowedMinutes"] ? PropType<AllowFunction | number[]> : {
|
|
type: PropType<unknown extends Defaults["allowedMinutes"] ? AllowFunction | number[] : AllowFunction | number[] | Defaults["allowedMinutes"]>;
|
|
default: unknown extends Defaults["allowedMinutes"] ? AllowFunction | number[] : Defaults["allowedMinutes"] | NonNullable<AllowFunction | number[]>;
|
|
};
|
|
allowedSeconds: unknown extends Defaults["allowedSeconds"] ? PropType<AllowFunction | number[]> : {
|
|
type: PropType<unknown extends Defaults["allowedSeconds"] ? AllowFunction | number[] : AllowFunction | number[] | Defaults["allowedSeconds"]>;
|
|
default: unknown extends Defaults["allowedSeconds"] ? AllowFunction | number[] : Defaults["allowedSeconds"] | NonNullable<AllowFunction | number[]>;
|
|
};
|
|
max: unknown extends Defaults["max"] ? StringConstructor : {
|
|
type: PropType<unknown extends Defaults["max"] ? string : string | Defaults["max"]>;
|
|
default: unknown extends Defaults["max"] ? string : string | Defaults["max"];
|
|
};
|
|
min: unknown extends Defaults["min"] ? StringConstructor : {
|
|
type: PropType<unknown extends Defaults["min"] ? string : string | Defaults["min"]>;
|
|
default: unknown extends Defaults["min"] ? string : string | Defaults["min"];
|
|
};
|
|
};
|
|
export interface TimeValidationProps {
|
|
allowedHours?: AllowFunction | number[];
|
|
allowedMinutes?: AllowFunction | number[];
|
|
allowedSeconds?: AllowFunction | number[];
|
|
min?: string;
|
|
max?: string;
|
|
}
|
|
export declare function useTimeValidation(props: TimeValidationProps): {
|
|
isAllowedHour: import("vue").ComputedRef<(val: number) => boolean>;
|
|
isAllowedMinute: import("vue").ComputedRef<(hour24hr: number | null, val: number) => boolean>;
|
|
isAllowedSecond: import("vue").ComputedRef<(hour24hr: number | null, minute: number | null, val: number) => boolean>;
|
|
findNextAllowed: (type: VTimePickerViewMode, value: number, increment: boolean, currentHour?: number | null, currentMinute?: number | null) => number;
|
|
};
|