Skip to content

Commit 6ce192c

Browse files
committed
fix(localization): Fix date time editor default display format not taking into account format type. Fix tests.
1 parent ed266a2 commit 6ce192c

File tree

5 files changed

+11
-5
lines changed

5 files changed

+11
-5
lines changed

projects/igniteui-angular/src/lib/date-common/util/date-time.util.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,12 @@ export abstract class DateTimeUtil {
253253
return formatter.getLocaleDateTimeFormat(locale, true, DateTimeUtil.getFormatOptions(dataType));
254254
}
255255

256+
/** Builds a date-time editor's default display format based on provided locale settings and data type. */
257+
public static getDefaultDisplayFormat(locale: string, formatter: BaseFormatter, dataType: DataType = DataType.Date): string {
258+
locale = locale || DateTimeUtil.DEFAULT_LOCALE;
259+
return formatter.getLocaleDateTimeFormat(locale, false, DateTimeUtil.getFormatOptions(dataType));
260+
}
261+
256262
/** Determines if a given character is `d/M/y` or `h/m/s`. */
257263
public static isDateOrTimeChar(char: string): boolean {
258264
return DATE_CHARS.indexOf(char) !== -1 || TIME_CHARS.indexOf(char) !== -1;

projects/igniteui-angular/src/lib/directives/date-time-editor/date-time-editor.directive.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,13 +158,13 @@ describe('IgxDateTimeEditor', () => {
158158
let change: SimpleChange = new SimpleChange('date', 'dateTime', false);
159159
let changes: SimpleChanges = { defaultFormatType: change };
160160
dateTimeEditor.ngOnChanges(changes);
161-
expect(dateTimeEditor.inputFormat.normalize('NFKC')).toEqual('MM/dd/yyyy, hh:mm:ss tt');
161+
expect(dateTimeEditor.inputFormat.normalize('NFKC')).toEqual('MM/dd/yyyy, hh:mm:ss a');
162162

163163
dateTimeEditor.defaultFormatType = 'time';
164164
change = new SimpleChange('dateTime', 'time', false);
165165
changes = { defaultFormatType: change };
166166
dateTimeEditor.ngOnChanges(changes);
167-
expect(dateTimeEditor.inputFormat.normalize('NFKC')).toEqual('hh:mm tt');
167+
expect(dateTimeEditor.inputFormat.normalize('NFKC')).toEqual('hh:mm a');
168168
});
169169
});
170170

projects/igniteui-angular/src/lib/directives/date-time-editor/date-time-editor.directive.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ export class IgxDateTimeEditorDirective extends IgxMaskDirective implements OnCh
140140
}
141141

142142
public get displayFormat(): string {
143-
return this._displayFormat || this._inputFormat || this._i18nFormatter.getLocaleDateTimeFormat(this.locale);
143+
return this._displayFormat || this._inputFormat || DateTimeUtil.getDefaultDisplayFormat(this.locale, this._i18nFormatter, this.defaultFormatType);
144144
}
145145

146146
/**

projects/igniteui-angular/src/lib/grids/grid/grid-filtering-ui.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -521,7 +521,7 @@ describe('IgxGrid - Filtering Row UI actions #grid', () => {
521521
dateTimeEditor = filterUIRow.query(By.directive(IgxDateTimeEditorDirective))
522522
.injector.get(IgxDateTimeEditorDirective);
523523
// since 'shortTime' is numeric, input format will include its numeric parts
524-
expect(dateTimeEditor.inputFormat.normalize('NFKC')).toMatch('hh:mm tt');
524+
expect(dateTimeEditor.inputFormat.normalize('NFKC')).toMatch('hh:mm a');
525525
expect(dateTimeEditor.displayFormat).toMatch('shortTime');
526526
}));
527527

projects/igniteui-angular/src/lib/time-picker/time-picker.component.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1557,7 +1557,7 @@ describe('IgxTimePicker', () => {
15571557
it('should set placeholder correctly', fakeAsync(() => {
15581558
// no inputFormat set - placeholder equals the default date time input format
15591559
let inputEl = fixture.nativeElement.querySelector(CSS_CLASS_INPUT);
1560-
expect(inputEl.placeholder.normalize('NFKC')).toEqual('hh:mm tt');
1560+
expect(inputEl.placeholder.normalize('NFKC')).toEqual('hh:mm aa');
15611561

15621562
// no placeholder - set to inputFormat, if it is set
15631563
// test with the different a,aa,.. ampm formats

0 commit comments

Comments
 (0)