From 20184cf64a4bcc8e7d88dae07457cdb7818c44e7 Mon Sep 17 00:00:00 2001 From: Aaron King Date: Wed, 13 Nov 2013 20:37:16 -0500 Subject: [PATCH 1/6] moment: Added support for 2.4.0 features --- moment/moment.d.ts | 76 +++++++++++++++++++--------------------------- 1 file changed, 32 insertions(+), 44 deletions(-) diff --git a/moment/moment.d.ts b/moment/moment.d.ts index 700a2a1c14..3b71aafa4d 100644 --- a/moment/moment.d.ts +++ b/moment/moment.d.ts @@ -165,6 +165,16 @@ interface Moment { lang(reset: boolean): void; lang(): string; + max(date: Date): Moment; + max(date: number): Moment; + max(date: Array): Moment; + max(date: string): Moment; + max(date: string, format: string): Moment; + max(clone: Moment): Moment; + + get(unit: string): number; + set(unit: string, value: number): Moment; + } interface MomentCalendar { @@ -229,12 +239,13 @@ interface MomentRelativeTime { interface MomentStatic { (): Moment; - (date: number): Moment; - (date: string): Moment; - (date: string, time: string): Moment; - (date: Date): Moment; - (date: string, formats: string[]): Moment; - (date: number[]): Moment; + (dateObject: Object, language?: string, strict?: boolean): Moment; + (date: number, language?: string, strict?: boolean): Moment; + (date: string, language?: string, strict?: boolean): Moment; + (date: string, format: string, language?: string, strict?: boolean): Moment; + (date: string, formats: string[], language?: string, strict?: boolean): Moment; + (date: Date, language?: string, strict?: boolean): Moment; + (date: number[], language?: string, strict?: boolean): Moment; (clone: Moment): Moment; unix(timestamp: number): Moment; @@ -244,16 +255,13 @@ interface MomentStatic { utc(array: number[]): Moment; // parse an array of numbers matching Date.UTC() parameters utc(String: string): Moment; // parse string into UTC mode utc(String1: string, String2: string): Moment; // parse a string and format into UTC mode + utc(date: Date): Moment; + utc(clone: Moment): Moment; isMoment(): boolean; isMoment(m: any): boolean; lang(language: string): any; lang(language: string, definition: MomentLanguage): any; - months: string[]; - monthsShort: string[]; - weekdays: string[]; - weekdaysShort: string[]; - weekdaysMin: string[]; longDateFormat: any; relativeTime: any; meridiem: (hour: number, minute: number, isLowercase: boolean) => string; @@ -265,39 +273,19 @@ interface MomentStatic { duration(input: MomentInput): Duration; duration(object: any): Duration; duration(): Duration; - - isBefore(b: Moment): boolean; - isBefore(b: string): boolean; - isBefore(b: Number): boolean; - isBefore(b: Date): boolean; - isBefore(b: number[]): boolean; - isBefore(b: Moment, granularity: string): boolean; - isBefore(b: String, granularity: string): boolean; - isBefore(b: Number, granularity: string): boolean; - isBefore(b: Date, granularity: string): boolean; - isBefore(b: number[], granularity: string): boolean; - - isAfter(b: Moment): boolean; - isAfter(b: string): boolean; - isAfter(b: Number): boolean; - isAfter(b: Date): boolean; - isAfter(b: number[]): boolean; - isAfter(b: Moment, granularity: string): boolean; - isAfter(b: String, granularity: string): boolean; - isAfter(b: Number, granularity: string): boolean; - isAfter(b: Date, granularity: string): boolean; - isAfter(b: number[], granularity: string): boolean; - - isSame(b: Moment): boolean; - isSame(b: string): boolean; - isSame(b: Number): boolean; - isSame(b: Date): boolean; - isSame(b: number[]): boolean; - isSame(b: Moment, granularity: string): boolean; - isSame(b: String, granularity: string): boolean; - isSame(b: Number, granularity: string): boolean; - isSame(b: Date, granularity: string): boolean; - isSame(b: number[], granularity: string): boolean; + + parseZone(date: string): Moment; + + // These return either string or string[] + months(format?: string, index?: number); + monthsShort(format?: string, index?: number); + weekdays(format?: string, index?: number); + weekdaysShort(format?: string, index?: number); + weekdaysMin(format?: string, index?: number); + + normalizeUnits(unit: string): string; + + invalid(parsingFlags?: Object): Moment; } declare var moment: MomentStatic; From ef5c99057393f5acadc8e79dbc47321ccf06842b Mon Sep 17 00:00:00 2001 From: Aaron King Date: Wed, 13 Nov 2013 20:41:40 -0500 Subject: [PATCH 2/6] Updated file header --- moment/moment.d.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/moment/moment.d.ts b/moment/moment.d.ts index 3b71aafa4d..918c76bdbe 100644 --- a/moment/moment.d.ts +++ b/moment/moment.d.ts @@ -1,6 +1,7 @@ -// Type definitions for Moment.js 2.1.0 +// Type definitions for Moment.js 2.4.0 // Project: https://github.com/timrwood/moment // Definitions by: Michael Lakerveld +// 2.4.0 Aaron King // DefinitelyTyped: https://github.com/borisyankov/DefinitelyTyped From 5bbd4398c46d06c76e0668c8c63bb5735a4cc96c Mon Sep 17 00:00:00 2001 From: Aaron King Date: Wed, 13 Nov 2013 21:49:56 -0500 Subject: [PATCH 3/6] moment: added min --- moment/moment.d.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/moment/moment.d.ts b/moment/moment.d.ts index 918c76bdbe..3dffe3640f 100644 --- a/moment/moment.d.ts +++ b/moment/moment.d.ts @@ -173,6 +173,13 @@ interface Moment { max(date: string, format: string): Moment; max(clone: Moment): Moment; + min(date: Date): Moment; + min(date: number): Moment; + min(date: Array): Moment; + min(date: string): Moment; + min(date: string, format: string): Moment; + min(clone: Moment): Moment; + get(unit: string): number; set(unit: string, value: number): Moment; From 0ebffd7f2564f7ab750ea2c75d7080f5fa4339ff Mon Sep 17 00:00:00 2001 From: Aaron King Date: Wed, 13 Nov 2013 23:19:58 -0500 Subject: [PATCH 4/6] Added any return type to static methods that were implictly any. --- moment/moment.d.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/moment/moment.d.ts b/moment/moment.d.ts index 3dffe3640f..bc36f498df 100644 --- a/moment/moment.d.ts +++ b/moment/moment.d.ts @@ -285,11 +285,11 @@ interface MomentStatic { parseZone(date: string): Moment; // These return either string or string[] - months(format?: string, index?: number); - monthsShort(format?: string, index?: number); - weekdays(format?: string, index?: number); - weekdaysShort(format?: string, index?: number); - weekdaysMin(format?: string, index?: number); + months(format?: string, index?: number): any; + monthsShort(format?: string, index?: number): any; + weekdays(format?: string, index?: number): any; + weekdaysShort(format?: string, index?: number): any; + weekdaysMin(format?: string, index?: number): any; normalizeUnits(unit: string): string; From 0f4f5d607dc35e70f37f8e76fa43951678275732 Mon Sep 17 00:00:00 2001 From: Aaron King Date: Thu, 14 Nov 2013 02:07:20 -0500 Subject: [PATCH 5/6] Expanded static methods for 2.4.0 --- moment/moment.d.ts | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/moment/moment.d.ts b/moment/moment.d.ts index bc36f498df..38bf0335f1 100644 --- a/moment/moment.d.ts +++ b/moment/moment.d.ts @@ -284,12 +284,26 @@ interface MomentStatic { parseZone(date: string): Moment; - // These return either string or string[] - months(format?: string, index?: number): any; - monthsShort(format?: string, index?: number): any; - weekdays(format?: string, index?: number): any; - weekdaysShort(format?: string, index?: number): any; - weekdaysMin(format?: string, index?: number): any; + months(): string[]; + months(index: number): string; + months(format: string): string[]; + months(format: string, index: number): string; + monthsShort(): string[]; + monthsShort(index: number): string; + monthsShort(format: string): string[]; + monthsShort(format: string, index: number): string; + weekdays(): string[]; + weekdays(index: number): string; + weekdays(format: string): string[]; + weekdays(format: string, index: number): string; + weekdaysShort(): string[]; + weekdaysShort(index: number): string; + weekdaysShort(format: string): string[]; + weekdaysShort(format: string, index: number): string; + weekdaysMin(): string[]; + weekdaysMin(index: number): string; + weekdaysMin(format: string): string[]; + weekdaysMin(format: string, index: number): string; normalizeUnits(unit: string): string; From 38a87ca4d2ae4a9b2d31237515f080647b8967e4 Mon Sep 17 00:00:00 2001 From: basarat Date: Thu, 14 Nov 2013 20:03:16 +1100 Subject: [PATCH 6/6] momentjs: fix tests --- moment/moment-tests.ts | 115 +++++++++++++++++++++-------------------- 1 file changed, 59 insertions(+), 56 deletions(-) diff --git a/moment/moment-tests.ts b/moment/moment-tests.ts index 684c91e3f9..7f11c50076 100644 --- a/moment/moment-tests.ts +++ b/moment/moment-tests.ts @@ -164,62 +164,6 @@ localLang.lang('fr'); localLang.format('LLLL'); globalLang.format('LLLL'); -moment.months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; -moment.monthsShort = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; -moment.weekdays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; -moment.weekdaysShort = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; -moment.weekdaysMin = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]; -moment.longDateFormat = { - LT: "h:mm A", - L: "MM/DD/YYYY", - LL: "MMMM D YYYY", - LLL: "MMMM D YYYY LT", - LLLL: "dddd, MMMM D YYYY LT" -}; -moment.relativeTime = { - future: "in %s", - past: "%s ago", - s: "seconds", - m: "a minute", - mm: "%d minutes", - h: "an hour", - hh: "%d hours", - d: "a day", - dd: "%d days", - M: "a month", - MM: "%d months", - y: "a year", - yy: "%d years" -}; -moment.meridiem = function (hour, minute, isLower) { - if (hour < 9) { - return "??"; - } else if (hour < 11 && minute < 30) { - return "??"; - } else if (hour < 13 && minute < 30) { - return "??"; - } else if (hour < 18) { - return "??"; - } else { - return "??"; - } -}; -moment.calendar = { - lastDay : '[Yesterday at] LT', - sameDay : '[Today at] LT', - nextDay : '[Tomorrow at] LT', - lastWeek : '[last] dddd [at] LT', - nextWeek : 'dddd [at] LT', - sameElse : 'L' -}; -moment.ordinal = function (number) { - var b = number % 10; - return (~~ (number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; -}; - moment.duration(100); moment.duration(2, 'seconds'); moment.duration({ @@ -239,6 +183,65 @@ moment.duration(500).asSeconds(); moment.duration().minutes(); moment.duration().asMinutes(); +// Defining a custom language: +moment.lang('en', { + months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], + monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], + weekdays: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], + weekdaysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], + weekdaysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], + longDateFormat: { + LT: "h:mm A", + L: "MM/DD/YYYY", + LL: "MMMM D YYYY", + LLL: "MMMM D YYYY LT", + LLLL: "dddd, MMMM D YYYY LT" + }, + relativeTime: { + future: "in %s", + past: "%s ago", + s: "seconds", + m: "a minute", + mm: "%d minutes", + h: "an hour", + hh: "%d hours", + d: "a day", + dd: "%d days", + M: "a month", + MM: "%d months", + y: "a year", + yy: "%d years" + }, + meridiem: function (hour, minute, isLower) { + if (hour < 9) { + return "??"; + } else if (hour < 11 && minute < 30) { + return "??"; + } else if (hour < 13 && minute < 30) { + return "??"; + } else if (hour < 18) { + return "??"; + } else { + return "??"; + } + }, + calendar: { + lastDay: '[Yesterday at] LT', + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + lastWeek: '[last] dddd [at] LT', + nextWeek: 'dddd [at] LT', + sameElse: 'L' + }, + ordinal: function (number) { + var b = number % 10; + return (~~(number % 100 / 10) === 1) ? 'th' : + (b === 1) ? 'st' : + (b === 2) ? 'nd' : + (b === 3) ? 'rd' : 'th'; + } +}); + moment.lang('en', { months : [ "January", "February", "March", "April", "May", "June", "July",