mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-23 04:49:15 +08:00
376 lines
13 KiB
TypeScript
376 lines
13 KiB
TypeScript
// Type definitions for pickadate.js 3.0.5
|
|
// Project: https://github.com/amsul/pickadate.js
|
|
// Definitions by: Theodore Brown <https://github.com/theodorejb/>
|
|
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
|
|
|
///<reference path="../jquery/jquery.d.ts" />
|
|
|
|
interface pickadateOptions {
|
|
// Strings and translations
|
|
monthsFull?: string[]; // default 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'
|
|
monthsShort?: string[]; // default 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'
|
|
weekdaysFull?: string[]; // default 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'
|
|
weekdaysShort?: string[]; // default 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'
|
|
showMonthsShort?: boolean;
|
|
showWeekdaysFull?: boolean;
|
|
|
|
// Buttons
|
|
today?: string; // default 'Today'
|
|
clear?: string; // default 'Clear'
|
|
|
|
// Formats
|
|
format?: string; // default 'd mmmm, yyyy'
|
|
formatSubmit?: string; // e.g. 'yyyy/mm/dd'
|
|
hiddenSuffix?: string; // default '_submit'
|
|
|
|
// Dropdown selectors
|
|
selectYears?: any; // Specify the number of years selectable using an even integer - half before and half after the year in focus:
|
|
selectMonths?: boolean;
|
|
|
|
// First day of the week
|
|
firstDay?: any; // The first day of the week can be set to either Sunday or Monday. Anything truth-y sets it as Monday and anything false-y as Sunday
|
|
|
|
// Date limits
|
|
min?: any; // date object, array formatted as [YEAR,MONTH,DATE], or dates relative to today using integers or a boolean (`true` sets it to today. `false` removes any limits).
|
|
max?: any;
|
|
|
|
// Disable dates
|
|
disable?: any[]; // arrays formatted as [YEAR,MONTH,DATE] or integers representing days of the week (from 1 to 7). Switch to whitelist by setting first item in collection to `true`.
|
|
|
|
// Events
|
|
onStart?: (event: any) => void;
|
|
onRender?: (event: any) => void;
|
|
onOpen?: (event: any) => void;
|
|
onClose?: (event: any) => void;
|
|
onSet?: (event: any) => void;
|
|
onStop?: (event: any) => void;
|
|
|
|
// Classes
|
|
klass?: {
|
|
|
|
// The element states
|
|
input?: string; // default 'picker__input'
|
|
active?: string; // default 'picker__input--active'
|
|
|
|
// The root picker and states
|
|
picker?: string; // default 'picker'
|
|
opened?: string; // default 'picker--opened'
|
|
focused?: string; // default 'picker--focused'
|
|
|
|
// The picker holder
|
|
holder?: string; // default 'picker__holder'
|
|
|
|
// The picker frame, wrapper, and box
|
|
frame?: string; // default 'picker__frame'
|
|
wrap?: string; // default 'picker__wrap'
|
|
box?: string; // default 'picker__box'
|
|
|
|
// The picker header
|
|
header?: string; // default 'picker__header'
|
|
|
|
// Month navigation
|
|
navPrev?: string; // default 'picker__nav--prev'
|
|
navNext?: string; // default 'picker__nav--next'
|
|
navDisabled?: string; // default 'picker__nav--disabled'
|
|
|
|
// Month & year labels
|
|
month?: string; // default 'picker__month'
|
|
year?: string; // default 'picker__year'
|
|
|
|
// Month & year dropdowns
|
|
selectMonth?: string; // default 'picker__select--month'
|
|
selectYear?: string; // default 'picker__select--year'
|
|
|
|
// Table of dates
|
|
table?: string; // default 'picker__table'
|
|
|
|
// Weekday labels
|
|
weekdays?: string; // default 'picker__weekday'
|
|
|
|
// Day states
|
|
day?: string; // default 'picker__day'
|
|
disabled?: string; // default 'picker__day--disabled'
|
|
selected?: string // default 'picker__day--selected'
|
|
highlighted?: string // default 'picker__day--highlighted'
|
|
now?: string; // default 'picker__day--today'
|
|
infocus?: string; // default 'picker__day--infocus'
|
|
outfocus?: string; // default 'picker__day--outfocus'
|
|
|
|
// The picker footer
|
|
footer?: string; // default 'picker__footer'
|
|
|
|
// Today & clear buttons
|
|
buttonClear?: string; // default 'picker__button--clear'
|
|
buttonToday?: string; // default 'picker__button--today'
|
|
}
|
|
}
|
|
|
|
interface pickatimeOptions {
|
|
// Translations and clear button
|
|
clear?: string; // default 'Clear'
|
|
|
|
// Formats
|
|
format?: string; // default 'h:i A'
|
|
formatLabel?: any;
|
|
formatSubmit?: string;
|
|
hiddenSuffix?: string; // default '_submit'
|
|
|
|
// Time intervals
|
|
interval?: number; // interval in minutes. default 30.
|
|
|
|
// Time limits
|
|
min?: any; // array formatted as [HOUR,MINUTE], or as times relative to now using integers or a boolean (`true` sets it to now, `false` removes any limits).
|
|
max?: any;
|
|
|
|
// Disable times
|
|
disable?: any[]; // arrays formatted as [HOUR,MINUTE] or integers representing hours (from 0 to 23). Switch to whitelist by setting true as the first item in the collection.
|
|
|
|
// Events
|
|
onStart?: (event: any) => void;
|
|
onRender?: (event: any) => void;
|
|
onOpen?: (event: any) => void;
|
|
onClose?: (event: any) => void;
|
|
onSet?: (event: any) => void;
|
|
onStop?: (event: any) => void;
|
|
|
|
// Classes
|
|
klass?: {
|
|
|
|
// The element states
|
|
input?: string; // default 'picker__input'
|
|
active?: string; // default 'picker__input--active'
|
|
|
|
// The root picker and states
|
|
picker?: string; // default 'picker picker--time'
|
|
opened?: string; // default 'picker--opened'
|
|
focused?: string; // default 'picker--focused'
|
|
|
|
// The picker holder
|
|
holder?: string; // default 'picker__holder'
|
|
|
|
// The picker frame, wrapper, and box
|
|
frame?: string; // default 'picker__frame'
|
|
wrap?: string; // default 'picker__wrap'
|
|
box?: string; // default 'picker__box'
|
|
|
|
// List of times
|
|
list?: string; // default 'picker__list'
|
|
listItem?: string; // default 'picker__list-item'
|
|
|
|
// Time states
|
|
disabled?: string; // default 'picker__list-item--disabled'
|
|
selected?: string; // default 'picker__list-item--selected'
|
|
highlighted?: string; // default 'picker__list-item--highlighted'
|
|
viewset?: string; // default 'picker__list-item--viewset'
|
|
now?: string; // default 'picker__list-item--now'
|
|
|
|
// Clear button
|
|
buttonClear?: string; // default 'picker__button--clear'
|
|
}
|
|
}
|
|
|
|
interface PickerItemObject {
|
|
/** The "pick" value used for comparisons. */
|
|
pick: number;
|
|
}
|
|
|
|
interface DatePickerItemObject extends PickerItemObject {
|
|
/** The full year. */
|
|
year: number;
|
|
|
|
/** The month with zero-as-index. */
|
|
month: number;
|
|
|
|
/** The date of the month. */
|
|
date: number;
|
|
|
|
/** The day of the week with zero-as-index. */
|
|
day: number;
|
|
|
|
/** The underlying JavaScript Date object. */
|
|
obj: Date;
|
|
}
|
|
|
|
interface TimePickerItemObject extends PickerItemObject {
|
|
/** Hour of the day from 0 to 23. */
|
|
hour: number;
|
|
|
|
/** The minutes of the hour from 0 to 59 (based on the interval). */
|
|
mins: number;
|
|
}
|
|
|
|
interface CallbackObject {
|
|
open?: () => void;
|
|
close?: () => void;
|
|
render?: () => void;
|
|
start?: () => void;
|
|
stop?: () => void;
|
|
set?: () => void;
|
|
}
|
|
|
|
interface SetThings {
|
|
clear?;
|
|
select?: any;
|
|
highlight?: any;
|
|
view?: any;
|
|
min?: any;
|
|
max?: any;
|
|
disable?: any;
|
|
enable?: any;
|
|
}
|
|
|
|
interface TimePickerSetThings extends SetThings {
|
|
interval?: any;
|
|
}
|
|
|
|
interface PickerObject {
|
|
/** The picker's relative input element wrapped as a jQuery object. */
|
|
$node: JQuery;
|
|
|
|
/** The picker's relative root holder element wrapped as a jQuery object. */
|
|
$root: JQuery;
|
|
}
|
|
|
|
interface DatePickerObject extends PickerObject {
|
|
open(withoutFocus?: boolean): DatePickerObject;
|
|
close(withFocus?: boolean): DatePickerObject;
|
|
|
|
/** Rebuild the picker. */
|
|
start(): DatePickerObject;
|
|
|
|
/** Destroy the picker. */
|
|
stop(): DatePickerObject;
|
|
|
|
/** Refresh the picker after adding something to the holder. */
|
|
render(): DatePickerObject;
|
|
|
|
/** Clear the value in the picker's input element. */
|
|
clear(): DatePickerObject;
|
|
|
|
/** Get the properties, objects, and states that make up the current state of the picker. */
|
|
get(thing: string): any;
|
|
|
|
/** Returns the string value of the picker's input element. */
|
|
get(thing: 'value'): string;
|
|
|
|
/** Returns the item object that is visually selected. */
|
|
get(thing: 'select'): DatePickerItemObject;
|
|
|
|
/** Returns the item object that is visually highlighted. */
|
|
get(thing: 'highlight'): DatePickerItemObject;
|
|
|
|
/** Returns the item object that sets the current view. */
|
|
get(thing: 'view'): DatePickerItemObject;
|
|
|
|
/** Returns the item object that limits the picker's lower range. */
|
|
get(thing: 'min'): DatePickerItemObject;
|
|
|
|
/** Returns the item object that limits the picker's upper range. */
|
|
get(thing: 'max'): DatePickerItemObject;
|
|
|
|
/** Returns a boolean value of whether the picker is open or not. */
|
|
get(thing: 'open'): boolean;
|
|
|
|
/** Returns a boolean value of whether the picker has started or not. */
|
|
get(thing: 'start'): boolean;
|
|
|
|
/** Returns a unique 9-digit integer that is the ID of the picker. */
|
|
get(thing: 'id'): number;
|
|
|
|
/** Returns an array of items that determine which item objects to disable on the picker. */
|
|
get(thing: 'disable'): any[];
|
|
|
|
/** Returns a formatted string for the item object specified by `thing` */
|
|
get(thing: string, format: string): string;
|
|
|
|
/** Set the properties, objects, and states to change the state of the picker. */
|
|
set(thing: string, value?: any): DatePickerObject;
|
|
set(things: SetThings): DatePickerObject;
|
|
|
|
/** Bind callbacks to get fired off when the relative picker method is called. */
|
|
on(methodName, callback: () => void ): DatePickerObject;
|
|
|
|
/** Bind multiple callbacks at once to get fired off when the relative picker method is called. */
|
|
on(callbackObject: CallbackObject): DatePickerObject;
|
|
|
|
/** Trigger callbacks that have been queued up using the the on method. */
|
|
trigger(event: string): DatePickerObject;
|
|
}
|
|
|
|
interface TimePickerObject extends PickerObject {
|
|
open(withoutFocus?: boolean): TimePickerObject;
|
|
close(withFocus?: boolean): TimePickerObject;
|
|
|
|
/** Rebuild the picker. */
|
|
start(): TimePickerObject;
|
|
|
|
/** Destroy the picker. */
|
|
stop(): TimePickerObject;
|
|
|
|
/** Refresh the picker after adding something to the holder. */
|
|
render(): TimePickerObject;
|
|
|
|
/** Clear the value in the picker's input element. */
|
|
clear(): TimePickerObject;
|
|
|
|
/** Get the properties, objects, and states that make up the current state of the picker. */
|
|
get(thing: string): any;
|
|
|
|
/** Returns the string value of the picker's input element. */
|
|
get(thing: 'value'): string;
|
|
|
|
/** Returns the item object that is visually selected. */
|
|
get(thing: 'select'): TimePickerItemObject;
|
|
|
|
/** Returns the item object that is visually highlighted. */
|
|
get(thing: 'highlight'): TimePickerItemObject;
|
|
|
|
/** Returns the item object that sets the current view. */
|
|
get(thing: 'view'): TimePickerItemObject;
|
|
|
|
/** Returns the item object that limits the picker's lower range. */
|
|
get(thing: 'min'): TimePickerItemObject;
|
|
|
|
/** Returns the item object that limits the picker's upper range. */
|
|
get(thing: 'max'): TimePickerItemObject;
|
|
|
|
/** Returns a boolean value of whether the picker is open or not. */
|
|
get(thing: 'open'): boolean;
|
|
|
|
/** Returns a boolean value of whether the picker has started or not. */
|
|
get(thing: 'start'): boolean;
|
|
|
|
/** Returns a unique 9-digit integer that is the ID of the picker. */
|
|
get(thing: 'id'): number;
|
|
|
|
/** Returns an array of items that determine which item objects to disable on the picker. */
|
|
get(thing: 'disable'): any[];
|
|
|
|
/** Returns a formatted string for the item object specified by `thing` */
|
|
get(thing: string, format: string): string;
|
|
|
|
/** Set the properties, objects, and states to change the state of the picker. */
|
|
set(thing: string, value?: any): TimePickerObject;
|
|
set(things: TimePickerSetThings): TimePickerObject;
|
|
|
|
/** Bind callbacks to get fired off when the relative picker method is called. */
|
|
on(methodName, callback: () => void ): TimePickerObject;
|
|
|
|
/** Bind multiple callbacks at once to get fired off when the relative picker method is called. */
|
|
on(callbackObject: CallbackObject): TimePickerObject;
|
|
|
|
/** Trigger callbacks that have been queued up using the the on method. */
|
|
trigger(event: string): TimePickerObject;
|
|
}
|
|
|
|
interface JQuery {
|
|
pickadate(options?: pickadateOptions): HTMLInputElement;
|
|
pickatime(options?: pickatimeOptions): HTMLInputElement;
|
|
}
|
|
|
|
interface HTMLInputElement {
|
|
pickadate(picker: string): DatePickerObject;
|
|
pickatime(picker: string): TimePickerObject;
|
|
|
|
}
|