1- import { Inject , Injectable , LOCALE_ID } from '@angular/core' ;
2- import * as dateFns_ from 'date-fns' ;
1+ import { Inject , Injectable } from '@angular/core' ;
2+ import * as dateFns from 'date-fns' ;
33import { Calendar , Day , Month } from './calendar.models' ;
44
5- export const dateFns = dateFns_ ;
6-
75@Injectable ( {
86 providedIn : 'root' ,
97} )
108export class FsCalendarService {
11- dayNamesDeVor : any ;
12- dayNamesDe : any ;
13-
9+ dayNames : string [ ] = this . getWeekDayNames ( ) ;
1410 dataSourceCustom : Day [ ] = [ ] ;
1511 daysAbsolute : Date [ ] = [ ] ;
1612
17- constructor ( @Inject ( LOCALE_ID ) private appLocale : string ) { }
13+ constructor ( @Inject ( 'FS_DATE_LOCALE' ) private appLocale : dateFns . Locale ) { }
1814
1915 /**
2016 * @param {String } mode calendar mode (monthly|annual)
@@ -65,7 +61,7 @@ export class FsCalendarService {
6561 }
6662 cal = {
6763 months : months ,
68- dayNames : this . dayNamesDeVor ,
64+ dayNames : this . dayNames ,
6965 year : year ,
7066 daysAbsolute : this . daysAbsolute ,
7167 } ;
@@ -145,7 +141,7 @@ export class FsCalendarService {
145141 break ;
146142 case 'placeholderDay' :
147143 newDay = {
148- dayNumber : dateFns . format ( date , 'd' ) ,
144+ dayNumber : dateFns . format ( date , 'd' , { locale : this . appLocale } ) ,
149145 date : date ,
150146 kw : dateFns . getWeek ( date , { weekStartsOn : 4 } ) ,
151147 type : 'placeholderDay' ,
@@ -163,7 +159,7 @@ export class FsCalendarService {
163159 }
164160 return {
165161 year : year ,
166- dayNames : [ ] ,
162+ dayNames : this . dayNames ,
167163 months : months ,
168164 daysAbsolute : this . daysAbsolute ,
169165 } ;
@@ -180,7 +176,7 @@ export class FsCalendarService {
180176 }
181177
182178 return {
183- name : dateFns . format ( days [ 0 ] . date , 'LLLL' ) ,
179+ name : dateFns . format ( days [ 0 ] . date , 'MMMM' , { locale : this . appLocale } ) ,
184180 year : year ,
185181 days : days ,
186182 render : [ [ ] ] ,
@@ -235,25 +231,44 @@ export class FsCalendarService {
235231 day . toolTip = toolTip ;
236232 day [ 'kw' ] = dateFns . getWeek ( dateToGenerate ) ;
237233 day . date = dateToGenerate ;
238- day . dayNumber = dateFns . format ( dateToGenerate , 'd' ) ;
234+ day . dayNumber = dateFns . format ( dateToGenerate , 'd' , {
235+ locale : this . appLocale ,
236+ } ) ;
239237 day [ 'isWeekendDay' ] = dateFns . isWeekend ( dateToGenerate ) ;
240238 } else {
241239 day = {
242240 kw : dateFns . getWeek ( dateToGenerate ) ,
243- dayNumber : dateFns . format ( dateToGenerate , 'd' ) ,
241+ dayNumber : dateFns . format ( dateToGenerate , 'd' , {
242+ locale : this . appLocale ,
243+ } ) ,
244244 date : dateToGenerate ,
245245 isWeekendDay : dateFns . isWeekend ( dateToGenerate ) ,
246246 } ;
247247 }
248248 } else {
249249 day = {
250250 kw : dateFns . getWeek ( dateToGenerate ) ,
251- dayNumber : dateFns . format ( dateToGenerate , 'd' ) ,
251+ dayNumber : dateFns . format ( dateToGenerate , 'd' , {
252+ locale : this . appLocale ,
253+ } ) ,
252254 date : dateToGenerate ,
253255 isWeekendDay : dateFns . isWeekend ( dateToGenerate ) ,
254256 } ;
255257 }
256258 this . daysAbsolute . push ( dateToGenerate ) ;
257259 return day ;
258260 }
261+
262+ getWeekDayNames ( ) : string [ ] {
263+ let now = new Date ( ) ;
264+ let arr = dateFns . eachDayOfInterval ( {
265+ start : dateFns . startOfWeek ( now , { weekStartsOn : 1 } ) ,
266+ end : dateFns . endOfWeek ( now , { weekStartsOn : 1 } ) ,
267+ } ) ;
268+ let arrOfDays : string [ ] = [ ] ;
269+ arr . map ( ( a ) =>
270+ arrOfDays . push ( dateFns . format ( a , 'EEEEEE' , { locale : this . appLocale } ) )
271+ ) ;
272+ return arrOfDays ;
273+ }
259274}
0 commit comments