@dhis2/analytics 24.7.0 → 24.9.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.parsePeriodCode = exports.getYearOffsetFromNow = exports.getFixedPeriodsOptionsById = exports.getFixedPeriodsOptions = void 0;
7
7
 
8
+ var _multiCalendarDates = require("@dhis2/multi-calendar-dates");
9
+
8
10
  var _index = _interopRequireDefault(require("../../../locales/index.js"));
9
11
 
10
12
  var _index2 = require("./index.js");
@@ -49,452 +51,180 @@ const PERIOD_TYPE_REGEX = {
49
51
 
50
52
  };
51
53
 
52
- const getMonthName = key => {
53
- const monthNames = [_index.default.t('January'), _index.default.t('February'), _index.default.t('March'), _index.default.t('April'), _index.default.t('May'), _index.default.t('June'), _index.default.t('July'), _index.default.t('August'), _index.default.t('September'), _index.default.t('October'), _index.default.t('November'), _index.default.t('December')];
54
- return monthNames[key];
54
+ const getPeriods = _ref => {
55
+ let {
56
+ periodType,
57
+ config,
58
+ fnFilter,
59
+ periodSettings = {}
60
+ } = _ref;
61
+ const offset = parseInt(config.offset, 10);
62
+ const isFilter = config.filterFuturePeriods;
63
+ const isReverse = periodType.match(/^FY|YEARLY/) ? true : config.reversePeriods;
64
+ const {
65
+ calendar = 'gregory',
66
+ locale = 'en'
67
+ } = periodSettings;
68
+ const now = (0, _multiCalendarDates.getNowInCalendar)(calendar);
69
+ const year = (now.eraYear || now.year) + offset;
70
+ const params = {
71
+ periodType,
72
+ year,
73
+ calendar,
74
+ locale,
75
+ startingDay: config.startDay
76
+ };
77
+ let periods = (0, _multiCalendarDates.generateFixedPeriods)(params);
78
+ periods = isFilter ? fnFilter(periods) : periods;
79
+ periods = !isReverse ? periods : periods.reverse();
80
+ return periods;
55
81
  };
56
82
 
57
- const getDailyPeriodType = (formatYyyyMmDd, fnFilter) => {
83
+ const getDailyPeriodType = (fnFilter, periodSettings) => {
58
84
  return config => {
59
- let periods = [];
60
- const offset = parseInt(config.offset, 10);
61
- const isFilter = config.filterFuturePeriods;
62
- const isReverse = config.reversePeriods;
63
- const year = new Date(Date.now()).getFullYear() + offset;
64
- const date = new Date("01 Jan ".concat(year));
65
-
66
- while (date.getFullYear() === year) {
67
- const period = {};
68
- period.startDate = formatYyyyMmDd(date);
69
- period.endDate = period.startDate;
70
- period.name = period.startDate;
71
- period.iso = period.startDate.replace(/-/g, '');
72
- period.id = period.iso;
73
- periods.push(period);
74
- date.setDate(date.getDate() + 1);
75
- }
76
-
77
- periods = isFilter ? fnFilter(periods) : periods;
78
- periods = isReverse ? periods.reverse() : periods;
79
- return periods;
85
+ return getPeriods({
86
+ periodType: 'DAILY',
87
+ config,
88
+ fnFilter,
89
+ periodSettings
90
+ });
80
91
  };
81
92
  };
82
93
 
83
- const getWeeklyPeriodType = (formatYyyyMmDd, weekObj, fnFilter) => {
84
- // Calculate the first date of an EPI year base on ISO standard ( first week always contains 4th Jan )
85
- const getEpiWeekStartDay = (year, startDayOfWeek) => {
86
- const jan4 = new Date(year, 0, 4);
87
- const jan4DayOfWeek = jan4.getDay();
88
- const startDate = jan4;
89
- const dayDiff = jan4DayOfWeek - startDayOfWeek;
90
-
91
- if (dayDiff > 0) {
92
- startDate.setDate(jan4.getDate() - dayDiff);
93
- } else if (dayDiff < 0) {
94
- startDate.setDate(jan4.getDate() - dayDiff);
95
- startDate.setDate(startDate.getDate() - 7);
96
- }
97
-
98
- return startDate;
99
- };
100
-
94
+ const getWeeklyPeriodType = (weekObj, fnFilter, periodSettings) => {
101
95
  return config => {
102
- let periods = [];
103
- const offset = parseInt(config.offset, 10);
104
- const isFilter = config.filterFuturePeriods;
105
- const isReverse = config.reversePeriods;
106
- const year = new Date(Date.now()).getFullYear() + offset;
107
- const date = getEpiWeekStartDay(year, weekObj.startDay);
108
- let week = 1;
109
-
110
- while (date.getFullYear() <= year) {
111
- const period = {};
112
- period.startDate = formatYyyyMmDd(date);
113
- period.iso = "".concat(year).concat(weekObj.shortName, "W").concat(week);
114
- period.id = period.iso;
115
- date.setDate(date.getDate() + 6);
116
- period.endDate = formatYyyyMmDd(date);
117
- const weekNumber = week;
118
- period.name = "".concat(_index.default.t('Week {{weekNumber}}', {
119
- weekNumber
120
- }), " - ").concat(period.startDate, " - ").concat(period.endDate); // if end date is Jan 4th or later, week belongs to next year
121
-
122
- if (date.getFullYear() > year && date.getDate() >= 4) {
123
- break;
124
- }
125
-
126
- periods.push(period);
127
- date.setDate(date.getDate() + 1);
128
- week += 1;
129
- }
130
-
131
- periods = isFilter ? fnFilter(periods) : periods;
132
- periods = isReverse ? periods.reverse() : periods;
133
- return periods;
96
+ return getPeriods({
97
+ periodType: 'WEEKLY',
98
+ config: { ...config,
99
+ startDay: weekObj.startDay
100
+ },
101
+ fnFilter,
102
+ periodSettings
103
+ });
134
104
  };
135
105
  };
136
106
 
137
- const getBiWeeklyPeriodType = (formatYyyyMmDd, fnFilter) => {
107
+ const getBiWeeklyPeriodType = (fnFilter, periodSettings) => {
138
108
  return config => {
139
- let periods = [];
140
- const offset = parseInt(config.offset, 10);
141
- const isFilter = config.filterFuturePeriods;
142
- const isReverse = config.reversePeriods;
143
- const year = new Date(Date.now()).getFullYear() + offset;
144
- const date = new Date("01 Jan ".concat(year));
145
- const day = date.getDay();
146
- let biWeek = 1;
147
-
148
- if (day <= 4) {
149
- date.setDate(date.getDate() - (day - 1));
150
- } else {
151
- date.setDate(date.getDate() + (8 - day));
152
- }
153
-
154
- while (date.getFullYear() <= year) {
155
- const period = {};
156
- period.iso = "".concat(year, "BiW").concat(biWeek);
157
- period.id = period.iso;
158
- period.startDate = formatYyyyMmDd(date);
159
- date.setDate(date.getDate() + 13);
160
- period.endDate = formatYyyyMmDd(date);
161
- const biWeekNumber = biWeek;
162
- period.name = "".concat(_index.default.t('Bi-Week {{biWeekNumber}}', {
163
- biWeekNumber
164
- }), " - ").concat(period.startDate, " - ").concat(period.endDate); // if end date is Jan 4th or later, biweek belongs to next year
165
-
166
- if (date.getFullYear() > year && date.getDate() >= 4) {
167
- break;
168
- }
169
-
170
- periods.push(period);
171
- date.setDate(date.getDate() + 1);
172
- biWeek += 1;
173
- }
174
-
175
- periods = isFilter ? fnFilter(periods) : periods;
176
- periods = isReverse ? periods.reverse() : periods;
177
- return periods;
109
+ return getPeriods({
110
+ periodType: 'BIWEEKLY',
111
+ config,
112
+ fnFilter,
113
+ periodSettings
114
+ });
178
115
  };
179
116
  };
180
117
 
181
- const getMonthlyPeriodType = (formatYyyyMmDd, fnFilter) => {
182
- const formatIso = date => {
183
- const y = date.getFullYear();
184
- let m = String(date.getMonth() + 1);
185
- m = m.length < 2 ? "0".concat(m) : m;
186
- return y + m;
187
- };
188
-
118
+ const getMonthlyPeriodType = (fnFilter, periodSettings) => {
189
119
  return config => {
190
- let periods = [];
191
- const offset = parseInt(config.offset, 10);
192
- const isFilter = config.filterFuturePeriods;
193
- const isReverse = config.reversePeriods;
194
- const year = new Date(Date.now()).getFullYear() + offset;
195
- const date = new Date("31 Dec ".concat(year));
196
-
197
- while (date.getFullYear() === year) {
198
- const period = {};
199
- period.endDate = formatYyyyMmDd(date);
200
- date.setDate(1);
201
- period.startDate = formatYyyyMmDd(date);
202
- const monthName = getMonthName(date.getMonth());
203
- period.name = "".concat(monthName, " ").concat(year);
204
- period.iso = formatIso(date);
205
- period.id = period.iso;
206
- periods.push(period);
207
- date.setDate(0);
208
- }
209
-
210
- periods = isFilter ? fnFilter(periods) : periods;
211
- periods = isReverse ? periods : periods.reverse(); // Months are collected backwards. If isReverse is true, then do nothing. Else reverse to correct order and return.
212
-
213
- return periods;
120
+ return getPeriods({
121
+ periodType: 'MONTHLY',
122
+ config,
123
+ fnFilter,
124
+ periodSettings
125
+ });
214
126
  };
215
127
  };
216
128
 
217
- const getBiMonthlyPeriodType = (formatYyyyMmDd, fnFilter) => {
129
+ const getBiMonthlyPeriodType = (fnFilter, periodSettings) => {
218
130
  return config => {
219
- let periods = [];
220
- const offset = parseInt(config.offset, 10);
221
- const isFilter = config.filterFuturePeriods;
222
- const isReverse = config.reversePeriods;
223
- const year = new Date(Date.now()).getFullYear() + offset;
224
- const date = new Date("31 Dec ".concat(year));
225
- let index = 6;
226
-
227
- while (date.getFullYear() === year) {
228
- const period = {};
229
- period.endDate = formatYyyyMmDd(date);
230
- date.setDate(0);
231
- date.setDate(1);
232
- period.startDate = formatYyyyMmDd(date);
233
- const monthStart = getMonthName(date.getMonth());
234
- const monthEnd = getMonthName(date.getMonth() + 1);
235
- const fullYear = date.getFullYear();
236
- period.name = "".concat(monthStart, " - ").concat(monthEnd, " ").concat(fullYear);
237
- period.iso = "".concat(year, "0").concat(index, "B");
238
- period.id = period.iso;
239
- periods.push(period);
240
- date.setDate(0);
241
- index--;
242
- }
243
-
244
- periods = isFilter ? fnFilter(periods) : periods;
245
- periods = isReverse ? periods : periods.reverse(); // Bi-months are collected backwards. If isReverse is true, then do nothing. Else reverse to correct order and return.
246
-
247
- return periods;
131
+ return getPeriods({
132
+ periodType: 'BIMONTHLY',
133
+ config,
134
+ fnFilter,
135
+ periodSettings
136
+ });
248
137
  };
249
138
  };
250
139
 
251
- const getQuarterlyPeriodType = (formatYyyyMmDd, fnFilter) => {
140
+ const getQuarterlyPeriodType = (fnFilter, periodSettings) => {
252
141
  return config => {
253
- let periods = [];
254
- const offset = parseInt(config.offset, 10);
255
- const isFilter = config.filterFuturePeriods;
256
- const isReverse = config.reversePeriods;
257
- const year = new Date(Date.now()).getFullYear() + offset;
258
- const date = new Date("31 Dec ".concat(year));
259
- let quarter = 4;
260
-
261
- while (date.getFullYear() === year) {
262
- const period = {};
263
- period.endDate = formatYyyyMmDd(date);
264
- date.setDate(0);
265
- date.setDate(0);
266
- date.setDate(1);
267
- period.startDate = formatYyyyMmDd(date);
268
- const monthStart = getMonthName(date.getMonth());
269
- const monthEnd = getMonthName(date.getMonth() + 2);
270
- const fullYear = date.getFullYear();
271
- period.name = "".concat(monthStart, " - ").concat(monthEnd, " ").concat(fullYear);
272
- period.iso = "".concat(year, "Q").concat(quarter);
273
- period.id = period.iso;
274
- periods.push(period);
275
- date.setDate(0);
276
- quarter -= 1;
277
- }
278
-
279
- periods = isFilter ? fnFilter(periods) : periods;
280
- periods = isReverse ? periods : periods.reverse(); // Quarters are collected backwards. If isReverse is true, then do nothing. Else reverse to correct order and return.
281
-
282
- return periods;
142
+ return getPeriods({
143
+ periodType: 'QUARTERLY',
144
+ config,
145
+ fnFilter,
146
+ periodSettings
147
+ });
283
148
  };
284
149
  };
285
150
 
286
- const getSixMonthlyPeriodType = fnFilter => {
151
+ const getSixMonthlyPeriodType = (fnFilter, periodSettings) => {
287
152
  return config => {
288
- let periods = [];
289
- const offset = parseInt(config.offset, 10);
290
- const isFilter = config.filterFuturePeriods;
291
- const isReverse = config.reversePeriods;
292
- const year = new Date(Date.now()).getFullYear() + offset;
293
- let period = {};
294
- period.startDate = "".concat(year, "-01-01");
295
- period.endDate = "".concat(year, "-06-30");
296
- period.name = "".concat(getMonthName(0), " - ").concat(getMonthName(5), " ").concat(year);
297
- period.iso = "".concat(year, "S1");
298
- period.id = period.iso;
299
- periods.push(period);
300
- period = {};
301
- period.startDate = "".concat(year, "-07-01");
302
- period.endDate = "".concat(year, "-12-31");
303
- period.name = "".concat(getMonthName(6), " - ").concat(getMonthName(11), " ").concat(year);
304
- period.iso = "".concat(year, "S2");
305
- period.id = period.iso;
306
- periods.push(period);
307
- periods = isFilter ? fnFilter(periods) : periods;
308
- periods = isReverse ? periods.reverse() : periods;
309
- return periods;
153
+ return getPeriods({
154
+ periodType: 'SIXMONTHLY',
155
+ config,
156
+ fnFilter,
157
+ periodSettings
158
+ });
310
159
  };
311
160
  };
312
161
 
313
- const getSixMonthlyAprilPeriodType = fnFilter => {
162
+ const getSixMonthlyAprilPeriodType = (fnFilter, periodSettings) => {
314
163
  return config => {
315
- let periods = [];
316
- const offset = parseInt(config.offset, 10);
317
- const isFilter = config.filterFuturePeriods;
318
- const isReverse = config.reversePeriods;
319
- const year = new Date(Date.now()).getFullYear() + offset;
320
- let period = {};
321
- period.startDate = "".concat(year, "-04-01");
322
- period.endDate = "".concat(year, "-09-30");
323
- period.name = "".concat(getMonthName(3), " - ").concat(getMonthName(8), " ").concat(year);
324
- period.iso = "".concat(year, "AprilS1");
325
- period.id = period.iso;
326
- periods.push(period);
327
- period = {};
328
- period.startDate = "".concat(year, "-10-01");
329
- period.endDate = "".concat(year + 1, "-03-31");
330
- period.name = "".concat(getMonthName(9), " ").concat(year, " - ").concat(getMonthName(2), " ").concat(year + 1);
331
- period.iso = "".concat(year, "AprilS2");
332
- period.id = period.iso;
333
- periods.push(period);
334
- periods = isFilter ? fnFilter(periods) : periods;
335
- periods = isReverse ? periods.reverse() : periods;
336
- return periods;
164
+ return getPeriods({
165
+ periodType: 'SIXMONTHLYAPR',
166
+ config,
167
+ fnFilter,
168
+ periodSettings
169
+ });
337
170
  };
338
171
  };
339
172
 
340
- const getYearlyPeriodType = (formatYyyyMmDd, fnFilter) => {
173
+ const getYearlyPeriodType = (fnFilter, periodSettings) => {
341
174
  return config => {
342
- let periods = [];
343
- const offset = parseInt(config.offset, 10);
344
- const isFilter = config.filterFuturePeriods;
345
- const isReverse = config.reversePeriods;
346
- const year = new Date(Date.now()).getFullYear() + offset;
347
- const date = new Date("31 Dec ".concat(year));
348
-
349
- while (year - date.getFullYear() < 10) {
350
- const period = {};
351
- period.endDate = formatYyyyMmDd(date);
352
- date.setMonth(0, 1);
353
- period.startDate = formatYyyyMmDd(date);
354
- const dateString = date.getFullYear().toString();
355
- period.name = dateString;
356
- period.iso = date.getFullYear().toString();
357
- period.id = period.iso.toString();
358
- periods.push(period);
359
- date.setDate(0);
360
- }
361
-
362
- periods = isFilter ? fnFilter(periods) : periods;
363
- periods = isReverse ? periods : periods.reverse(); // Years are collected backwards. If isReverse is true, then do nothing. Else reverse to correct order and return.
364
-
365
- return periods;
175
+ return getPeriods({
176
+ periodType: 'YEARLY',
177
+ config,
178
+ fnFilter,
179
+ periodSettings
180
+ });
366
181
  };
367
182
  };
368
183
 
369
- const getFinancialOctoberPeriodType = (formatYyyyMmDd, fnFilter) => {
184
+ const getFinancialOctoberPeriodType = (fnFilter, periodSettings) => {
370
185
  return config => {
371
- let periods = [];
372
- const offset = parseInt(config.offset, 10);
373
- const isFilter = config.filterFuturePeriods;
374
- const isReverse = config.reversePeriods;
375
- const year = new Date(Date.now()).getFullYear() + offset;
376
- const date = new Date("30 Sep ".concat(year + 1));
377
-
378
- for (let i = 0; i < 10; i++) {
379
- const period = {};
380
- period.endDate = formatYyyyMmDd(date);
381
- date.setYear(date.getFullYear() - 1);
382
- date.setDate(date.getDate() + 1);
383
- period.startDate = formatYyyyMmDd(date);
384
- const yearStart = date.getFullYear();
385
- const yearEnd = date.getFullYear() + 1;
386
- period.name = "".concat(getMonthName(9), " ").concat(yearStart, " - ").concat(getMonthName(8), " ").concat(yearEnd);
387
- period.id = "".concat(date.getFullYear(), "Oct");
388
- periods.push(period);
389
- date.setDate(date.getDate() - 1);
390
- }
391
-
392
- periods = isFilter ? fnFilter(periods) : periods;
393
- periods = isReverse ? periods : periods.reverse(); // FinancialOctober periods are collected backwards. If isReverse is true, then do nothing. Else reverse to correct order and return.
394
-
395
- return periods;
186
+ return getPeriods({
187
+ periodType: 'FYOCT',
188
+ config,
189
+ fnFilter,
190
+ periodSettings
191
+ });
396
192
  };
397
193
  };
398
194
 
399
- const getFinancialNovemberPeriodType = (formatYyyyMmDd, fnFilter) => {
195
+ const getFinancialNovemberPeriodType = (fnFilter, periodSettings) => {
400
196
  return config => {
401
- let periods = [];
402
- const offset = parseInt(config.offset, 10);
403
- const isFilter = config.filterFuturePeriods;
404
- const isReverse = config.reversePeriods;
405
- const year = new Date(Date.now()).getFullYear() + offset;
406
- const date = new Date("31 Oct ".concat(year + 1));
407
-
408
- for (let i = 0; i < 10; i++) {
409
- const period = {};
410
- period.endDate = formatYyyyMmDd(date);
411
- date.setYear(date.getFullYear() - 1);
412
- date.setDate(date.getDate() + 1);
413
- period.startDate = formatYyyyMmDd(date);
414
- const yearStart = date.getFullYear();
415
- const yearEnd = date.getFullYear() + 1;
416
- period.name = "".concat(getMonthName(10), " ").concat(yearStart, " - ").concat(getMonthName(9), " ").concat(yearEnd);
417
- period.id = "".concat(date.getFullYear(), "Nov");
418
- periods.push(period);
419
- date.setDate(date.getDate() - 1);
420
- }
421
-
422
- periods = isFilter ? fnFilter(periods) : periods;
423
- periods = isReverse ? periods : periods.reverse(); // FinancialNovember periods are collected backwards. If isReverse is true, then do nothing. Else reverse to correct order and return.
424
-
425
- return periods;
197
+ return getPeriods({
198
+ periodType: 'FYNOV',
199
+ config,
200
+ fnFilter,
201
+ periodSettings
202
+ });
426
203
  };
427
204
  };
428
205
 
429
- const getFinancialJulyPeriodType = (formatYyyyMmDd, fnFilter) => {
206
+ const getFinancialJulyPeriodType = (fnFilter, periodSettings) => {
430
207
  return config => {
431
- let periods = [];
432
- const offset = parseInt(config.offset, 10);
433
- const isFilter = config.filterFuturePeriods;
434
- const isReverse = config.reversePeriods;
435
- const year = new Date(Date.now()).getFullYear() + offset;
436
- const date = new Date("30 Jun ".concat(year + 1));
437
-
438
- for (let i = 0; i < 10; i++) {
439
- const period = {};
440
- period.endDate = formatYyyyMmDd(date);
441
- date.setYear(date.getFullYear() - 1);
442
- date.setDate(date.getDate() + 1);
443
- period.startDate = formatYyyyMmDd(date);
444
- const yearStart = date.getFullYear();
445
- const yearEnd = date.getFullYear() + 1;
446
- period.name = "".concat(getMonthName(6), " ").concat(yearStart, " - ").concat(getMonthName(5), " ").concat(yearEnd);
447
- period.id = "".concat(date.getFullYear(), "July");
448
- periods.push(period);
449
- date.setDate(date.getDate() - 1);
450
- }
451
-
452
- periods = isFilter ? fnFilter(periods) : periods;
453
- periods = isReverse ? periods : periods.reverse(); // FinancialJuly periods are collected backwards. If isReverse is true, then do nothing. Else reverse to correct order and return.
454
-
455
- return periods;
208
+ return getPeriods({
209
+ periodType: 'FYJUL',
210
+ config,
211
+ fnFilter,
212
+ periodSettings
213
+ });
456
214
  };
457
215
  };
458
216
 
459
- const getFinancialAprilPeriodType = (formatYyyyMmDd, fnFilter) => {
217
+ const getFinancialAprilPeriodType = (fnFilter, periodSettings) => {
460
218
  return config => {
461
- let periods = [];
462
- const offset = parseInt(config.offset, 10);
463
- const isFilter = config.filterFuturePeriods;
464
- const isReverse = config.reversePeriods;
465
- const year = new Date(Date.now()).getFullYear() + offset;
466
- const date = new Date("31 Mar ".concat(year + 1));
467
-
468
- for (let i = 0; i < 10; i++) {
469
- const period = {};
470
- period.endDate = formatYyyyMmDd(date);
471
- date.setYear(date.getFullYear() - 1);
472
- date.setDate(date.getDate() + 1);
473
- period.startDate = formatYyyyMmDd(date);
474
- const yearStart = date.getFullYear();
475
- const yearEnd = date.getFullYear() + 1;
476
- period.name = "".concat(getMonthName(3), " ").concat(yearStart, " - ").concat(getMonthName(2), " ").concat(yearEnd);
477
- period.id = "".concat(date.getFullYear(), "April");
478
- periods.push(period);
479
- date.setDate(date.getDate() - 1);
480
- }
481
-
482
- periods = isFilter ? fnFilter(periods) : periods;
483
- periods = isReverse ? periods : periods.reverse(); // FinancialApril periods are collected backwards. If isReverse is true, then do nothing. Else reverse to correct order and return.
484
-
485
- return periods;
219
+ return getPeriods({
220
+ periodType: 'FYAPR',
221
+ config,
222
+ fnFilter,
223
+ periodSettings
224
+ });
486
225
  };
487
226
  };
488
227
 
489
- const formatYyyyMmDd = date => {
490
- const y = date.getFullYear();
491
- let m = String(date.getMonth() + 1);
492
- let d = String(date.getDate());
493
- m = m.length < 2 ? "0".concat(m) : m;
494
- d = d.length < 2 ? "0".concat(d) : d;
495
- return "".concat(y, "-").concat(m, "-").concat(d);
496
- };
497
-
498
228
  const filterFuturePeriods = periods => {
499
229
  const array = [];
500
230
  const now = new Date(Date.now());
@@ -508,92 +238,91 @@ const filterFuturePeriods = periods => {
508
238
  return array;
509
239
  };
510
240
 
511
- const getOptions = () => [{
512
- id: _index2.DAILY,
513
- getPeriods: getDailyPeriodType(formatYyyyMmDd, filterFuturePeriods),
514
- name: _index.default.t('Daily')
515
- }, {
516
- id: _index2.WEEKLY,
517
- getPeriods: getWeeklyPeriodType(formatYyyyMmDd, {
518
- shortName: '',
519
- startDay: 1
520
- }, filterFuturePeriods),
521
- name: _index.default.t('Weekly')
522
- }, {
523
- id: _index2.WEEKLYWED,
524
- getPeriods: getWeeklyPeriodType(formatYyyyMmDd, {
525
- shortName: 'Wed',
526
- startDay: 3
527
- }, filterFuturePeriods),
528
- name: _index.default.t('Weekly (Start Wednesday)')
529
- }, {
530
- id: _index2.WEEKLYTHU,
531
- getPeriods: getWeeklyPeriodType(formatYyyyMmDd, {
532
- shortName: 'Thu',
533
- startDay: 4
534
- }, filterFuturePeriods),
535
- name: _index.default.t('Weekly (Start Thursday)')
536
- }, {
537
- id: _index2.WEEKLYSAT,
538
- getPeriods: getWeeklyPeriodType(formatYyyyMmDd, {
539
- shortName: 'Sat',
540
- startDay: 6
541
- }, filterFuturePeriods),
542
- name: _index.default.t('Weekly (Start Saturday)')
543
- }, {
544
- id: _index2.WEEKLYSUN,
545
- getPeriods: getWeeklyPeriodType(formatYyyyMmDd, {
546
- shortName: 'Sun',
547
- startDay: 7
548
- }, filterFuturePeriods),
549
- name: _index.default.t('Weekly (Start Sunday)')
550
- }, {
551
- id: _index2.BIWEEKLY,
552
- getPeriods: getBiWeeklyPeriodType(formatYyyyMmDd, filterFuturePeriods),
553
- name: _index.default.t('Bi-weekly')
554
- }, {
555
- id: _index2.MONTHLY,
556
- getPeriods: getMonthlyPeriodType(formatYyyyMmDd, filterFuturePeriods),
557
- name: _index.default.t('Monthly')
558
- }, {
559
- id: _index2.BIMONTHLY,
560
- getPeriods: getBiMonthlyPeriodType(formatYyyyMmDd, filterFuturePeriods),
561
- name: _index.default.t('Bi-monthly')
562
- }, {
563
- id: _index2.QUARTERLY,
564
- getPeriods: getQuarterlyPeriodType(formatYyyyMmDd, filterFuturePeriods),
565
- name: _index.default.t('Quarterly')
566
- }, {
567
- id: _index2.SIXMONTHLY,
568
- getPeriods: getSixMonthlyPeriodType(filterFuturePeriods),
569
- name: _index.default.t('Six-monthly')
570
- }, {
571
- id: _index2.SIXMONTHLYAPR,
572
- getPeriods: getSixMonthlyAprilPeriodType(filterFuturePeriods),
573
- name: _index.default.t('Six-monthly April')
574
- }, {
575
- id: _index2.YEARLY,
576
- getPeriods: getYearlyPeriodType(formatYyyyMmDd, filterFuturePeriods),
577
- name: _index.default.t('Yearly')
578
- }, {
579
- id: _index2.FYNOV,
580
- getPeriods: getFinancialNovemberPeriodType(formatYyyyMmDd, filterFuturePeriods),
581
- name: _index.default.t('Financial year (Start November)')
582
- }, {
583
- id: _index2.FYOCT,
584
- getPeriods: getFinancialOctoberPeriodType(formatYyyyMmDd, filterFuturePeriods),
585
- name: _index.default.t('Financial year (Start October)')
586
- }, {
587
- id: _index2.FYJUL,
588
- getPeriods: getFinancialJulyPeriodType(formatYyyyMmDd, filterFuturePeriods),
589
- name: _index.default.t('Financial year (Start July)')
590
- }, {
591
- id: _index2.FYAPR,
592
- getPeriods: getFinancialAprilPeriodType(formatYyyyMmDd, filterFuturePeriods),
593
- name: _index.default.t('Financial year (Start April)')
594
- }];
595
-
596
- const getFixedPeriodsOptionsById = id => getOptions().find(option => option.id === id);
241
+ const getOptions = periodSettings => {
242
+ return [{
243
+ id: _index2.DAILY,
244
+ getPeriods: getDailyPeriodType(filterFuturePeriods, periodSettings),
245
+ name: _index.default.t('Daily')
246
+ }, {
247
+ id: _index2.WEEKLY,
248
+ getPeriods: getWeeklyPeriodType({
249
+ startDay: 1
250
+ }, filterFuturePeriods, periodSettings),
251
+ name: _index.default.t('Weekly')
252
+ }, {
253
+ id: _index2.WEEKLYWED,
254
+ getPeriods: getWeeklyPeriodType({
255
+ startDay: 3
256
+ }, filterFuturePeriods, periodSettings),
257
+ name: _index.default.t('Weekly (Start Wednesday)')
258
+ }, {
259
+ id: _index2.WEEKLYTHU,
260
+ getPeriods: getWeeklyPeriodType({
261
+ startDay: 4
262
+ }, filterFuturePeriods, periodSettings),
263
+ name: _index.default.t('Weekly (Start Thursday)')
264
+ }, {
265
+ id: _index2.WEEKLYSAT,
266
+ getPeriods: getWeeklyPeriodType({
267
+ startDay: 6
268
+ }, filterFuturePeriods, periodSettings),
269
+ name: _index.default.t('Weekly (Start Saturday)')
270
+ }, {
271
+ id: _index2.WEEKLYSUN,
272
+ getPeriods: getWeeklyPeriodType({
273
+ startDay: 7
274
+ }, filterFuturePeriods, periodSettings),
275
+ name: _index.default.t('Weekly (Start Sunday)')
276
+ }, {
277
+ id: _index2.BIWEEKLY,
278
+ getPeriods: getBiWeeklyPeriodType(filterFuturePeriods, periodSettings),
279
+ name: _index.default.t('Bi-weekly')
280
+ }, {
281
+ id: _index2.MONTHLY,
282
+ getPeriods: getMonthlyPeriodType(filterFuturePeriods, periodSettings),
283
+ name: _index.default.t('Monthly')
284
+ }, {
285
+ id: _index2.BIMONTHLY,
286
+ getPeriods: getBiMonthlyPeriodType(filterFuturePeriods, periodSettings),
287
+ name: _index.default.t('Bi-monthly')
288
+ }, {
289
+ id: _index2.QUARTERLY,
290
+ getPeriods: getQuarterlyPeriodType(filterFuturePeriods, periodSettings),
291
+ name: _index.default.t('Quarterly')
292
+ }, {
293
+ id: _index2.SIXMONTHLY,
294
+ getPeriods: getSixMonthlyPeriodType(filterFuturePeriods, periodSettings),
295
+ name: _index.default.t('Six-monthly')
296
+ }, {
297
+ id: _index2.SIXMONTHLYAPR,
298
+ getPeriods: getSixMonthlyAprilPeriodType(filterFuturePeriods, periodSettings),
299
+ name: _index.default.t('Six-monthly April')
300
+ }, {
301
+ id: _index2.YEARLY,
302
+ getPeriods: getYearlyPeriodType(filterFuturePeriods, periodSettings),
303
+ name: _index.default.t('Yearly')
304
+ }, {
305
+ id: _index2.FYNOV,
306
+ getPeriods: getFinancialNovemberPeriodType(filterFuturePeriods, periodSettings),
307
+ name: _index.default.t('Financial year (Start November)')
308
+ }, {
309
+ id: _index2.FYOCT,
310
+ getPeriods: getFinancialOctoberPeriodType(filterFuturePeriods, periodSettings),
311
+ name: _index.default.t('Financial year (Start October)')
312
+ }, {
313
+ id: _index2.FYJUL,
314
+ getPeriods: getFinancialJulyPeriodType(filterFuturePeriods, periodSettings),
315
+ name: _index.default.t('Financial year (Start July)')
316
+ }, {
317
+ id: _index2.FYAPR,
318
+ getPeriods: getFinancialAprilPeriodType(filterFuturePeriods, periodSettings),
319
+ name: _index.default.t('Financial year (Start April)')
320
+ }];
321
+ };
322
+
323
+ const getFixedPeriodsOptionsById = (id, periodSettings) => {
324
+ return getOptions(periodSettings).find(option => option.id === id);
325
+ };
597
326
 
598
327
  exports.getFixedPeriodsOptionsById = getFixedPeriodsOptionsById;
599
328