moment-range: Provides its own types (#39468)

* moment-range: Provides its own types

* add moment-range as dependency to react-daterange-picker

* fix moment-range types in react-daterange-picker
This commit is contained in:
Alexander T
2019-11-12 14:16:54 -08:00
committed by Pranav Senthilnathan
parent 14b1e480a6
commit 8169c6dbfe
8 changed files with 10 additions and 181 deletions
+6
View File
@@ -2694,6 +2694,12 @@
"sourceRepoURL": "https://github.com/moment/moment",
"asOfVersion": "2.13.0"
},
{
"libraryName": "moment-range",
"typingsPackageName": "moment-range",
"sourceRepoURL": "https://github.com/rotaready/moment-range",
"asOfVersion": "4.0.0"
},
{
"libraryName": "mongodb-memory-server",
"typingsPackageName": "mongodb-memory-server",
-69
View File
@@ -1,69 +0,0 @@
// Type definitions for Moment-range.js 3.1
// Project: https://github.com/rotaready/moment-range
// Definitions by: Bart van den Burg <https://github.com/Burgov>
// Wilgert Velinga <https://github.com/wilgert>
// Juan Francisco Adame <https://github.com/franjuan>
// MartynasZilinskas <https://github.com/MartynasZilinskas>
// Che Coxshall <https://github.com/chemass>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
import moment = require('moment');
export class DateRange {
start: moment.Moment;
end: moment.Moment;
constructor(range: string | Date[] | moment.Moment[]);
constructor(start: Date | moment.Moment, end: Date | moment.Moment);
contains(other: DateRange | moment.Moment | Date, options?: { exclusive?: boolean }): boolean;
overlaps(range: DateRange, options?: { adjacent?: boolean }): boolean;
intersect(other: DateRange): DateRange;
add(other: DateRange, options?: { adjacent?: boolean }): DateRange;
subtract(other: DateRange): DateRange[];
by(interval: moment.unitOfTime.Diff, options?: { exclusive?: boolean, step?: number }): Iterable<moment.Moment>;
byRange(interval: DateRange, options?: { exclusive?: boolean, step?: number }): Iterable<moment.Moment>;
isSame(other: DateRange): boolean;
diff(unit?: moment.unitOfTime.Diff, rounded?: boolean): number;
toDate(): Date[];
toString(): string;
valueOf(): number;
center(): moment.Moment;
clone(): DateRange;
isEqual(other: DateRange): boolean;
adjacent(other: DateRange): boolean;
duration(unit?: moment.unitOfTime.Diff, precise?: boolean): number;
reverseBy(interval: moment.unitOfTime.Diff, options?: { exclusive?: boolean, step?: number }): Iterable<moment.Moment>;
reverseByRange(interval: DateRange, options?: { exclusive?: boolean, step?: number }): Iterable<moment.Moment>;
}
export interface MomentRangeMethods {
range(range: string | Date[] | moment.Moment[]): DateRange;
range(start: Date | moment.Moment, end: Date | moment.Moment): DateRange;
isRange(range: any): range is DateRange;
within(range: DateRange): boolean;
}
export interface MomentRangeExtends extends MomentRangeMethods {
(...args: any[]): MomentRangeMethods & moment.Moment;
}
export function extendMoment(momentInstance: moment.Moment | typeof moment): MomentRangeExtends & moment.Moment;
-79
View File
@@ -1,79 +0,0 @@
import moment = require("moment");
import * as momentRange from "moment-range";
const range: momentRange.DateRange = new momentRange.DateRange(new Date(2012, 0, 15), new Date(2012, 4, 23));
const extendedMoment = momentRange.extendMoment(moment);
// Moment methods test
extendedMoment.add();
extendedMoment().add();
const range2: momentRange.DateRange = new momentRange.DateRange(moment("2011-04-15", "YYYY-MM-DD"), moment("2011-11-27", "YYYY-MM-DD"));
const range3: momentRange.DateRange = new momentRange.DateRange([moment("2011-04-15", "YYYY-MM-DD"), moment("2011-11-27", "YYYY-MM-DD")]);
const range4: momentRange.DateRange = new momentRange.DateRange("2015-01-17T09:50:04+00:00/2015-04-17T08:29:55+00:00");
const date: moment.Moment = moment('2012-05-15');
const res1: boolean = range.adjacent(range2);
const it0: Iterable<moment.Moment> = range.by('days');
const it1: Iterable<moment.Moment> = range.by('months', { exclusive: true });
const it2: Iterable<moment.Moment> = range.by('years', { exclusive: false, step: 2 });
const it3: Iterable<moment.Moment> = range.byRange(range);
const it4: Iterable<moment.Moment> = range.byRange(range, { exclusive: true });
const it5: Iterable<moment.Moment> = range.byRange(range, { exclusive: false, step: 2 });
const res2: moment.Moment = range.center();
const res3: momentRange.DateRange = range.clone();
const res4: boolean = range.contains(range);
const res5: boolean = range.contains(range, { exclusive: true });
const res6: boolean = range.contains(range, { exclusive: false });
const res10: number = range.diff('months', true);
const res11: number = range.diff('days');
const res12: number = range.diff();
const res13: number = range.duration('months', true);
const res14: number = range.duration('days');
const res15: number = range.duration();
const res16: momentRange.DateRange = range.intersect(range2);
const res17: boolean = range.isSame(range2);
const res18: boolean = range.isEqual(range2);
const res20: boolean = range.overlaps(range2);
const res21: boolean = range.overlaps(range2, { adjacent: true });
const res22: boolean = range.overlaps(range2, { adjacent: false });
const it6: Iterable<moment.Moment> = range.reverseBy('days');
const it7: Iterable<moment.Moment> = range.reverseBy('months', { exclusive: true });
const it8: Iterable<moment.Moment> = range.reverseBy('years', { exclusive: false, step: 2 });
const it9: Iterable<moment.Moment> = range.reverseByRange(range);
const it10: Iterable<moment.Moment> = range.reverseByRange(range, { exclusive: true });
const it11: Iterable<moment.Moment> = range.reverseByRange(range, { exclusive: false, step: 2 });
const res23: momentRange.DateRange = range.add(range2);
const res24: momentRange.DateRange = range.add(range2, {adjacent: true});
const res25: momentRange.DateRange = range.add(range2, {adjacent: false});
const res26: momentRange.DateRange[] = range.subtract(range2);
const res27: Date[] = range.toDate();
const res28: string = range.toString();
const res29: number = range.valueOf();
const res30: moment.Moment = range.start;
const res31: moment.Moment = range.end;
const res32: boolean = extendedMoment.within(range);
const res33: boolean = extendedMoment().within(range);
const res34: momentRange.DateRange = extendedMoment().range(moment("2011-04-15", "YYYY-MM-DD"), moment("2011-11-27", "YYYY-MM-DD"));
-6
View File
@@ -1,6 +0,0 @@
{
"private": true,
"dependencies": {
"moment": "^2.18.1"
}
}
-23
View File
@@ -1,23 +0,0 @@
{
"compilerOptions": {
"module": "commonjs",
"lib": [
"es6"
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": false,
"strictFunctionTypes": true,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"moment-range-tests.ts"
]
}
-1
View File
@@ -1 +0,0 @@
{ "extends": "dtslint/dt.json" }
+2 -2
View File
@@ -34,14 +34,14 @@ export interface Props<T = DateRangePicker> extends React.Props<T> {
onHighlightDate?(date: Date): void;
onHighlightRange?(date: Date): void;
onSelect?(value: OnSelectCallbackParam): void;
onSelectStart?(value: momentRange.MomentRangeExtends): void;
onSelectStart?(value: momentRange.MomentRange & typeof moment): void;
paginationArrowComponent?: React.ComponentClass<PaginationArrowProps> | React.SFC<PaginationArrowProps>;
selectedLabel?: string;
selectionType?: 'single' | 'range';
singleDateRange?: boolean;
showLegend?: boolean;
stateDefinitions?: StateDefinitions;
value?: momentRange.MomentRangeExtends | momentRange.DateRange | moment.Moment;
value?: (momentRange.MomentRange & typeof moment) | momentRange.DateRange | moment.Moment;
}
export interface DateState {
+2 -1
View File
@@ -1,6 +1,7 @@
{
"private": true,
"dependencies": {
"moment": "^2.18.1"
"moment": "^2.18.1",
"moment-range": "^4.0.0"
}
}