diff --git a/src/app/modules/angular-slickgrid/formatters/__tests__/dateEuroFormatter.spec.ts b/src/app/modules/angular-slickgrid/formatters/__tests__/dateEuroFormatter.spec.ts index fc03777e4..82d9c5bd2 100644 --- a/src/app/modules/angular-slickgrid/formatters/__tests__/dateEuroFormatter.spec.ts +++ b/src/app/modules/angular-slickgrid/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, {}, {}); + const result = Formatters.dateEuro(0, 0, value, { type: 'dateIso' } as unknown as Column, {}, {}); expect(result).toBe('03/05/2019'); }); diff --git a/src/app/modules/angular-slickgrid/formatters/__tests__/dateIsoFormatter.spec.ts b/src/app/modules/angular-slickgrid/formatters/__tests__/dateIsoFormatter.spec.ts index 915da1cb4..eebd427cf 100644 --- a/src/app/modules/angular-slickgrid/formatters/__tests__/dateIsoFormatter.spec.ts +++ b/src/app/modules/angular-slickgrid/formatters/__tests__/dateIsoFormatter.spec.ts @@ -17,7 +17,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, {}, {}); + const result = Formatters.dateIso(0, 0, value, { type: 'dateIso' } as unknown as Column, {}, {}); expect(result).toBe('2019-05-03'); }); diff --git a/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeEuroAmPmFormatter.spec.ts b/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeEuroAmPmFormatter.spec.ts index 7f5cb55a3..284f68090 100644 --- a/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeEuroAmPmFormatter.spec.ts +++ b/src/app/modules/angular-slickgrid/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, {}, {}); + const result = Formatters.dateTimeEuroAmPm(0, 0, value, { type: 'dateIso' } as unknown as Column, {}, {}); expect(result).toBe('01/05/2019 02:36:07 am'); }); diff --git a/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeEuroFormatter.spec.ts b/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeEuroFormatter.spec.ts index 7051a2cba..5f1d49374 100644 --- a/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeEuroFormatter.spec.ts +++ b/src/app/modules/angular-slickgrid/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, {}, {}); + const result = Formatters.dateTimeEuro(0, 0, value, { type: 'dateIso' } as unknown as Column, {}, {}); expect(result).toBe('01/05/2019 02:36:07'); }); diff --git a/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeIsoAmPmFormatter.spec.ts b/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeIsoAmPmFormatter.spec.ts index 992ec90d0..8be13ef03 100644 --- a/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeIsoAmPmFormatter.spec.ts +++ b/src/app/modules/angular-slickgrid/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, {}, {}); + const result = Formatters.dateTimeIsoAmPm(0, 0, value, { type: 'dateIso' } as unknown as Column, {}, {}); expect(result).toBe('2019-05-01 02:36:07 am'); }); diff --git a/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeIsoFormatter.spec.ts b/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeIsoFormatter.spec.ts index 0a1965a25..f4299a681 100644 --- a/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeIsoFormatter.spec.ts +++ b/src/app/modules/angular-slickgrid/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, {}, {}); + const result = Formatters.dateTimeIso(0, 0, value, { type: 'dateIso' } as unknown as Column, {}, {}); expect(result).toBe('2019-05-01 02:36:07'); }); diff --git a/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeShortEuroFormatter.spec.ts b/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeShortEuroFormatter.spec.ts index be4ac0146..a0147432c 100644 --- a/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeShortEuroFormatter.spec.ts +++ b/src/app/modules/angular-slickgrid/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, {}, {}); + const result = Formatters.dateTimeShortEuro(0, 0, value, { type: 'dateIso' } as unknown as Column, {}, {}); expect(result).toBe('01/05/2019 02:36'); }); diff --git a/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeShortIsoFormatter.spec.ts b/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeShortIsoFormatter.spec.ts index decfd386c..0f53a0ad6 100644 --- a/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeShortIsoFormatter.spec.ts +++ b/src/app/modules/angular-slickgrid/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, {}, {}); + const result = Formatters.dateTimeShortIso(0, 0, value, { type: 'dateIso' } as unknown as Column, {}, {}); expect(result).toBe('2019-05-01 02:36'); }); diff --git a/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeShortUsFormatter.spec.ts b/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeShortUsFormatter.spec.ts index 80e719167..76c045628 100644 --- a/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeShortUsFormatter.spec.ts +++ b/src/app/modules/angular-slickgrid/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, {}, {}); + const result = Formatters.dateTimeShortUs(0, 0, value, { type: 'dateIso' } as unknown as Column, {}, {}); expect(result).toBe('05/03/2019 02:36'); }); diff --git a/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeUsAmPmFormatter.spec.ts b/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeUsAmPmFormatter.spec.ts index d8a222114..cf8614fa3 100644 --- a/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeUsAmPmFormatter.spec.ts +++ b/src/app/modules/angular-slickgrid/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, {}, {}); + const result = Formatters.dateTimeUsAmPm(0, 0, value, { type: 'dateIso' } as unknown as Column, {}, {}); expect(result).toBe('05/03/2019 02:36:07 am'); }); diff --git a/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeUsFormatter.spec.ts b/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeUsFormatter.spec.ts index 4fdbf342e..e5d1f961f 100644 --- a/src/app/modules/angular-slickgrid/formatters/__tests__/dateTimeUsFormatter.spec.ts +++ b/src/app/modules/angular-slickgrid/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, {}, {}); + const result = Formatters.dateTimeUs(0, 0, value, { type: 'dateIso' } as unknown as Column, {}, {}); expect(result).toBe('05/03/2019 02:36:07'); }); diff --git a/src/app/modules/angular-slickgrid/formatters/__tests__/dateUsFormatter.spec.ts b/src/app/modules/angular-slickgrid/formatters/__tests__/dateUsFormatter.spec.ts index aac7c0be9..76141cdde 100644 --- a/src/app/modules/angular-slickgrid/formatters/__tests__/dateUsFormatter.spec.ts +++ b/src/app/modules/angular-slickgrid/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, {}, {}); + const result = Formatters.dateUs(0, 0, value, { type: 'dateIso' } as unknown as Column, {}, {}); expect(result).toBe('05/03/2019'); }); diff --git a/src/app/modules/angular-slickgrid/sorters/dateUtilities.ts b/src/app/modules/angular-slickgrid/sorters/dateUtilities.ts index 5d2f240c3..7ecca1085 100644 --- a/src/app/modules/angular-slickgrid/sorters/dateUtilities.ts +++ b/src/app/modules/angular-slickgrid/sorters/dateUtilities.ts @@ -6,18 +6,18 @@ const moment = moment_; // patch to fix rollup "moment has no default export" is 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 && sortColumn.valueCouldBeUndefined || gridOptions && 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 Sorter */