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;
+}