forked from Pikaday/Pikaday
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
356 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,353 @@ | ||
// Source https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/pikaday | ||
import * as moment from "moment"; | ||
|
||
export as namespace Pikaday; | ||
|
||
export = Pikaday; | ||
|
||
declare class Pikaday { | ||
el: HTMLElement; | ||
|
||
constructor(options: Pikaday.PikadayOptions); | ||
|
||
/** | ||
* Extends the existing configuration options for Pikaday object with the options provided. | ||
* Can be used to change/extend the configurations on runtime. | ||
* @param options full/partial configuration options. | ||
* @returns extended configurations. | ||
*/ | ||
config(options: Pikaday.PikadayOptions): Pikaday.PikadayOptions; | ||
|
||
/** | ||
* Returns the selected date in a string format. If Moment.js exists | ||
* (recommended) then Pikaday can return any format that Moment | ||
* understands, otherwise you're stuck with JavaScript's default. | ||
*/ | ||
toString(format?: string): string; | ||
|
||
/** | ||
* Returns a JavaScript Date object for the selected day, or null if | ||
* no date is selected. | ||
*/ | ||
getDate(): Date | null; | ||
|
||
/** | ||
* Set the current selection. This will be restricted within the bounds | ||
* of minDate and maxDate options if they're specified. A boolean (true) | ||
* can optionally be passed as the second parameter to prevent triggering | ||
* of the onSelect callback, allowing the date to be set silently. | ||
*/ | ||
setDate(date: string | Date | null, preventOnSelect?: boolean): void; | ||
|
||
/** | ||
* Returns a Moment.js object for the selected date (Moment must be | ||
* loaded before Pikaday). | ||
*/ | ||
getMoment(): moment.Moment | null; | ||
|
||
/** | ||
* Set the current selection with a Moment.js object (see setDate). | ||
*/ | ||
setMoment(moment: any, preventOnSelect?: boolean): void; | ||
|
||
/** | ||
* Change the current view to see a specific date. | ||
*/ | ||
gotoDate(date: Date): void; | ||
|
||
/** | ||
* Shortcut for picker.gotoDate(new Date()) | ||
*/ | ||
gotoToday(): void; | ||
|
||
/** | ||
* Change the current view by month (0: January, 1: Februrary, etc). | ||
*/ | ||
gotoMonth(monthIndex: number): void; | ||
|
||
/** | ||
* Go to the next month (this will change year if necessary). | ||
*/ | ||
nextMonth(): void; | ||
|
||
/** | ||
* Go to the previous month (this will change year if necessary). | ||
*/ | ||
prevMonth(): void; | ||
|
||
/** | ||
* Change the year being viewed. | ||
*/ | ||
gotoYear(year: number): void; | ||
|
||
/** | ||
* Update the minimum/earliest date that can be selected. | ||
*/ | ||
setMinDate(date: Date | null): void; | ||
|
||
/** | ||
* Update the maximum/latest date that can be selected. | ||
*/ | ||
setMaxDate(date: Date | null): void; | ||
|
||
/** | ||
* Update the range start date. For using two Pikaday instances to | ||
* select a date range. | ||
*/ | ||
setStartRange(date: Date | null): void; | ||
|
||
/** | ||
* Update the range end date. For using two Pikaday instances to select | ||
* a date range. | ||
*/ | ||
setEndRange(date: Date | null): void; | ||
|
||
/** | ||
* Update the HTML. | ||
*/ | ||
draw(force: boolean): void; | ||
|
||
/** | ||
* Returns true if the picker is visible. | ||
*/ | ||
isVisible(): boolean; | ||
|
||
/** | ||
* Make the picker visible. | ||
*/ | ||
show(): void; | ||
|
||
/** | ||
* Hide the picker making it invisible. | ||
*/ | ||
hide(): void; | ||
|
||
/** | ||
* Recalculate and change the position of the picker. | ||
*/ | ||
adjustPosition(): void; | ||
|
||
/** | ||
* Hide the picker and remove all event listeners - no going back! | ||
*/ | ||
destroy(): void; | ||
|
||
/** | ||
* Clear and reset the date | ||
*/ | ||
clear(): void; | ||
} | ||
|
||
// merge the Pikaday class declaration with a module | ||
declare namespace Pikaday { | ||
interface PikadayI18nConfig { | ||
previousMonth: string; | ||
nextMonth: string; | ||
months: string[]; | ||
weekdays: string[]; | ||
weekdaysShort: string[]; | ||
} | ||
|
||
interface PikadayOptions { | ||
/** | ||
* Bind the datepicker to a form field. | ||
*/ | ||
field?: HTMLElement | null | undefined; | ||
|
||
/** | ||
* The default output format for toString() and field value. | ||
* Requires Moment.js for custom formatting. | ||
*/ | ||
format?: string | undefined; | ||
|
||
/** | ||
* Use a different element to trigger opening the datepicker. | ||
* Default: field element. | ||
*/ | ||
trigger?: HTMLElement | null | undefined; | ||
|
||
/** | ||
* Automatically show/hide the datepicker on field focus. | ||
* Default: true if field is set. | ||
*/ | ||
bound?: boolean | undefined; | ||
|
||
/** | ||
* Data-attribute on the input field with an aria assistance test (only applied when bound is set) | ||
*/ | ||
ariaLabel?: string | undefined; | ||
|
||
/** | ||
* Preferred position of the datepicker relative to the form field | ||
* (e.g. 'top right'). Automatic adjustment may occur to avoid | ||
* displaying outside the viewport. Default: 'bottom left'. | ||
*/ | ||
position?: string | undefined; | ||
|
||
/** | ||
* Can be set to false to not reposition the datepicker within the | ||
* viewport, forcing it to take the configured position. Default: true. | ||
*/ | ||
reposition?: boolean | undefined; | ||
|
||
/** | ||
* DOM node to render calendar into, see container example. | ||
* Default: undefined. | ||
*/ | ||
container?: HTMLElement | null | undefined; | ||
|
||
/** | ||
* The initial date to view when first opened. | ||
*/ | ||
defaultDate?: Date | undefined; | ||
|
||
/** | ||
* Make the defaultDate the initial selected value. | ||
*/ | ||
setDefaultDate?: boolean | undefined; | ||
|
||
/** | ||
* First day of the week (0: Sunday, 1: Monday, etc). | ||
*/ | ||
firstDay?: number | undefined; | ||
|
||
/** | ||
* The earliest date that can be selected (this should be a native | ||
* Date object - e.g. new Date() or moment().toDate()). | ||
*/ | ||
minDate?: Date | undefined; | ||
|
||
/** | ||
* The latest date that can be selected (this should be a native | ||
* Date object - e.g. new Date() or moment().toDate()). | ||
*/ | ||
maxDate?: Date | undefined; | ||
|
||
/** | ||
* Disallow selection of Saturdays and Sundays. | ||
*/ | ||
disableWeekends?: boolean | undefined; | ||
|
||
/** | ||
* Callback function that gets passed a Date object for each day | ||
* in view. Should return true to disable selection of that day. | ||
*/ | ||
disableDayFn?(date: Date): boolean; | ||
|
||
/** | ||
* Number of years either side (e.g. 10) or array of upper/lower range | ||
* (e.g. [1900, 2015]). | ||
*/ | ||
yearRange?: number | number[] | undefined; | ||
|
||
/** | ||
* Show the ISO week number at the head of the row. Default: false. | ||
*/ | ||
showWeekNumber?: boolean | undefined; | ||
|
||
/** | ||
* Select a whole week instead of a day (default false) | ||
*/ | ||
pickWholeWeek?: boolean | undefined; | ||
|
||
/** | ||
* Reverse the calendar for right-to-left languages. Default: false. | ||
*/ | ||
isRTL?: boolean | undefined; | ||
|
||
/** | ||
* Language defaults for month and weekday names. | ||
*/ | ||
i18n?: PikadayI18nConfig | undefined; | ||
|
||
/** | ||
* Additional text to append to the year in the title. | ||
*/ | ||
yearSuffix?: string | undefined; | ||
|
||
/** | ||
* Render the month after the year in the title. Default: false. | ||
*/ | ||
showMonthAfterYear?: boolean | undefined; | ||
|
||
/** | ||
* Render days of the calendar grid that fall in the next or previous months to the current month instead of rendering an empty table cell. Default: false. | ||
*/ | ||
showDaysInNextAndPreviousMonths?: boolean | undefined; | ||
|
||
/** | ||
* Allows user to select date that is in the next or previous months (default: false) | ||
*/ | ||
enableSelectionDaysInNextAndPreviousMonths?: boolean | undefined; | ||
|
||
/** | ||
* Number of visible calendars. | ||
*/ | ||
numberOfMonths?: number | undefined; | ||
|
||
/** | ||
* When numberOfMonths is used, this will help you to choose where the | ||
* main calendar will be (default left, can be set to right). Only used | ||
* for the first display or when a selected date is not already visible. | ||
*/ | ||
mainCalendar?: string | undefined; | ||
|
||
/** | ||
* Array of dates that you would like to differentiate from regular days (e.g. ['Sat Jun 28 2017', 'Sun Jun 29 2017', 'Tue Jul 01 2017',]) | ||
*/ | ||
events?: string[] | undefined; | ||
|
||
/** | ||
* Define a class name that can be used as a hook for styling different | ||
* themes. Default: null. | ||
*/ | ||
theme?: string | undefined; | ||
|
||
/** | ||
* Defines if the field is blurred when a date is selected (default true) | ||
*/ | ||
blurFieldOnSelect?: boolean | undefined; | ||
|
||
/** | ||
* The default flag for moment's strict date parsing (requires Moment.js for custom formatting). Default: false | ||
*/ | ||
formatStrict?: boolean | undefined; | ||
|
||
/** | ||
* Function which will be used for formatting date object to string. | ||
* This function will take precedence over moment. | ||
*/ | ||
toString?(date: Date, format?: string): string; | ||
|
||
/** | ||
* Function which will be used for parsing input string and getting a date object from it. | ||
* This function will take precedence over moment. | ||
*/ | ||
parse?(date: string, format: string): Date | null; | ||
|
||
/** | ||
* Callback function for when a date is selected. | ||
*/ | ||
onSelect?(this: Pikaday, date: Date): void; | ||
|
||
/** | ||
* Callback function for when the picker becomes visible. | ||
*/ | ||
onOpen?(): void; | ||
|
||
/** | ||
* Callback function for when the picker is hidden. | ||
*/ | ||
onClose?(): void; | ||
|
||
/** | ||
* Callback function for when the picker draws a new month. | ||
*/ | ||
onDraw?(): void; | ||
|
||
/** | ||
* Enable keyboard input support. Default: true | ||
*/ | ||
keyboardInput?: boolean | undefined; | ||
} | ||
} |