Skip to content

Commit 08c5423

Browse files
refactor(date-picker-util): move DEFAULT_INPUT_FORMAT to DatePickerUtil
- use DEFAULT_INPUT_FORMAT in date-time editor - update sample
1 parent eed97da commit 08c5423

File tree

5 files changed

+19
-26
lines changed

5 files changed

+19
-26
lines changed

projects/igniteui-angular/src/lib/date-picker/date-picker.utils.ts

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,13 @@ export const enum DateState {
1111
Invalid = 'invalid',
1212
}
1313

14-
/**
15-
* @hidden
16-
*/
14+
/** @hidden */
1715
const enum FormatDesc {
1816
Numeric = 'numeric',
1917
TwoDigits = '2-digit'
2018
}
2119

22-
/**
23-
* @hidden
24-
*/
20+
/** @hidden */
2521
const enum DateChars {
2622
YearChar = 'y',
2723
MonthChar = 'M',
@@ -31,19 +27,18 @@ const enum DateChars {
3127
const DATE_CHARS = ['h', 'H', 'm', 's', 'S', 't', 'T'];
3228
const TIME_CHARS = ['d', 'D', 'M', 'y', 'Y'];
3329

34-
/**
35-
* @hidden
36-
*/
30+
/** @hidden */
3731
const enum DateParts {
3832
Day = 'day',
3933
Month = 'month',
4034
Year = 'year'
4135
}
4236

43-
/**
44-
* @hidden
45-
*/
37+
38+
/** @hidden */
4639
export abstract class DatePickerUtil {
40+
public static readonly DEFAULT_INPUT_FORMAT = 'MM/dd/yyyy';
41+
// TODO: this is the def mask for the date-picker, should remove it during refactoring
4742
private static readonly SHORT_DATE_MASK = 'MM/dd/yy';
4843
private static readonly SEPARATOR = 'literal';
4944
private static readonly NUMBER_OF_MONTHS = 12;
@@ -262,12 +257,12 @@ export abstract class DatePickerUtil {
262257

263258
let _value = new Date(value.getTime());
264259
let _maxValue = new Date(maxValue.getTime());
265-
if (includeTime) {
260+
if (includeDate) {
266261
_value.setHours(0, 0, 0, 0);
267262
_maxValue.setHours(0, 0, 0, 0);
268263
return _value.getTime() > maxValue.getTime();
269264
}
270-
if (includeDate) {
265+
if (includeTime) {
271266
_value = new Date(0, 0, 0, _value.getHours(), _value.getMinutes(), _value.getSeconds());
272267
_maxValue = new Date(0, 0, 0, _maxValue.getHours(), _maxValue.getMinutes(), _maxValue.getSeconds());
273268
return _value.getTime() > _maxValue.getTime();
@@ -288,12 +283,12 @@ export abstract class DatePickerUtil {
288283

289284
let _value = new Date(value.getTime());
290285
let _minValue = new Date(minValue.getTime());
291-
if (includeTime) {
286+
if (includeDate) {
292287
_value.setHours(0, 0, 0, 0);
293288
_minValue.setHours(0, 0, 0, 0);
294289
return _value.getTime() < _minValue.getTime();
295290
}
296-
if (includeDate) {
291+
if (includeTime) {
297292
_value = new Date(0, 0, 0, _value.getHours(), _value.getMinutes(), _value.getSeconds());
298293
_minValue = new Date(0, 0, 0, _minValue.getHours(), _minValue.getMinutes(), _minValue.getSeconds());
299294
return _value.getTime() > _minValue.getTime();

projects/igniteui-angular/src/lib/date-range-picker/date-range-picker.component.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,6 @@ import { CurrentResourceStrings } from '../core/i18n/resources';
4949
import { DisplayDensityBase, DisplayDensityToken, IDisplayDensityOptions } from '../core/density';
5050
import { DatePickerUtil } from '../date-picker/date-picker.utils';
5151
import { DateRangeType } from '../core/dates';
52-
import { TreeGridFilteringStrategy } from '../grids/tree-grid/tree-grid.filtering.pipe';
53-
54-
const DEFAULT_INPUT_FORMAT = 'MM/dd/yyyy';
5552

5653
/**
5754
* Provides the ability to select a range of dates from a calendar UI or editable inputs.
@@ -385,9 +382,9 @@ export class IgxDateRangePickerComponent extends DisplayDensityBase
385382
// TODO: use displayFormat - see how shortDate, longDate can be defined
386383
return this.inputFormat
387384
? `${this.inputFormat} - ${this.inputFormat}`
388-
: `${DEFAULT_INPUT_FORMAT} - ${DEFAULT_INPUT_FORMAT}`;
385+
: `${DatePickerUtil.DEFAULT_INPUT_FORMAT} - ${DatePickerUtil.DEFAULT_INPUT_FORMAT}`;
389386
} else {
390-
return this.inputFormat || DEFAULT_INPUT_FORMAT;
387+
return this.inputFormat || DatePickerUtil.DEFAULT_INPUT_FORMAT;
391388
}
392389
}
393390

@@ -632,7 +629,7 @@ export class IgxDateRangePickerComponent extends DisplayDensityBase
632629
/** @hidden @internal */
633630
public ngOnChanges(changes: SimpleChanges): void {
634631
if (changes['locale']) {
635-
this.inputFormat = DatePickerUtil.getDefaultInputFormat(this.locale || 'en') || DEFAULT_INPUT_FORMAT;
632+
this.inputFormat = DatePickerUtil.getDefaultInputFormat(this.locale || 'en') || DatePickerUtil.DEFAULT_INPUT_FORMAT;
636633
}
637634
}
638635

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,8 @@ export class IgxDateTimeEditorDirective extends IgxMaskDirective implements OnCh
141141
if (value) {
142142
this._format = value;
143143
}
144-
const mask = this.inputFormat?.replace(new RegExp(/(?=[^t])[\w]/, 'g'), '0');
144+
const mask = (this.inputFormat || DatePickerUtil.DEFAULT_INPUT_FORMAT)
145+
.replace(new RegExp(/(?=[^t])[\w]/, 'g'), '0');
145146
this.mask = mask.indexOf('tt') !== -1 ? mask.replace(new RegExp('tt', 'g'), 'LL') : mask;
146147
}
147148

src/app/date-time-editor/date-time-editor.sample.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ <h5>DateTime editor in a form </h5>
1515
<form>
1616
<igx-input-group [supressInputAutofocus]="true" style="max-width: 300px;">
1717
<input #dateEditor="igxDateTimeEditor" type="text" [(ngModel)]="date" #formControl="ngModel" name="form"
18-
igxInput (valueChanged)="onValueChanged($event)" (validationFailed)="onValidationFailed($event)"
19-
[igxDateTimeEditor]="'dd/MM/yyyy'" [minValue]="minDate" [maxValue]="maxDate" required />
18+
igxInput (valueChange)="onValueChanged($event)" (validationFailed)="onValidationFailed($event)"
19+
[igxDateTimeEditor]="'dd/MM/yyyy hh:mm'" [minValue]="minDate" [maxValue]="maxDate" required />
2020
<igx-suffix>
2121
<button igxRipple igxRippleCentered="true" igxButton="icon" (click)="dateEditor.increment()">
2222
<igx-icon>expand_less</igx-icon>

src/app/date-time-editor/date-time-editor.sample.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export class DateTimeEditorSampleComponent {
1111
public date1 = new Date(2021, 3, 24);
1212
public format = 'dd/M/yyyy';
1313

14-
public minDate = new Date(2020, 2, 20);
14+
public minDate = new Date(2020, 2, 20, 11, 15);
1515
public maxDate = new Date(2020, 2, 25);
1616

1717
public onValueChanged(event: IgxDateTimeEditorEventArgs) {

0 commit comments

Comments
 (0)