Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/CoreHome/vue/src/Periods/Year.ts')
-rw-r--r--plugins/CoreHome/vue/src/Periods/Year.ts44
1 files changed, 44 insertions, 0 deletions
diff --git a/plugins/CoreHome/vue/src/Periods/Year.ts b/plugins/CoreHome/vue/src/Periods/Year.ts
new file mode 100644
index 0000000000..9f9c0c0c88
--- /dev/null
+++ b/plugins/CoreHome/vue/src/Periods/Year.ts
@@ -0,0 +1,44 @@
+/*!
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+import translate from '../translate';
+import Periods from './Periods';
+import { parseDate, todayIsInRange } from './utilities';
+
+export default class YearPeriod {
+ constructor(private dateInPeriod: Date) {}
+
+ static parse(strDate: string): YearPeriod {
+ return new YearPeriod(parseDate(strDate));
+ }
+
+ static getDisplayText(): string {
+ return translate('Intl_PeriodYear');
+ }
+
+ getPrettyString(): string {
+ return this.dateInPeriod.getFullYear().toString();
+ }
+
+ getDateRange(): Date[] {
+ const startYear = new Date(this.dateInPeriod.getTime());
+ startYear.setMonth(0);
+ startYear.setDate(1);
+
+ const endYear = new Date(this.dateInPeriod.getTime());
+ endYear.setMonth(12);
+ endYear.setDate(0);
+
+ return [startYear, endYear];
+ }
+
+ containsToday(): boolean {
+ return todayIsInRange(this.getDateRange());
+ }
+}
+
+Periods.addCustomPeriod('year', YearPeriod);