Skip to content

Commit 68252a7

Browse files
committed
feat(calendar): make weekStart default value to depend on current locale
1 parent c1f63f8 commit 68252a7

File tree

7 files changed

+33
-2
lines changed

7 files changed

+33
-2
lines changed

projects/igniteui-angular/src/lib/calendar/calendar-base.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { IgxCalendarView } from './month-picker-base';
88
import { CurrentResourceStrings } from '../core/i18n/resources';
99
import { ICalendarResourceStrings } from '../core/i18n/calendar-resources';
1010
import { DateTimeUtil } from '../date-common/util/date-time.util';
11+
import { getLocaleFirstDayOfWeek } from "@angular/common";
1112

1213

1314
/**
@@ -258,6 +259,9 @@ export class IgxCalendarBaseDirective implements ControlValueAccessor {
258259
*/
259260
public set locale(value: string) {
260261
this._locale = value;
262+
if (!this.weekStart) {
263+
this.calendarModel.firstWeekDay = getLocaleFirstDayOfWeek(this._locale);
264+
}
261265
this.initFormatters();
262266
}
263267

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import { DateTimeUtil } from '../date-common/util/date-time.util';
3838
import { PickerHeaderOrientation as PickerHeaderOrientation } from '../date-common/types';
3939
import { IDatePickerValidationFailedEventArgs } from './date-picker.common';
4040
import { IgxPickerClearComponent, IgxPickerActionsDirective } from '../date-common/public_api';
41+
import { getLocaleFirstDayOfWeek } from "@angular/common";
4142

4243
let NEXT_ID = 0;
4344

@@ -73,7 +74,7 @@ export class IgxDatePickerComponent extends PickerBaseDirective implements Contr
7374
* ```
7475
*/
7576
@Input()
76-
public weekStart: WEEKDAYS | number = WEEKDAYS.SUNDAY;
77+
public weekStart: WEEKDAYS | number = getLocaleFirstDayOfWeek(this.locale);
7778

7879
/**
7980
* Gets/Sets whether the inactive dates will be hidden.
@@ -724,6 +725,11 @@ export class IgxDatePickerComponent extends PickerBaseDirective implements Contr
724725
/** @hidden @internal */
725726
public ngOnInit(): void {
726727
this._ngControl = this._injector.get<NgControl>(NgControl, null);
728+
729+
this.locale = this.locale || this._localeId;
730+
if (!this.weekStart) {
731+
this.weekStart = getLocaleFirstDayOfWeek(this.locale);
732+
}
727733
}
728734

729735
/** @hidden @internal */

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import {
3535
DateRange, IgxDateRangeEndComponent, IgxDateRangeInputsBaseComponent,
3636
IgxDateRangeSeparatorDirective, IgxDateRangeStartComponent
3737
} from './date-range-picker-inputs.common';
38+
import { getLocaleFirstDayOfWeek } from "@angular/common";
3839

3940
const SingleInputDatesConcatenationString = ' - ';
4041

@@ -110,7 +111,7 @@ export class IgxDateRangePickerComponent extends PickerBaseDirective
110111
* ```
111112
*/
112113
@Input()
113-
public weekStart = WEEKDAYS.SUNDAY;
114+
public weekStart: WEEKDAYS | number = WEEKDAYS.SUNDAY;
114115

115116
/**
116117
* Locale settings used for value formatting and calendar.
@@ -611,6 +612,11 @@ export class IgxDateRangePickerComponent extends PickerBaseDirective
611612
/** @hidden */
612613
public ngOnInit(): void {
613614
this._ngControl = this._injector.get<NgControl>(NgControl, null);
615+
616+
this.locale = this.locale || this._localeId;
617+
if (!this.weekStart) {
618+
this.weekStart = getLocaleFirstDayOfWeek(this.locale);
619+
}
614620
}
615621

616622
/** @hidden */

projects/igniteui-angular/src/lib/grids/columns/interfaces.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { ColumnType } from '../common/grid.interface';
2+
import { WEEKDAYS } from "../../calendar/calendar";
23

34

45
/**
@@ -42,4 +43,7 @@ export interface IColumnPipeArgs {
4243
* The value is of type string. By default is set to 'symbol'
4344
*/
4445
display?: string;
46+
47+
/** The first week day to be displayed in calendar when filtering or editing a date column */
48+
weekStart?: number | WEEKDAYS;
4549
}

projects/igniteui-angular/src/lib/grids/filtering/base/grid-filtering-row.component.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import { Subject } from 'rxjs';
3232
import { takeUntil } from 'rxjs/operators';
3333
import { ExpressionUI } from '../excel-style/common';
3434
import { ColumnType } from '../../common/grid.interface';
35+
import { getLocaleFirstDayOfWeek } from "@angular/common";
3536

3637
/**
3738
* @hidden
@@ -278,6 +279,10 @@ export class IgxGridFilteringRowComponent implements AfterViewInit, OnDestroy {
278279
}
279280
}
280281

282+
public get localeId(): number {
283+
return getLocaleFirstDayOfWeek(this.filteringService.grid.locale);
284+
}
285+
281286
/**
282287
* Event handler for keydown on the input group's prefix.
283288
*/

projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-date-expression.component.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
</igx-select>
1616

1717
<igx-date-picker #picker *ngIf="column.dataType === 'date'"
18+
[weekStart]="column.pipeArgs.weekStart ?? localeId"
1819
[(value)]="expressionUI.expression.searchVal"
1920
[locale]="grid.locale"
2021
[outlet]="grid.outlet"

projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-date-expression.component.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { DisplayDensity } from '../../../core/density';
44
import { IgxInputDirective } from '../../../directives/input/input.directive';
55
import { IgxDatePickerComponent } from '../../../date-picker/public_api';
66
import { IgxTimePickerComponent } from '../../../time-picker/time-picker.component';
7+
import { getLocaleFirstDayOfWeek } from "@angular/common";
78

89
/**
910
* @hidden
@@ -33,4 +34,8 @@ export class IgxExcelStyleDateExpressionComponent extends IgxExcelStyleDefaultEx
3334
public get inputTimePlaceholder(): string {
3435
return this.grid.resourceStrings['igx_grid_filter_row_time_placeholder'];
3536
}
37+
38+
public get localeId(): number {
39+
return getLocaleFirstDayOfWeek(this.grid.locale);
40+
}
3641
}

0 commit comments

Comments
 (0)