Commit 3c78d614c258bea9df399445055807660446ea20

Authored by Igor Kulikov
1 parent 91116bd7

Introduce week intervals (Mon - Sun) and (Sun - Sat)

... ... @@ -136,13 +136,16 @@ export enum QuickTimeInterval {
136 136 DAY_BEFORE_YESTERDAY = 'DAY_BEFORE_YESTERDAY',
137 137 THIS_DAY_LAST_WEEK = 'THIS_DAY_LAST_WEEK',
138 138 PREVIOUS_WEEK = 'PREVIOUS_WEEK',
  139 + PREVIOUS_WEEK_ISO = 'PREVIOUS_WEEK_ISO',
139 140 PREVIOUS_MONTH = 'PREVIOUS_MONTH',
140 141 PREVIOUS_YEAR = 'PREVIOUS_YEAR',
141 142 CURRENT_HOUR = 'CURRENT_HOUR',
142 143 CURRENT_DAY = 'CURRENT_DAY',
143 144 CURRENT_DAY_SO_FAR = 'CURRENT_DAY_SO_FAR',
144 145 CURRENT_WEEK = 'CURRENT_WEEK',
145   - CURRENT_WEEK_SO_FAR = 'CURRENT_WEEK_SO_WAR',
  146 + CURRENT_WEEK_ISO = 'CURRENT_WEEK_ISO',
  147 + CURRENT_WEEK_SO_FAR = 'CURRENT_WEEK_SO_FAR',
  148 + CURRENT_WEEK_ISO_SO_FAR = 'CURRENT_WEEK_ISO_SO_FAR',
146 149 CURRENT_MONTH = 'CURRENT_MONTH',
147 150 CURRENT_MONTH_SO_FAR = 'CURRENT_MONTH_SO_FAR',
148 151 CURRENT_YEAR = 'CURRENT_YEAR',
... ... @@ -154,13 +157,16 @@ export const QuickTimeIntervalTranslationMap = new Map<QuickTimeInterval, string
154 157 [QuickTimeInterval.DAY_BEFORE_YESTERDAY, 'timeinterval.predefined.day-before-yesterday'],
155 158 [QuickTimeInterval.THIS_DAY_LAST_WEEK, 'timeinterval.predefined.this-day-last-week'],
156 159 [QuickTimeInterval.PREVIOUS_WEEK, 'timeinterval.predefined.previous-week'],
  160 + [QuickTimeInterval.PREVIOUS_WEEK_ISO, 'timeinterval.predefined.previous-week-iso'],
157 161 [QuickTimeInterval.PREVIOUS_MONTH, 'timeinterval.predefined.previous-month'],
158 162 [QuickTimeInterval.PREVIOUS_YEAR, 'timeinterval.predefined.previous-year'],
159 163 [QuickTimeInterval.CURRENT_HOUR, 'timeinterval.predefined.current-hour'],
160 164 [QuickTimeInterval.CURRENT_DAY, 'timeinterval.predefined.current-day'],
161 165 [QuickTimeInterval.CURRENT_DAY_SO_FAR, 'timeinterval.predefined.current-day-so-far'],
162 166 [QuickTimeInterval.CURRENT_WEEK, 'timeinterval.predefined.current-week'],
  167 + [QuickTimeInterval.CURRENT_WEEK_ISO, 'timeinterval.predefined.current-week-iso'],
163 168 [QuickTimeInterval.CURRENT_WEEK_SO_FAR, 'timeinterval.predefined.current-week-so-far'],
  169 + [QuickTimeInterval.CURRENT_WEEK_ISO_SO_FAR, 'timeinterval.predefined.current-week-iso-so-far'],
164 170 [QuickTimeInterval.CURRENT_MONTH, 'timeinterval.predefined.current-month'],
165 171 [QuickTimeInterval.CURRENT_MONTH_SO_FAR, 'timeinterval.predefined.current-month-so-far'],
166 172 [QuickTimeInterval.CURRENT_YEAR, 'timeinterval.predefined.current-year'],
... ... @@ -453,7 +459,9 @@ function getSubscriptionRealtimeWindowFromTimeInterval(interval: QuickTimeInterv
453 459 case QuickTimeInterval.CURRENT_DAY_SO_FAR:
454 460 return DAY;
455 461 case QuickTimeInterval.CURRENT_WEEK:
  462 + case QuickTimeInterval.CURRENT_WEEK_ISO:
456 463 case QuickTimeInterval.CURRENT_WEEK_SO_FAR:
  464 + case QuickTimeInterval.CURRENT_WEEK_ISO_SO_FAR:
457 465 return WEEK;
458 466 case QuickTimeInterval.CURRENT_MONTH:
459 467 case QuickTimeInterval.CURRENT_MONTH_SO_FAR:
... ... @@ -479,6 +487,9 @@ export function calculateIntervalEndTime(interval: QuickTimeInterval, currentDat
479 487 case QuickTimeInterval.PREVIOUS_WEEK:
480 488 currentDate.subtract(1, 'weeks');
481 489 return currentDate.endOf('week').valueOf();
  490 + case QuickTimeInterval.PREVIOUS_WEEK_ISO:
  491 + currentDate.subtract(1, 'weeks');
  492 + return currentDate.endOf('isoWeek').valueOf();
482 493 case QuickTimeInterval.PREVIOUS_MONTH:
483 494 currentDate.subtract(1, 'months');
484 495 return currentDate.endOf('month').valueOf();
... ... @@ -491,12 +502,15 @@ export function calculateIntervalEndTime(interval: QuickTimeInterval, currentDat
491 502 return currentDate.endOf('day').valueOf();
492 503 case QuickTimeInterval.CURRENT_WEEK:
493 504 return currentDate.endOf('week').valueOf();
  505 + case QuickTimeInterval.CURRENT_WEEK_ISO:
  506 + return currentDate.endOf('isoWeek').valueOf();
494 507 case QuickTimeInterval.CURRENT_MONTH:
495 508 return currentDate.endOf('month').valueOf();
496 509 case QuickTimeInterval.CURRENT_YEAR:
497 510 return currentDate.endOf('year').valueOf();
498 511 case QuickTimeInterval.CURRENT_DAY_SO_FAR:
499 512 case QuickTimeInterval.CURRENT_WEEK_SO_FAR:
  513 + case QuickTimeInterval.CURRENT_WEEK_ISO_SO_FAR:
500 514 case QuickTimeInterval.CURRENT_MONTH_SO_FAR:
501 515 case QuickTimeInterval.CURRENT_YEAR_SO_FAR:
502 516 return currentDate.valueOf();
... ... @@ -518,6 +532,9 @@ export function calculateIntervalStartTime(interval: QuickTimeInterval, currentD
518 532 case QuickTimeInterval.PREVIOUS_WEEK:
519 533 currentDate.subtract(1, 'weeks');
520 534 return currentDate.startOf('week').valueOf();
  535 + case QuickTimeInterval.PREVIOUS_WEEK_ISO:
  536 + currentDate.subtract(1, 'weeks');
  537 + return currentDate.startOf('isoWeek').valueOf();
521 538 case QuickTimeInterval.PREVIOUS_MONTH:
522 539 currentDate.subtract(1, 'months');
523 540 return currentDate.startOf('month').valueOf();
... ... @@ -532,6 +549,9 @@ export function calculateIntervalStartTime(interval: QuickTimeInterval, currentD
532 549 case QuickTimeInterval.CURRENT_WEEK:
533 550 case QuickTimeInterval.CURRENT_WEEK_SO_FAR:
534 551 return currentDate.startOf('week').valueOf();
  552 + case QuickTimeInterval.CURRENT_WEEK_ISO:
  553 + case QuickTimeInterval.CURRENT_WEEK_ISO_SO_FAR:
  554 + return currentDate.startOf('isoWeek').valueOf();
535 555 case QuickTimeInterval.CURRENT_MONTH:
536 556 case QuickTimeInterval.CURRENT_MONTH_SO_FAR:
537 557 return currentDate.startOf('month').valueOf();
... ... @@ -552,8 +572,11 @@ export function quickTimeIntervalPeriod(interval: QuickTimeInterval): number {
552 572 case QuickTimeInterval.CURRENT_DAY_SO_FAR:
553 573 return DAY;
554 574 case QuickTimeInterval.PREVIOUS_WEEK:
  575 + case QuickTimeInterval.PREVIOUS_WEEK_ISO:
555 576 case QuickTimeInterval.CURRENT_WEEK:
  577 + case QuickTimeInterval.CURRENT_WEEK_ISO:
556 578 case QuickTimeInterval.CURRENT_WEEK_SO_FAR:
  579 + case QuickTimeInterval.CURRENT_WEEK_ISO_SO_FAR:
557 580 return WEEK;
558 581 case QuickTimeInterval.PREVIOUS_MONTH:
559 582 case QuickTimeInterval.CURRENT_MONTH:
... ... @@ -583,6 +606,11 @@ export function calculateIntervalComparisonStartTime(interval: QuickTimeInterval
583 606 case QuickTimeInterval.CURRENT_WEEK_SO_FAR:
584 607 currentDate.subtract(1, 'weeks');
585 608 return currentDate.startOf('week').valueOf();
  609 + case QuickTimeInterval.PREVIOUS_WEEK_ISO:
  610 + case QuickTimeInterval.CURRENT_WEEK_ISO:
  611 + case QuickTimeInterval.CURRENT_WEEK_ISO_SO_FAR:
  612 + currentDate.subtract(1, 'weeks');
  613 + return currentDate.startOf('isoWeek').valueOf();
586 614 case QuickTimeInterval.PREVIOUS_MONTH:
587 615 case QuickTimeInterval.CURRENT_MONTH:
588 616 case QuickTimeInterval.CURRENT_MONTH_SO_FAR:
... ... @@ -616,7 +644,12 @@ export function calculateIntervalComparisonEndTime(interval: QuickTimeInterval,
616 644 case QuickTimeInterval.CURRENT_WEEK:
617 645 currentDate.subtract(1, 'weeks');
618 646 return currentDate.endOf('week').valueOf();
  647 + case QuickTimeInterval.PREVIOUS_WEEK_ISO:
  648 + case QuickTimeInterval.CURRENT_WEEK_ISO:
  649 + currentDate.subtract(1, 'weeks');
  650 + return currentDate.endOf('isoWeek').valueOf();
619 651 case QuickTimeInterval.CURRENT_WEEK_SO_FAR:
  652 + case QuickTimeInterval.CURRENT_WEEK_ISO_SO_FAR:
620 653 return currentDate.subtract(1, 'week').valueOf();
621 654 case QuickTimeInterval.PREVIOUS_MONTH:
622 655 case QuickTimeInterval.CURRENT_MONTH:
... ...
... ... @@ -2131,14 +2131,17 @@
2131 2131 "yesterday": "Yesterday",
2132 2132 "day-before-yesterday": "Day before yesterday",
2133 2133 "this-day-last-week": "This day last week",
2134   - "previous-week": "Previous week",
  2134 + "previous-week": "Previous week (Sun - Sat)",
  2135 + "previous-week-iso": "Previous week (Mon - Sun)",
2135 2136 "previous-month": "Previous month",
2136 2137 "previous-year": "Previous year",
2137 2138 "current-hour": "Current hour",
2138 2139 "current-day": "Current day",
2139 2140 "current-day-so-far": "Current day so far",
2140   - "current-week": "Current week",
2141   - "current-week-so-far": "Current week so far",
  2141 + "current-week": "Current week (Sun - Sat)",
  2142 + "current-week-iso": "Current week (Mon - Sun)",
  2143 + "current-week-so-far": "Current week so far (Sun - Sat)",
  2144 + "current-week-iso-so-far": "Current week so far (Mon - Sun)",
2142 2145 "current-month": "Current month",
2143 2146 "current-month-so-far": "Current month so far",
2144 2147 "current-year": "Current year",
... ...