diff --git a/packages/common/src/formatters/__tests__/dateEuroFormatter.spec.ts b/packages/common/src/formatters/__tests__/dateEuroFormatter.spec.ts index 376479b4f..378c39ffe 100644 --- a/packages/common/src/formatters/__tests__/dateEuroFormatter.spec.ts +++ b/packages/common/src/formatters/__tests__/dateEuroFormatter.spec.ts @@ -16,7 +16,7 @@ describe('the DateEuro Formatter', () => { it('should provide a dateIso formatted input and return a formatted date value without time when valid date value is provided', () => { const value = '2019-05-03 00:00:01'; - const result = Formatters.dateEuro(0, 0, value, { input: 'dateIso' } as unknown as Column, {}, {} as any); + const result = Formatters.dateEuro(0, 0, value, { type: 'dateIso' } as unknown as Column, {}, {} as any); expect(result).toBe('03/05/2019'); }); diff --git a/packages/common/src/formatters/__tests__/dateIsoFormatter.spec.ts b/packages/common/src/formatters/__tests__/dateIsoFormatter.spec.ts index 273d37223..a410678a1 100644 --- a/packages/common/src/formatters/__tests__/dateIsoFormatter.spec.ts +++ b/packages/common/src/formatters/__tests__/dateIsoFormatter.spec.ts @@ -16,7 +16,7 @@ describe('the Date ISO Formatter', () => { it('should provide a dateIso formatted input and return a formatted date value without time when valid date value is provided', () => { const value = '2019-05-03 00:00:01'; - const result = Formatters.dateIso(0, 0, value, { input: 'dateIso' } as unknown as Column, {}, {} as any); + const result = Formatters.dateIso(0, 0, value, { type: 'dateIso' } as unknown as Column, {}, {} as any); expect(result).toBe('2019-05-03'); }); diff --git a/packages/common/src/formatters/__tests__/dateTimeEuroAmPmFormatter.spec.ts b/packages/common/src/formatters/__tests__/dateTimeEuroAmPmFormatter.spec.ts index 6c5671b6f..e4e7422c5 100644 --- a/packages/common/src/formatters/__tests__/dateTimeEuroAmPmFormatter.spec.ts +++ b/packages/common/src/formatters/__tests__/dateTimeEuroAmPmFormatter.spec.ts @@ -16,7 +16,7 @@ describe('the DateTimeShortEuro Formatter', () => { it('should provide a dateIso formatted input and return a formatted date value without time when valid date value is provided', () => { const value = '2019-05-01 02:36:07'; - const result = Formatters.dateTimeEuroAmPm(0, 0, value, { input: 'dateIso' } as unknown as Column, {}, {} as any); + const result = Formatters.dateTimeEuroAmPm(0, 0, value, { type: 'dateIso' } as unknown as Column, {}, {} as any); expect(result).toBe('01/05/2019 02:36:07 am'); }); diff --git a/packages/common/src/formatters/__tests__/dateTimeEuroFormatter.spec.ts b/packages/common/src/formatters/__tests__/dateTimeEuroFormatter.spec.ts index 44aa365b9..69fcfb66f 100644 --- a/packages/common/src/formatters/__tests__/dateTimeEuroFormatter.spec.ts +++ b/packages/common/src/formatters/__tests__/dateTimeEuroFormatter.spec.ts @@ -16,7 +16,7 @@ describe('the DateTimeEuro Formatter', () => { it('should provide a dateIso formatted input and return a formatted date value without time when valid date value is provided', () => { const value = '2019-05-01 02:36:07'; - const result = Formatters.dateTimeEuro(0, 0, value, { input: 'dateIso' } as unknown as Column, {}, {} as any); + const result = Formatters.dateTimeEuro(0, 0, value, { type: 'dateIso' } as unknown as Column, {}, {} as any); expect(result).toBe('01/05/2019 02:36:07'); }); diff --git a/packages/common/src/formatters/__tests__/dateTimeIsoAmPmFormatter.spec.ts b/packages/common/src/formatters/__tests__/dateTimeIsoAmPmFormatter.spec.ts index a12ef5ef6..afb3a0127 100644 --- a/packages/common/src/formatters/__tests__/dateTimeIsoAmPmFormatter.spec.ts +++ b/packages/common/src/formatters/__tests__/dateTimeIsoAmPmFormatter.spec.ts @@ -16,7 +16,7 @@ describe('the DateTimeIsoAmPm Formatter', () => { it('should provide a dateIso formatted input and return a formatted date value without time when valid date value is provided', () => { const value = '2019-05-01 02:36:07'; - const result = Formatters.dateTimeIsoAmPm(0, 0, value, { input: 'dateIso' } as unknown as Column, {}, {} as any); + const result = Formatters.dateTimeIsoAmPm(0, 0, value, { type: 'dateIso' } as unknown as Column, {}, {} as any); expect(result).toBe('2019-05-01 02:36:07 am'); }); diff --git a/packages/common/src/formatters/__tests__/dateTimeIsoFormatter.spec.ts b/packages/common/src/formatters/__tests__/dateTimeIsoFormatter.spec.ts index fa31ae7e8..bd5655f26 100644 --- a/packages/common/src/formatters/__tests__/dateTimeIsoFormatter.spec.ts +++ b/packages/common/src/formatters/__tests__/dateTimeIsoFormatter.spec.ts @@ -16,7 +16,7 @@ describe('the DateTimeIso Formatter', () => { it('should provide a dateIso formatted input and return a formatted date value without time when valid date value is provided', () => { const value = '2019-05-01 02:36:07'; - const result = Formatters.dateTimeIso(0, 0, value, { input: 'dateIso' } as unknown as Column, {}, {} as any); + const result = Formatters.dateTimeIso(0, 0, value, { type: 'dateIso' } as unknown as Column, {}, {} as any); expect(result).toBe('2019-05-01 02:36:07'); }); diff --git a/packages/common/src/formatters/__tests__/dateTimeShortEuroFormatter.spec.ts b/packages/common/src/formatters/__tests__/dateTimeShortEuroFormatter.spec.ts index b2cdf86a3..654fa4e2d 100644 --- a/packages/common/src/formatters/__tests__/dateTimeShortEuroFormatter.spec.ts +++ b/packages/common/src/formatters/__tests__/dateTimeShortEuroFormatter.spec.ts @@ -16,7 +16,7 @@ describe('the DateTimeShortEuro Formatter', () => { it('should provide a dateIso formatted input and return a formatted date value without time when valid date value is provided', () => { const value = '2019-05-01 02:36:07'; - const result = Formatters.dateTimeShortEuro(0, 0, value, { input: 'dateIso' } as unknown as Column, {}, {} as any); + const result = Formatters.dateTimeShortEuro(0, 0, value, { type: 'dateIso' } as unknown as Column, {}, {} as any); expect(result).toBe('01/05/2019 02:36'); }); diff --git a/packages/common/src/formatters/__tests__/dateTimeShortIsoFormatter.spec.ts b/packages/common/src/formatters/__tests__/dateTimeShortIsoFormatter.spec.ts index c80c92189..069a0bb4b 100644 --- a/packages/common/src/formatters/__tests__/dateTimeShortIsoFormatter.spec.ts +++ b/packages/common/src/formatters/__tests__/dateTimeShortIsoFormatter.spec.ts @@ -16,7 +16,7 @@ describe('the DateTimeShortIso Formatter', () => { it('should provide a dateIso formatted input and return a formatted date value without time when valid date value is provided', () => { const value = '2019-05-01 02:36:07'; - const result = Formatters.dateTimeShortIso(0, 0, value, { input: 'dateIso' } as unknown as Column, {}, {} as any); + const result = Formatters.dateTimeShortIso(0, 0, value, { type: 'dateIso' } as unknown as Column, {}, {} as any); expect(result).toBe('2019-05-01 02:36'); }); diff --git a/packages/common/src/formatters/__tests__/dateTimeShortUsFormatter.spec.ts b/packages/common/src/formatters/__tests__/dateTimeShortUsFormatter.spec.ts index 07c865c8c..eaa8d6ef6 100644 --- a/packages/common/src/formatters/__tests__/dateTimeShortUsFormatter.spec.ts +++ b/packages/common/src/formatters/__tests__/dateTimeShortUsFormatter.spec.ts @@ -16,7 +16,7 @@ describe('the DateTimeShortUs Formatter', () => { it('should provide a dateIso formatted input and return a formatted date value without time when valid date value is provided', () => { const value = '2019-05-03 02:36:07'; - const result = Formatters.dateTimeShortUs(0, 0, value, { input: 'dateIso' } as unknown as Column, {}, {} as any); + const result = Formatters.dateTimeShortUs(0, 0, value, { type: 'dateIso' } as unknown as Column, {}, {} as any); expect(result).toBe('05/03/2019 02:36'); }); diff --git a/packages/common/src/formatters/__tests__/dateTimeUsAmPmFormatter.spec.ts b/packages/common/src/formatters/__tests__/dateTimeUsAmPmFormatter.spec.ts index 36f19625d..a506e908d 100644 --- a/packages/common/src/formatters/__tests__/dateTimeUsAmPmFormatter.spec.ts +++ b/packages/common/src/formatters/__tests__/dateTimeUsAmPmFormatter.spec.ts @@ -16,7 +16,7 @@ describe('the DateTimeShortUs Formatter', () => { it('should provide a dateIso formatted input and return a formatted date value without time when valid date value is provided', () => { const value = '2019-05-03 02:36:07'; - const result = Formatters.dateTimeUsAmPm(0, 0, value, { input: 'dateIso' } as unknown as Column, {}, {} as any); + const result = Formatters.dateTimeUsAmPm(0, 0, value, { type: 'dateIso' } as unknown as Column, {}, {} as any); expect(result).toBe('05/03/2019 02:36:07 am'); }); diff --git a/packages/common/src/formatters/__tests__/dateTimeUsFormatter.spec.ts b/packages/common/src/formatters/__tests__/dateTimeUsFormatter.spec.ts index 2a4d79c3f..d2b69e652 100644 --- a/packages/common/src/formatters/__tests__/dateTimeUsFormatter.spec.ts +++ b/packages/common/src/formatters/__tests__/dateTimeUsFormatter.spec.ts @@ -16,7 +16,7 @@ describe('the DateTimeUs Formatter', () => { it('should provide a dateIso formatted input and return a formatted date value without time when valid date value is provided', () => { const value = '2019-05-03 02:36:07'; - const result = Formatters.dateTimeUs(0, 0, value, { input: 'dateIso' } as unknown as Column, {}, {} as any); + const result = Formatters.dateTimeUs(0, 0, value, { type: 'dateIso' } as unknown as Column, {}, {} as any); expect(result).toBe('05/03/2019 02:36:07'); }); diff --git a/packages/common/src/formatters/__tests__/dateUsFormatter.spec.ts b/packages/common/src/formatters/__tests__/dateUsFormatter.spec.ts index 5c5775f6d..4388338f2 100644 --- a/packages/common/src/formatters/__tests__/dateUsFormatter.spec.ts +++ b/packages/common/src/formatters/__tests__/dateUsFormatter.spec.ts @@ -16,7 +16,7 @@ describe('the DateUs Formatter', () => { it('should provide a dateIso formatted input and return a formatted date value without time when valid date value is provided', () => { const value = '2019-05-03'; - const result = Formatters.dateUs(0, 0, value, { input: 'dateIso' } as unknown as Column, {}, {} as any); + const result = Formatters.dateUs(0, 0, value, { type: 'dateIso' } as unknown as Column, {}, {} as any); expect(result).toBe('05/03/2019'); }); diff --git a/packages/common/src/sortComparers/dateUtilities.ts b/packages/common/src/sortComparers/dateUtilities.ts index b0c6e2cb1..4b4b574e5 100644 --- a/packages/common/src/sortComparers/dateUtilities.ts +++ b/packages/common/src/sortComparers/dateUtilities.ts @@ -7,18 +7,18 @@ const moment = moment_['default'] || moment_; // patch to fix rollup "moment has export function compareDates(value1: any, value2: any, sortDirection: number, sortColumn: Column, gridOptions: GridOption, format: string | moment_.MomentBuiltinFormat, strict?: boolean) { let diff = 0; const checkForUndefinedValues = sortColumn?.valueCouldBeUndefined ?? gridOptions?.cellValueCouldBeUndefined ?? false; + const date1 = moment(value1, format, strict); + const date2 = moment(value2, format, strict); - if (value1 === null || value1 === '' || (checkForUndefinedValues && value1 === undefined) || !moment(value1, format, strict).isValid()) { + if (value1 === null || value1 === '' || (checkForUndefinedValues && value1 === undefined) || !date1.isValid()) { diff = -1; - } else if (value2 === null || value2 === '' || (checkForUndefinedValues && value2 === undefined) || !moment(value2, format, strict).isValid()) { + } else if (value2 === null || value2 === '' || (checkForUndefinedValues && value2 === undefined) || !date2.isValid()) { diff = 1; } else { - const date1 = moment(value1, format, strict); - const date2 = moment(value2, format, strict); - diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10); + diff = date1.valueOf() < date2.valueOf() ? -1 : 1; } - return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1)); + return sortDirection * diff; } /** From a FieldType, return the associated Date SortComparer */