diff --git a/pikaday/pikaday-tests.ts b/pikaday/pikaday-tests.ts index 28d0c33c2..78a3b378f 100644 --- a/pikaday/pikaday-tests.ts +++ b/pikaday/pikaday-tests.ts @@ -2,6 +2,8 @@ /// /// +import * as Pikaday from "pikaday"; + new Pikaday({field: document.getElementById('datepicker')}); new Pikaday({field: $('#datepicker')[0]}); @@ -46,7 +48,7 @@ new Pikaday({field: $('#datepicker')[0]}); })(); (() => { - var i18n:PikadayI18nConfig = { + var i18n: Pikaday.PikadayI18nConfig = { previousMonth: 'Previous Month', nextMonth: 'Next Month', months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], diff --git a/pikaday/pikaday.d.ts b/pikaday/pikaday.d.ts index 21a112b8e..a0f1ab58b 100644 --- a/pikaday/pikaday.d.ts +++ b/pikaday/pikaday.d.ts @@ -5,48 +5,10 @@ /// -interface PikadayI18nConfig { - previousMonth: string; - nextMonth: string; - months: string[]; - weekdays: string[]; - weekdaysShort: string[]; -} - -interface PikadayOptions { - field?: HTMLElement; - format?: string; - trigger?: HTMLElement; - bound?: boolean; - position?: string; - reposition?: boolean; - container?: HTMLElement; - defaultDate?: Date; - setDefaultDate?: boolean; - firstDay?: number; - minDate?: Date; - maxDate?: Date; - disableWeekends?: boolean; - disableDayFn?: (date:Date) => boolean; - yearRange?: number[]; - showWeekNumber?: boolean; - isRTL?: boolean; - i18n?: PikadayI18nConfig; - yearSuffix?: string; - showMonthAfterYear?: boolean; - numberOfMonths?: number; - mainCalendar?: string; - theme?: string; - onSelect?: (date:Date) => void; - onOpen?: () => void; - onClose?: () => void; - onDraw?: () => void; -} - declare class Pikaday { el:HTMLElement; - constructor(options:PikadayOptions); + constructor(options: Pikaday.PikadayOptions); toString():string; toString(format:string):string; @@ -87,3 +49,48 @@ declare class Pikaday { destroy():void; } + +// merge the Pikaday class declaration with a module +declare module Pikaday { + interface PikadayI18nConfig { + previousMonth: string; + nextMonth: string; + months: string[]; + weekdays: string[]; + weekdaysShort: string[]; + } + + interface PikadayOptions { + field?: HTMLElement; + format?: string; + trigger?: HTMLElement; + bound?: boolean; + position?: string; + reposition?: boolean; + container?: HTMLElement; + defaultDate?: Date; + setDefaultDate?: boolean; + firstDay?: number; + minDate?: Date; + maxDate?: Date; + disableWeekends?: boolean; + disableDayFn?: (date:Date) => boolean; + yearRange?: number[]; + showWeekNumber?: boolean; + isRTL?: boolean; + i18n?: PikadayI18nConfig; + yearSuffix?: string; + showMonthAfterYear?: boolean; + numberOfMonths?: number; + mainCalendar?: string; + theme?: string; + onSelect?: (date:Date) => void; + onOpen?: () => void; + onClose?: () => void; + onDraw?: () => void; + } +} + +declare module "pikaday" { + export = Pikaday; +}