react-js-cron-mantine
Version:
Fork of [react-js-cron](https://github.com/xrutayisire/react-js-cron), made to work with [mantine](https://mantine.dev)
202 lines (201 loc) • 6.38 kB
TypeScript
import { Dispatch, SetStateAction } from 'react';
export interface CronProps {
value: string;
setValue: SetValue;
setValueObj?: SetValueObj;
className?: string;
humanizeLabels?: boolean;
humanizeValue?: boolean;
leadingZero?: LeadingZero;
defaultPeriod?: PeriodType;
disabled?: boolean;
readOnly?: boolean;
allowEmpty?: AllowEmpty;
shortcuts?: Shortcuts;
clockFormat?: ClockFormat;
clearButton?: boolean;
convertToTimezone?: boolean;
timezone_value?: string;
clearButtonAction?: ClearButtonAction;
displayError?: boolean;
onError?: OnError;
periodicityOnDoubleClick?: boolean;
mode?: Mode;
allowedDropdowns?: CronType[];
allowedPeriods?: PeriodType[];
locale?: Locale;
}
export interface Locale {
everyText?: string;
emptyMonths?: string;
emptyMonthDays?: string;
emptyMonthDaysShort?: string;
emptyWeekDays?: string;
emptyWeekDaysShort?: string;
emptyHours?: string;
emptyMinutes?: string;
emptyMinutesForHourPeriod?: string;
yearOption?: string;
monthOption?: string;
weekOption?: string;
dayOption?: string;
hourOption?: string;
minuteOption?: string;
rebootOption?: string;
prefixPeriod?: string;
prefixMonths?: string;
prefixMonthDays?: string;
prefixWeekDays?: string;
prefixWeekDaysForMonthAndYearPeriod?: string;
prefixHours?: string;
prefixMinutes?: string;
prefixMinutesForHourPeriod?: string;
suffixMinutesForHourPeriod?: string;
errorInvalidCron?: string;
clearButtonText?: string;
weekDays?: string[];
months?: string[];
altWeekDays?: string[];
altMonths?: string[];
}
export declare type SetValueFunction = (value: string, extra: SetValueFunctionExtra) => void;
export interface SetValueFunctionExtra {
selectedPeriod: PeriodType;
}
export declare type SetValue = SetValueFunction | Dispatch<SetStateAction<string>>;
export declare type SetValueObj = (obj: CronObj) => void;
export declare type CronObj = {
minute: string;
hour: string;
day_of_week: string;
day_of_month: string;
month_of_year: string;
} | undefined;
export declare type CronError = {
type: 'invalid_cron';
description: string;
} | undefined;
export declare type OnErrorFunction = (error: CronError) => void;
export declare type OnError = OnErrorFunction | Dispatch<SetStateAction<CronError>> | undefined;
export interface ClearButtonProps {
className: string | undefined;
}
export declare type ClearButtonAction = 'empty' | 'fill-with-every' | string;
export declare type PeriodType = 'year' | 'month' | 'week' | 'day' | 'hour' | 'minute' | 'switch' | 'reboot' | string;
export declare type AllowEmpty = 'always' | 'never' | 'for-default-value';
export declare type CronType = 'period' | 'months' | 'month-days' | 'week-days' | 'hours' | 'minutes' | 'switch' | string;
export declare type LeadingZeroType = 'month-days' | 'hours' | 'minutes';
export declare type LeadingZero = boolean | LeadingZeroType[];
export declare type ClockFormat = '24-hour-clock' | '12-hour-clock' | string;
export declare type ShortcutsType = '@yearly' | '@annually' | '@monthly' | '@weekly' | '@daily' | '@midnight' | '@hourly' | '@reboot';
export declare type Shortcuts = boolean | ShortcutsType[];
export declare type Mode = 'multiple' | 'single';
export interface FieldProps {
value?: number[];
setValue: SetValueNumbersOrUndefined;
locale: Locale;
className?: string;
disabled: boolean;
readOnly: boolean;
period: PeriodType;
periodicityOnDoubleClick: boolean;
mode: Mode;
}
export interface PeriodProps extends Omit<FieldProps, 'value' | 'setValue' | 'period' | 'periodicityOnDoubleClick' | 'mode'> {
value: PeriodType;
setValue: SetValuePeriod;
shortcuts: Shortcuts;
allowedPeriods: PeriodType[];
}
export interface MonthsProps extends FieldProps {
humanizeLabels: boolean;
}
export interface MonthDaysProps extends FieldProps {
weekDays?: number[];
leadingZero: LeadingZero;
}
export interface WeekDaysProps extends FieldProps {
humanizeLabels: boolean;
monthDays?: number[];
}
export interface HoursProps extends FieldProps {
leadingZero: LeadingZero;
clockFormat?: ClockFormat;
}
export interface MinutesProps extends FieldProps {
leadingZero: LeadingZero;
clockFormat?: ClockFormat;
}
export interface CustomSelectProps {
className: string | undefined;
placeholder: string;
grid?: boolean;
setValue: SetValueNumbersOrUndefined;
optionsList?: string[];
locale: Locale;
value?: number[];
labelText?: string | boolean;
humanizeLabels?: boolean;
disabled: boolean;
readOnly: boolean;
leadingZero?: LeadingZero;
clockFormat?: ClockFormat;
period: PeriodType;
unit: Unit;
periodicityOnDoubleClick: boolean;
mode: Mode;
}
export declare type SetValueNumbersOrUndefined = Dispatch<SetStateAction<number[] | undefined>>;
export declare type SetValuePeriod = Dispatch<SetStateAction<PeriodType>>;
export declare type SetInternalError = Dispatch<SetStateAction<boolean>>;
export interface DefaultLocale {
everyText: string;
emptyMonths: string;
emptyMonthDays: string;
emptyMonthDaysShort: string;
emptyWeekDays: string;
emptyWeekDaysShort: string;
emptyHours: string;
emptyMinutes: string;
emptyMinutesForHourPeriod: string;
yearOption: string;
monthOption: string;
weekOption: string;
dayOption: string;
hourOption: string;
minuteOption: string;
rebootOption: string;
prefixPeriod: string;
prefixMonths: string;
prefixMonthDays: string;
prefixWeekDays: string;
prefixWeekDaysForMonthAndYearPeriod: string;
prefixHours: string;
prefixMinutes: string;
prefixMinutesForHourPeriod: string;
suffixMinutesForHourPeriod: string;
errorInvalidCron: string;
clearButtonText: string;
weekDays: string[];
months: string[];
altWeekDays: string[];
altMonths: string[];
}
export interface Classes {
[key: string]: boolean;
}
export interface ShortcutsValues {
name: ShortcutsType;
value: string;
}
export interface Unit {
type: CronType;
min: number;
max: number;
total: number;
alt?: string[];
}
export interface Clicks {
time: number;
value: number;
}