mirror of
https://github.com/mayswind/ezbookkeeping.git
synced 2026-05-21 02:04:26 +08:00
migrate consts/datetime.js to ts
This commit is contained in:
@@ -59,7 +59,7 @@ import { useTheme } from 'vuetify';
|
|||||||
import { mapStores } from 'pinia';
|
import { mapStores } from 'pinia';
|
||||||
import { useUserStore } from '@/stores/user.js';
|
import { useUserStore } from '@/stores/user.js';
|
||||||
|
|
||||||
import datetimeConstants from '@/consts/datetime.js';
|
import { DateRange } from '@/core/datetime.ts';
|
||||||
import { ThemeType } from '@/core/theme.ts';
|
import { ThemeType } from '@/core/theme.ts';
|
||||||
import { arrangeArrayWithNewStartIndex } from '@/lib/common.ts';
|
import { arrangeArrayWithNewStartIndex } from '@/lib/common.ts';
|
||||||
import {
|
import {
|
||||||
@@ -149,12 +149,12 @@ export default {
|
|||||||
const presetRanges = [];
|
const presetRanges = [];
|
||||||
|
|
||||||
[
|
[
|
||||||
datetimeConstants.allDateRanges.Today,
|
DateRange.Today,
|
||||||
datetimeConstants.allDateRanges.LastSevenDays,
|
DateRange.LastSevenDays,
|
||||||
datetimeConstants.allDateRanges.LastThirtyDays,
|
DateRange.LastThirtyDays,
|
||||||
datetimeConstants.allDateRanges.ThisWeek,
|
DateRange.ThisWeek,
|
||||||
datetimeConstants.allDateRanges.ThisMonth,
|
DateRange.ThisMonth,
|
||||||
datetimeConstants.allDateRanges.ThisYear
|
DateRange.ThisYear
|
||||||
].forEach(dateRangeType => {
|
].forEach(dateRangeType => {
|
||||||
const dateRange = getDateRangeByDateType(dateRangeType.type, this.firstDayOfWeek);
|
const dateRange = getDateRangeByDateType(dateRangeType.type, this.firstDayOfWeek);
|
||||||
|
|
||||||
|
|||||||
@@ -10,10 +10,10 @@ import { mapStores } from 'pinia';
|
|||||||
import { useSettingsStore } from '@/stores/setting.js';
|
import { useSettingsStore } from '@/stores/setting.js';
|
||||||
import { useUserStore } from '@/stores/user.js';
|
import { useUserStore } from '@/stores/user.js';
|
||||||
|
|
||||||
import { DEFAULT_ICON_COLOR, DEFAULT_CHART_COLORS } from '@/consts/color.ts';
|
import { DateRangeScene } from '@/core/datetime.ts';
|
||||||
import datetimeConstants from '@/consts/datetime.js';
|
|
||||||
import statisticsConstants from '@/consts/statistics.js';
|
|
||||||
import { ThemeType } from '@/core/theme.ts';
|
import { ThemeType } from '@/core/theme.ts';
|
||||||
|
import { DEFAULT_ICON_COLOR, DEFAULT_CHART_COLORS } from '@/consts/color.ts';
|
||||||
|
import statisticsConstants from '@/consts/statistics.js';
|
||||||
import {
|
import {
|
||||||
isArray,
|
isArray,
|
||||||
isNumber
|
isNumber
|
||||||
@@ -376,7 +376,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const dateRangeType = getDateTypeByDateRange(minUnixTime, maxUnixTime, this.userStore.currentUserFirstDayOfWeek, datetimeConstants.allDateRangeScenes.Normal);
|
const dateRangeType = getDateTypeByDateRange(minUnixTime, maxUnixTime, this.userStore.currentUserFirstDayOfWeek, DateRangeScene.Normal);
|
||||||
|
|
||||||
this.$emit('click', {
|
this.$emit('click', {
|
||||||
itemId: itemId,
|
itemId: itemId,
|
||||||
|
|||||||
@@ -56,7 +56,7 @@
|
|||||||
import { mapStores } from 'pinia';
|
import { mapStores } from 'pinia';
|
||||||
import { useUserStore } from '@/stores/user.js';
|
import { useUserStore } from '@/stores/user.js';
|
||||||
|
|
||||||
import datetimeConstants from '@/consts/datetime.js';
|
import { DateRange } from '@/core/datetime.ts';
|
||||||
import { arrangeArrayWithNewStartIndex } from '@/lib/common.ts';
|
import { arrangeArrayWithNewStartIndex } from '@/lib/common.ts';
|
||||||
import {
|
import {
|
||||||
getCurrentUnixTime,
|
getCurrentUnixTime,
|
||||||
@@ -136,12 +136,12 @@ export default {
|
|||||||
const presetRanges = [];
|
const presetRanges = [];
|
||||||
|
|
||||||
[
|
[
|
||||||
datetimeConstants.allDateRanges.Today,
|
DateRange.Today,
|
||||||
datetimeConstants.allDateRanges.LastSevenDays,
|
DateRange.LastSevenDays,
|
||||||
datetimeConstants.allDateRanges.LastThirtyDays,
|
DateRange.LastThirtyDays,
|
||||||
datetimeConstants.allDateRanges.ThisWeek,
|
DateRange.ThisWeek,
|
||||||
datetimeConstants.allDateRanges.ThisMonth,
|
DateRange.ThisMonth,
|
||||||
datetimeConstants.allDateRanges.ThisYear
|
DateRange.ThisYear
|
||||||
].forEach(dateRangeType => {
|
].forEach(dateRangeType => {
|
||||||
const dateRange = getDateRangeByDateType(dateRangeType.type, this.firstDayOfWeek);
|
const dateRange = getDateRangeByDateType(dateRangeType.type, this.firstDayOfWeek);
|
||||||
|
|
||||||
|
|||||||
@@ -52,7 +52,6 @@
|
|||||||
import { mapStores } from 'pinia';
|
import { mapStores } from 'pinia';
|
||||||
import { useUserStore } from '@/stores/user.js';
|
import { useUserStore } from '@/stores/user.js';
|
||||||
|
|
||||||
import datetimeConstants from '@/consts/datetime.js';
|
|
||||||
import { arrangeArrayWithNewStartIndex } from '@/lib/common.ts';
|
import { arrangeArrayWithNewStartIndex } from '@/lib/common.ts';
|
||||||
import {
|
import {
|
||||||
getCurrentUnixTime,
|
getCurrentUnixTime,
|
||||||
@@ -202,19 +201,15 @@ export default {
|
|||||||
return getTimeValues(datetime, this.is24Hour, this.isMeridiemIndicatorFirst);
|
return getTimeValues(datetime, this.is24Hour, this.isMeridiemIndicatorFirst);
|
||||||
},
|
},
|
||||||
getTimePickerColumns() {
|
getTimePickerColumns() {
|
||||||
const self = this;
|
|
||||||
const ret = [];
|
const ret = [];
|
||||||
|
|
||||||
if (!self.is24Hour && this.isMeridiemIndicatorFirst) {
|
if (!this.is24Hour && this.isMeridiemIndicatorFirst) {
|
||||||
ret.push({
|
ret.push(this.$locale.getAllMeridiemIndicators());
|
||||||
values: datetimeConstants.allMeridiemIndicatorsArray,
|
|
||||||
displayValues: self.$locale.getAllMeridiemIndicatorNames()
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hours
|
// Hours
|
||||||
ret.push({
|
ret.push({
|
||||||
values: self.generateAllHours()
|
values: this.generateAllHours()
|
||||||
});
|
});
|
||||||
// Divider
|
// Divider
|
||||||
ret.push({
|
ret.push({
|
||||||
@@ -223,7 +218,7 @@ export default {
|
|||||||
});
|
});
|
||||||
// Minutes
|
// Minutes
|
||||||
ret.push({
|
ret.push({
|
||||||
values: self.generateAllMinutesOrSeconds()
|
values: this.generateAllMinutesOrSeconds()
|
||||||
});
|
});
|
||||||
// Divider
|
// Divider
|
||||||
ret.push({
|
ret.push({
|
||||||
@@ -232,14 +227,11 @@ export default {
|
|||||||
});
|
});
|
||||||
// Seconds
|
// Seconds
|
||||||
ret.push({
|
ret.push({
|
||||||
values: self.generateAllMinutesOrSeconds()
|
values: this.generateAllMinutesOrSeconds()
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!self.is24Hour && !this.isMeridiemIndicatorFirst) {
|
if (!this.is24Hour && !this.isMeridiemIndicatorFirst) {
|
||||||
ret.push({
|
ret.push(this.$locale.getAllMeridiemIndicators());
|
||||||
values: datetimeConstants.allMeridiemIndicatorsArray,
|
|
||||||
displayValues: self.$locale.getAllMeridiemIndicatorNames()
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|||||||
@@ -93,8 +93,8 @@ import { mapStores } from 'pinia';
|
|||||||
import { useSettingsStore } from '@/stores/setting.js';
|
import { useSettingsStore } from '@/stores/setting.js';
|
||||||
import { useUserStore } from '@/stores/user.js';
|
import { useUserStore } from '@/stores/user.js';
|
||||||
|
|
||||||
|
import { DateRangeScene } from '@/core/datetime.ts';
|
||||||
import { DEFAULT_ICON_COLOR, DEFAULT_CHART_COLORS } from '@/consts/color.ts';
|
import { DEFAULT_ICON_COLOR, DEFAULT_CHART_COLORS } from '@/consts/color.ts';
|
||||||
import datetimeConstants from '@/consts/datetime.js';
|
|
||||||
import statisticsConstants from '@/consts/statistics.js';
|
import statisticsConstants from '@/consts/statistics.js';
|
||||||
import { isNumber } from '@/lib/common.ts';
|
import { isNumber } from '@/lib/common.ts';
|
||||||
import {
|
import {
|
||||||
@@ -303,7 +303,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const dateRangeType = getDateTypeByDateRange(minUnixTime, maxUnixTime, this.userStore.currentUserFirstDayOfWeek, datetimeConstants.allDateRangeScenes.Normal);
|
const dateRangeType = getDateTypeByDateRange(minUnixTime, maxUnixTime, this.userStore.currentUserFirstDayOfWeek, DateRangeScene.Normal);
|
||||||
|
|
||||||
this.$emit('click', {
|
this.$emit('click', {
|
||||||
itemId: itemId,
|
itemId: itemId,
|
||||||
|
|||||||
@@ -1,381 +0,0 @@
|
|||||||
const allMeridiemIndicators = {
|
|
||||||
AM: 'AM',
|
|
||||||
PM: 'PM'
|
|
||||||
};
|
|
||||||
|
|
||||||
const allMeridiemIndicatorsArray = [
|
|
||||||
allMeridiemIndicators.AM,
|
|
||||||
allMeridiemIndicators.PM
|
|
||||||
];
|
|
||||||
|
|
||||||
const allMonthsArray = [
|
|
||||||
'January',
|
|
||||||
'February',
|
|
||||||
'March',
|
|
||||||
'April',
|
|
||||||
'May',
|
|
||||||
'June',
|
|
||||||
'July',
|
|
||||||
'August',
|
|
||||||
'September',
|
|
||||||
'October',
|
|
||||||
'November',
|
|
||||||
'December'
|
|
||||||
];
|
|
||||||
|
|
||||||
const allWeekDays = {
|
|
||||||
Sunday: {
|
|
||||||
type: 0,
|
|
||||||
name: 'Sunday'
|
|
||||||
},
|
|
||||||
Monday: {
|
|
||||||
type: 1,
|
|
||||||
name: 'Monday'
|
|
||||||
},
|
|
||||||
Tuesday: {
|
|
||||||
type: 2,
|
|
||||||
name: 'Tuesday'
|
|
||||||
},
|
|
||||||
Wednesday: {
|
|
||||||
type: 3,
|
|
||||||
name: 'Wednesday'
|
|
||||||
},
|
|
||||||
Thursday: {
|
|
||||||
type: 4,
|
|
||||||
name: 'Thursday'
|
|
||||||
},
|
|
||||||
Friday: {
|
|
||||||
type: 5,
|
|
||||||
name: 'Friday'
|
|
||||||
},
|
|
||||||
Saturday: {
|
|
||||||
type: 6,
|
|
||||||
name: 'Saturday'
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const allWeekDaysArray = [
|
|
||||||
allWeekDays.Sunday,
|
|
||||||
allWeekDays.Monday,
|
|
||||||
allWeekDays.Tuesday,
|
|
||||||
allWeekDays.Wednesday,
|
|
||||||
allWeekDays.Thursday,
|
|
||||||
allWeekDays.Friday,
|
|
||||||
allWeekDays.Saturday
|
|
||||||
];
|
|
||||||
|
|
||||||
const allLongDateFormat = {
|
|
||||||
YYYYMMDD: {
|
|
||||||
type: 1,
|
|
||||||
key: 'yyyy_mm_dd',
|
|
||||||
isMonthAfterYear: true
|
|
||||||
},
|
|
||||||
MMDDYYYY: {
|
|
||||||
type: 2,
|
|
||||||
key: 'mm_dd_yyyy',
|
|
||||||
isMonthAfterYear: false
|
|
||||||
},
|
|
||||||
DDMMYYYY: {
|
|
||||||
type: 3,
|
|
||||||
key: 'dd_mm_yyyy',
|
|
||||||
isMonthAfterYear: false
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const allLongDateFormatArray = [
|
|
||||||
allLongDateFormat.YYYYMMDD,
|
|
||||||
allLongDateFormat.MMDDYYYY,
|
|
||||||
allLongDateFormat.DDMMYYYY
|
|
||||||
];
|
|
||||||
|
|
||||||
const allShortDateFormat = {
|
|
||||||
YYYYMMDD: {
|
|
||||||
type: 1,
|
|
||||||
key: 'yyyy_mm_dd',
|
|
||||||
isMonthAfterYear: true
|
|
||||||
},
|
|
||||||
MMDDYYYY: {
|
|
||||||
type: 2,
|
|
||||||
key: 'mm_dd_yyyy',
|
|
||||||
isMonthAfterYear: false
|
|
||||||
},
|
|
||||||
DDMMYYYY: {
|
|
||||||
type: 3,
|
|
||||||
key: 'dd_mm_yyyy',
|
|
||||||
isMonthAfterYear: false
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const allShortDateFormatArray = [
|
|
||||||
allShortDateFormat.YYYYMMDD,
|
|
||||||
allShortDateFormat.MMDDYYYY,
|
|
||||||
allShortDateFormat.DDMMYYYY
|
|
||||||
];
|
|
||||||
|
|
||||||
const allLongTimeFormat = {
|
|
||||||
HHMMSS: {
|
|
||||||
type: 1,
|
|
||||||
key: 'hh_mm_ss',
|
|
||||||
is24HourFormat: true,
|
|
||||||
isMeridiemIndicatorFirst: null
|
|
||||||
},
|
|
||||||
AHHMMSS: {
|
|
||||||
type: 2,
|
|
||||||
key: 'a_hh_mm_ss',
|
|
||||||
is24HourFormat: false,
|
|
||||||
isMeridiemIndicatorFirst: true
|
|
||||||
},
|
|
||||||
HHMMSSA: {
|
|
||||||
type: 3,
|
|
||||||
key: 'hh_mm_ss_a',
|
|
||||||
is24HourFormat: false,
|
|
||||||
isMeridiemIndicatorFirst: false
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const allLongTimeFormatArray = [
|
|
||||||
allLongTimeFormat.HHMMSS,
|
|
||||||
allLongTimeFormat.AHHMMSS,
|
|
||||||
allLongTimeFormat.HHMMSSA
|
|
||||||
];
|
|
||||||
|
|
||||||
const allShortTimeFormat = {
|
|
||||||
HHMM: {
|
|
||||||
type: 1,
|
|
||||||
key: 'hh_mm',
|
|
||||||
is24HourFormat: true,
|
|
||||||
isMeridiemIndicatorFirst: null
|
|
||||||
},
|
|
||||||
AHHMM: {
|
|
||||||
type: 2,
|
|
||||||
key: 'a_hh_mm',
|
|
||||||
is24HourFormat: false,
|
|
||||||
isMeridiemIndicatorFirst: true
|
|
||||||
},
|
|
||||||
HHMMA: {
|
|
||||||
type: 3,
|
|
||||||
key: 'hh_mm_a',
|
|
||||||
is24HourFormat: false,
|
|
||||||
isMeridiemIndicatorFirst: false
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const allShortTimeFormatArray = [
|
|
||||||
allShortTimeFormat.HHMM,
|
|
||||||
allShortTimeFormat.AHHMM,
|
|
||||||
allShortTimeFormat.HHMMA
|
|
||||||
];
|
|
||||||
|
|
||||||
const allDateRangeScenes = {
|
|
||||||
Normal: 0,
|
|
||||||
TrendAnalysis: 1
|
|
||||||
};
|
|
||||||
|
|
||||||
const allDateRanges = {
|
|
||||||
All: {
|
|
||||||
type: 0,
|
|
||||||
name: 'All',
|
|
||||||
availableScenes: {
|
|
||||||
[allDateRangeScenes.Normal]: true,
|
|
||||||
[allDateRangeScenes.TrendAnalysis]: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Today: {
|
|
||||||
type: 1,
|
|
||||||
name: 'Today',
|
|
||||||
availableScenes: {
|
|
||||||
[allDateRangeScenes.Normal]: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Yesterday: {
|
|
||||||
type: 2,
|
|
||||||
name: 'Yesterday',
|
|
||||||
availableScenes: {
|
|
||||||
[allDateRangeScenes.Normal]: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
LastSevenDays: {
|
|
||||||
type: 3,
|
|
||||||
name: 'Recent 7 days',
|
|
||||||
availableScenes: {
|
|
||||||
[allDateRangeScenes.Normal]: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
LastThirtyDays: {
|
|
||||||
type: 4,
|
|
||||||
name: 'Recent 30 days',
|
|
||||||
availableScenes: {
|
|
||||||
[allDateRangeScenes.Normal]: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
ThisWeek: {
|
|
||||||
type: 5,
|
|
||||||
name: 'This week',
|
|
||||||
availableScenes: {
|
|
||||||
[allDateRangeScenes.Normal]: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
LastWeek: {
|
|
||||||
type: 6,
|
|
||||||
name: 'Last week',
|
|
||||||
availableScenes: {
|
|
||||||
[allDateRangeScenes.Normal]: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
ThisMonth: {
|
|
||||||
type: 7,
|
|
||||||
name: 'This month',
|
|
||||||
availableScenes: {
|
|
||||||
[allDateRangeScenes.Normal]: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
LastMonth: {
|
|
||||||
type: 8,
|
|
||||||
name: 'Last month',
|
|
||||||
availableScenes: {
|
|
||||||
[allDateRangeScenes.Normal]: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
ThisYear: {
|
|
||||||
type: 9,
|
|
||||||
name: 'This year',
|
|
||||||
availableScenes: {
|
|
||||||
[allDateRangeScenes.Normal]: true,
|
|
||||||
[allDateRangeScenes.TrendAnalysis]: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
LastYear: {
|
|
||||||
type: 10,
|
|
||||||
name: 'Last year',
|
|
||||||
availableScenes: {
|
|
||||||
[allDateRangeScenes.Normal]: true,
|
|
||||||
[allDateRangeScenes.TrendAnalysis]: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
PreviousBillingCycle: {
|
|
||||||
type: 51,
|
|
||||||
name: 'Previous Billing Cycle',
|
|
||||||
isBillingCycle: true,
|
|
||||||
availableScenes: {
|
|
||||||
[allDateRangeScenes.Normal]: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
CurrentBillingCycle: {
|
|
||||||
type: 52,
|
|
||||||
name: 'Current Billing Cycle',
|
|
||||||
isBillingCycle: true,
|
|
||||||
availableScenes: {
|
|
||||||
[allDateRangeScenes.Normal]: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
RecentTwelveMonths: {
|
|
||||||
type: 101,
|
|
||||||
name: 'Recent 12 months',
|
|
||||||
availableScenes: {
|
|
||||||
[allDateRangeScenes.TrendAnalysis]: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
RecentTwentyFourMonths: {
|
|
||||||
type: 102,
|
|
||||||
name: 'Recent 24 months',
|
|
||||||
availableScenes: {
|
|
||||||
[allDateRangeScenes.TrendAnalysis]: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
RecentThirtySixMonths: {
|
|
||||||
type: 103,
|
|
||||||
name: 'Recent 36 months',
|
|
||||||
availableScenes: {
|
|
||||||
[allDateRangeScenes.TrendAnalysis]: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
RecentTwoYears: {
|
|
||||||
type: 104,
|
|
||||||
name: 'Recent 2 years',
|
|
||||||
availableScenes: {
|
|
||||||
[allDateRangeScenes.TrendAnalysis]: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
RecentThreeYears: {
|
|
||||||
type: 105,
|
|
||||||
name: 'Recent 3 years',
|
|
||||||
availableScenes: {
|
|
||||||
[allDateRangeScenes.TrendAnalysis]: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
RecentFiveYears: {
|
|
||||||
type: 106,
|
|
||||||
name: 'Recent 5 years',
|
|
||||||
availableScenes: {
|
|
||||||
[allDateRangeScenes.TrendAnalysis]: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Custom: {
|
|
||||||
type: 255,
|
|
||||||
name: 'Custom Date',
|
|
||||||
availableScenes: {
|
|
||||||
[allDateRangeScenes.Normal]: true,
|
|
||||||
[allDateRangeScenes.TrendAnalysis]: true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const allDateRangesMap = {
|
|
||||||
[allDateRanges.All.type]: allDateRanges.All,
|
|
||||||
[allDateRanges.Today.type]: allDateRanges.Today,
|
|
||||||
[allDateRanges.Yesterday.type]: allDateRanges.Yesterday,
|
|
||||||
[allDateRanges.LastSevenDays.type]: allDateRanges.LastSevenDays,
|
|
||||||
[allDateRanges.LastThirtyDays.type]: allDateRanges.LastThirtyDays,
|
|
||||||
[allDateRanges.ThisWeek.type]: allDateRanges.ThisWeek,
|
|
||||||
[allDateRanges.LastWeek.type]: allDateRanges.LastWeek,
|
|
||||||
[allDateRanges.ThisMonth.type]: allDateRanges.ThisMonth,
|
|
||||||
[allDateRanges.LastMonth.type]: allDateRanges.LastMonth,
|
|
||||||
[allDateRanges.ThisYear.type]: allDateRanges.ThisYear,
|
|
||||||
[allDateRanges.LastYear.type]: allDateRanges.LastYear,
|
|
||||||
[allDateRanges.PreviousBillingCycle.type]: allDateRanges.PreviousBillingCycle,
|
|
||||||
[allDateRanges.CurrentBillingCycle.type]: allDateRanges.CurrentBillingCycle,
|
|
||||||
[allDateRanges.RecentTwentyFourMonths.type]: allDateRanges.RecentTwentyFourMonths,
|
|
||||||
[allDateRanges.RecentThirtySixMonths.type]: allDateRanges.RecentThirtySixMonths,
|
|
||||||
[allDateRanges.RecentTwoYears.type]: allDateRanges.RecentTwoYears,
|
|
||||||
[allDateRanges.RecentThreeYears.type]: allDateRanges.RecentThreeYears,
|
|
||||||
[allDateRanges.RecentFiveYears.type]: allDateRanges.RecentFiveYears,
|
|
||||||
[allDateRanges.Custom.type]: allDateRanges.Custom
|
|
||||||
};
|
|
||||||
|
|
||||||
const allBillingCycleDateRangesMap = {
|
|
||||||
[allDateRanges.PreviousBillingCycle.type]: allDateRanges.PreviousBillingCycle,
|
|
||||||
[allDateRanges.CurrentBillingCycle.type]: allDateRanges.CurrentBillingCycle
|
|
||||||
};
|
|
||||||
|
|
||||||
const defaultFirstDayOfWeek = allWeekDays.Sunday.type;
|
|
||||||
const defaultLongDateFormat = allLongDateFormat.YYYYMMDD;
|
|
||||||
const defaultShortDateFormat = allShortDateFormat.YYYYMMDD;
|
|
||||||
const defaultLongTimeFormat = allLongTimeFormat.HHMMSS;
|
|
||||||
const defaultShortTimeFormat = allShortTimeFormat.HHMM;
|
|
||||||
const defaultDateTimeFormatValue = 0;
|
|
||||||
|
|
||||||
export default {
|
|
||||||
allMeridiemIndicators: allMeridiemIndicators,
|
|
||||||
allMeridiemIndicatorsArray: allMeridiemIndicatorsArray,
|
|
||||||
allWeekDays: allWeekDays,
|
|
||||||
allWeekDaysArray: allWeekDaysArray,
|
|
||||||
allMonthsArray: allMonthsArray,
|
|
||||||
allLongDateFormat: allLongDateFormat,
|
|
||||||
allLongDateFormatArray: allLongDateFormatArray,
|
|
||||||
allShortDateFormat: allShortDateFormat,
|
|
||||||
allShortDateFormatArray: allShortDateFormatArray,
|
|
||||||
allLongTimeFormat: allLongTimeFormat,
|
|
||||||
allLongTimeFormatArray: allLongTimeFormatArray,
|
|
||||||
allShortTimeFormat: allShortTimeFormat,
|
|
||||||
allShortTimeFormatArray: allShortTimeFormatArray,
|
|
||||||
allDateRangeScenes: allDateRangeScenes,
|
|
||||||
allDateRanges: allDateRanges,
|
|
||||||
allDateRangesMap: allDateRangesMap,
|
|
||||||
allBillingCycleDateRangesMap: allBillingCycleDateRangesMap,
|
|
||||||
defaultFirstDayOfWeek: defaultFirstDayOfWeek,
|
|
||||||
defaultLongDateFormat: defaultLongDateFormat,
|
|
||||||
defaultShortDateFormat: defaultShortDateFormat,
|
|
||||||
defaultLongTimeFormat: defaultLongTimeFormat,
|
|
||||||
defaultShortTimeFormat: defaultShortTimeFormat,
|
|
||||||
defaultDateTimeFormatValue: defaultDateTimeFormatValue,
|
|
||||||
};
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import datetime from './datetime.js';
|
import { DateRange } from '@/core/datetime.ts';
|
||||||
|
|
||||||
const allAnalysisTypes = {
|
const allAnalysisTypes = {
|
||||||
CategoricalAnalysis: 0,
|
CategoricalAnalysis: 0,
|
||||||
@@ -203,8 +203,8 @@ export default {
|
|||||||
allChartDataTypes: allChartDataTypes,
|
allChartDataTypes: allChartDataTypes,
|
||||||
allChartDataTypesMap: allChartDataTypesMap,
|
allChartDataTypesMap: allChartDataTypesMap,
|
||||||
defaultChartDataType: defaultChartDataType,
|
defaultChartDataType: defaultChartDataType,
|
||||||
defaultCategoricalChartDataRangeType: datetime.allDateRanges.ThisMonth.type,
|
defaultCategoricalChartDataRangeType: DateRange.ThisMonth.type,
|
||||||
defaultTrendChartDataRangeType: datetime.allDateRanges.ThisYear.type,
|
defaultTrendChartDataRangeType: DateRange.ThisYear.type,
|
||||||
allSortingTypes: allSortingTypes,
|
allSortingTypes: allSortingTypes,
|
||||||
allSortingTypesArray: allSortingTypesArray,
|
allSortingTypesArray: allSortingTypesArray,
|
||||||
defaultSortingType: defaultSortingType,
|
defaultSortingType: defaultSortingType,
|
||||||
|
|||||||
+365
-3
@@ -1,3 +1,78 @@
|
|||||||
|
import type { TypeAndName } from '@/core/base.ts';
|
||||||
|
|
||||||
|
export class Month {
|
||||||
|
private static readonly allInstances: Month[] = [];
|
||||||
|
|
||||||
|
public static readonly January = new Month(1, 'January');
|
||||||
|
public static readonly February = new Month(2, 'February');
|
||||||
|
public static readonly March = new Month(3, 'March');
|
||||||
|
public static readonly April = new Month(4, 'April');
|
||||||
|
public static readonly May = new Month(5, 'May');
|
||||||
|
public static readonly June = new Month(6, 'June');
|
||||||
|
public static readonly July = new Month(7, 'July');
|
||||||
|
public static readonly August = new Month(8, 'August');
|
||||||
|
public static readonly September = new Month(9, 'September');
|
||||||
|
public static readonly October = new Month(10, 'October');
|
||||||
|
public static readonly November = new Month(11, 'November');
|
||||||
|
public static readonly December = new Month(12, 'December');
|
||||||
|
|
||||||
|
public readonly month: number;
|
||||||
|
public readonly name: string;
|
||||||
|
|
||||||
|
private constructor(month: number, name: string) {
|
||||||
|
this.month = month;
|
||||||
|
this.name = name;
|
||||||
|
|
||||||
|
Month.allInstances.push(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static values(): Month[] {
|
||||||
|
return Month.allInstances;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static valueOf(month: number): Month {
|
||||||
|
return Month.allInstances[month - 1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class WeekDay implements TypeAndName {
|
||||||
|
private static readonly allInstances: WeekDay[] = [];
|
||||||
|
private static readonly allInstancesByName: Record<string, WeekDay> = {};
|
||||||
|
|
||||||
|
public static readonly Sunday = new WeekDay(0, 'Sunday');
|
||||||
|
public static readonly Monday = new WeekDay(1, 'Monday');
|
||||||
|
public static readonly Tuesday = new WeekDay(2, 'Tuesday');
|
||||||
|
public static readonly Wednesday = new WeekDay(3, 'Wednesday');
|
||||||
|
public static readonly Thursday = new WeekDay(4, 'Thursday');
|
||||||
|
public static readonly Friday = new WeekDay(5, 'Friday');
|
||||||
|
public static readonly Saturday = new WeekDay(6, 'Saturday');
|
||||||
|
|
||||||
|
public static readonly DefaultFirstDay = WeekDay.Sunday;
|
||||||
|
|
||||||
|
public readonly type: number;
|
||||||
|
public readonly name: string;
|
||||||
|
|
||||||
|
private constructor(type: number, name: string) {
|
||||||
|
this.type = type;
|
||||||
|
this.name = name;
|
||||||
|
|
||||||
|
WeekDay.allInstances.push(this);
|
||||||
|
WeekDay.allInstancesByName[name] = this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static values(): WeekDay[] {
|
||||||
|
return WeekDay.allInstances;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static valueOf(dayOfWeek: number): WeekDay {
|
||||||
|
return WeekDay.allInstances[dayOfWeek];
|
||||||
|
}
|
||||||
|
|
||||||
|
public static parse(typeName: string): WeekDay {
|
||||||
|
return WeekDay.allInstancesByName[typeName];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export class MeridiemIndicator {
|
export class MeridiemIndicator {
|
||||||
private static readonly allInstances: MeridiemIndicator[] = [];
|
private static readonly allInstances: MeridiemIndicator[] = [];
|
||||||
|
|
||||||
@@ -5,11 +80,11 @@ export class MeridiemIndicator {
|
|||||||
public static readonly PM = new MeridiemIndicator(1, 'PM');
|
public static readonly PM = new MeridiemIndicator(1, 'PM');
|
||||||
|
|
||||||
public readonly type: number;
|
public readonly type: number;
|
||||||
public readonly value: string;
|
public readonly name: string;
|
||||||
|
|
||||||
private constructor(type: number, value: string) {
|
private constructor(type: number, name: string) {
|
||||||
this.type = type;
|
this.type = type;
|
||||||
this.value = value;
|
this.name = name;
|
||||||
|
|
||||||
MeridiemIndicator.allInstances.push(this);
|
MeridiemIndicator.allInstances.push(this);
|
||||||
}
|
}
|
||||||
@@ -18,3 +93,290 @@ export class MeridiemIndicator {
|
|||||||
return MeridiemIndicator.allInstances;
|
return MeridiemIndicator.allInstances;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const LANGUAGE_DEFAULT_DATE_TIME_FORMAT_VALUE: number = 0;
|
||||||
|
|
||||||
|
export interface DateFormat {
|
||||||
|
readonly type: number;
|
||||||
|
readonly key: string;
|
||||||
|
readonly isMonthAfterYear: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
type DateFormatTypeName = 'YYYYMMDD' | 'MMDDYYYY' | 'DDMMYYYY';
|
||||||
|
|
||||||
|
export class LongDateFormat implements DateFormat {
|
||||||
|
private static readonly allInstances: LongDateFormat[] = [];
|
||||||
|
private static readonly allInstancesByType: Record<number, LongDateFormat> = {};
|
||||||
|
private static readonly allInstancesByTypeName: Record<string, LongDateFormat> = {};
|
||||||
|
|
||||||
|
public static readonly YYYYMMDD = new LongDateFormat(1, 'YYYYMMDD', 'yyyy_mm_dd', true);
|
||||||
|
public static readonly MMDDYYYY = new LongDateFormat(2, 'MMDDYYYY', 'mm_dd_yyyy', false);
|
||||||
|
public static readonly DDMMYYYY = new LongDateFormat(3, 'DDMMYYYY', 'dd_mm_yyyy', false);
|
||||||
|
|
||||||
|
public static readonly Default = LongDateFormat.YYYYMMDD;
|
||||||
|
|
||||||
|
public readonly type: number;
|
||||||
|
public readonly typeName: string;
|
||||||
|
public readonly key: string;
|
||||||
|
public readonly isMonthAfterYear: boolean;
|
||||||
|
|
||||||
|
private constructor(type: number, typeName: DateFormatTypeName, key: string, isMonthAfterYear: boolean) {
|
||||||
|
this.type = type;
|
||||||
|
this.typeName = typeName;
|
||||||
|
this.key = key;
|
||||||
|
this.isMonthAfterYear = isMonthAfterYear;
|
||||||
|
|
||||||
|
LongDateFormat.allInstances.push(this);
|
||||||
|
LongDateFormat.allInstancesByType[type] = this;
|
||||||
|
LongDateFormat.allInstancesByTypeName[typeName] = this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static values(): LongDateFormat[] {
|
||||||
|
return LongDateFormat.allInstances;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static all(): Record<DateFormatTypeName, LongDateFormat> {
|
||||||
|
return LongDateFormat.allInstancesByTypeName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static valueOf(type: number): LongDateFormat {
|
||||||
|
return LongDateFormat.allInstancesByType[type];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class ShortDateFormat implements DateFormat {
|
||||||
|
private static readonly allInstances: ShortDateFormat[] = [];
|
||||||
|
private static readonly allInstancesByType: Record<number, ShortDateFormat> = {};
|
||||||
|
private static readonly allInstancesByTypeName: Record<string, ShortDateFormat> = {};
|
||||||
|
|
||||||
|
public static readonly YYYYMMDD = new ShortDateFormat(1, 'YYYYMMDD', 'yyyy_mm_dd', true);
|
||||||
|
public static readonly MMDDYYYY = new ShortDateFormat(2, 'MMDDYYYY', 'mm_dd_yyyy', false);
|
||||||
|
public static readonly DDMMYYYY = new ShortDateFormat(3, 'DDMMYYYY', 'dd_mm_yyyy', false);
|
||||||
|
|
||||||
|
public static readonly Default = ShortDateFormat.YYYYMMDD;
|
||||||
|
|
||||||
|
public readonly type: number;
|
||||||
|
public readonly typeName: string;
|
||||||
|
public readonly key: string;
|
||||||
|
public readonly isMonthAfterYear: boolean;
|
||||||
|
|
||||||
|
private constructor(type: number, typeName: DateFormatTypeName, key: string, isMonthAfterYear: boolean) {
|
||||||
|
this.type = type;
|
||||||
|
this.typeName = typeName;
|
||||||
|
this.key = key;
|
||||||
|
this.isMonthAfterYear = isMonthAfterYear;
|
||||||
|
|
||||||
|
ShortDateFormat.allInstances.push(this);
|
||||||
|
ShortDateFormat.allInstancesByType[type] = this;
|
||||||
|
ShortDateFormat.allInstancesByTypeName[typeName] = this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static values(): ShortDateFormat[] {
|
||||||
|
return ShortDateFormat.allInstances;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static all(): Record<DateFormatTypeName, ShortDateFormat> {
|
||||||
|
return ShortDateFormat.allInstancesByTypeName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static valueOf(type: number): ShortDateFormat {
|
||||||
|
return ShortDateFormat.allInstancesByType[type];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TimeFormat {
|
||||||
|
readonly type: number;
|
||||||
|
readonly key: string;
|
||||||
|
readonly is24HourFormat: boolean;
|
||||||
|
readonly isMeridiemIndicatorFirst: boolean | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type LongTimeFormatTypeName = 'HHMMSS' | 'AHHMMSS' | 'HHMMSSA';
|
||||||
|
|
||||||
|
export class LongTimeFormat implements TimeFormat {
|
||||||
|
private static readonly allInstances: LongTimeFormat[] = [];
|
||||||
|
private static readonly allInstancesByType: Record<number, LongTimeFormat> = {};
|
||||||
|
private static readonly allInstancesByTypeName: Record<string, LongTimeFormat> = {};
|
||||||
|
|
||||||
|
public static readonly HHMMSS = new LongTimeFormat(1, 'HHMMSS', 'hh_mm_ss', true, null);
|
||||||
|
public static readonly AHHMMSS = new LongTimeFormat(2, 'AHHMMSS', 'a_hh_mm_ss', false, true);
|
||||||
|
public static readonly HHMMSSA = new LongTimeFormat(3, 'HHMMSSA', 'hh_mm_ss_a', false, false);
|
||||||
|
|
||||||
|
public static readonly Default = LongTimeFormat.HHMMSS;
|
||||||
|
|
||||||
|
public readonly type: number;
|
||||||
|
public readonly typeName: string;
|
||||||
|
public readonly key: string;
|
||||||
|
public readonly is24HourFormat: boolean;
|
||||||
|
public readonly isMeridiemIndicatorFirst: boolean | null;
|
||||||
|
|
||||||
|
private constructor(type: number, typeName: LongTimeFormatTypeName, key: string, is24HourFormat: boolean, isMeridiemIndicatorFirst: boolean | null) {
|
||||||
|
this.type = type;
|
||||||
|
this.typeName = typeName;
|
||||||
|
this.key = key;
|
||||||
|
this.is24HourFormat = is24HourFormat;
|
||||||
|
this.isMeridiemIndicatorFirst = isMeridiemIndicatorFirst;
|
||||||
|
|
||||||
|
LongTimeFormat.allInstances.push(this);
|
||||||
|
LongTimeFormat.allInstancesByType[type] = this;
|
||||||
|
LongTimeFormat.allInstancesByTypeName[typeName] = this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static values(): LongTimeFormat[] {
|
||||||
|
return LongTimeFormat.allInstances;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static all(): Record<LongTimeFormatTypeName, LongTimeFormat> {
|
||||||
|
return LongTimeFormat.allInstancesByTypeName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static valueOf(type: number): LongTimeFormat {
|
||||||
|
return LongTimeFormat.allInstancesByType[type];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ShortTimeFormatTypeName = 'HHMM' | 'AHHMM' | 'HHMMA';
|
||||||
|
|
||||||
|
export class ShortTimeFormat implements TimeFormat {
|
||||||
|
private static readonly allInstances: ShortTimeFormat[] = [];
|
||||||
|
private static readonly allInstancesByType: Record<number, ShortTimeFormat> = {};
|
||||||
|
private static readonly allInstancesByTypeName: Record<string, ShortTimeFormat> = {};
|
||||||
|
|
||||||
|
public static readonly HHMM = new ShortTimeFormat(1, 'HHMM', 'hh_mm', true, null);
|
||||||
|
public static readonly AHHMM = new ShortTimeFormat(2, 'AHHMM', 'a_hh_mm', false, true);
|
||||||
|
public static readonly HHMMA = new ShortTimeFormat(3, 'HHMMA', 'hh_mm_a', false, false);
|
||||||
|
|
||||||
|
public static readonly Default = ShortTimeFormat.HHMM;
|
||||||
|
|
||||||
|
public readonly type: number;
|
||||||
|
public readonly typeName: string;
|
||||||
|
public readonly key: string;
|
||||||
|
public readonly is24HourFormat: boolean;
|
||||||
|
public readonly isMeridiemIndicatorFirst: boolean | null;
|
||||||
|
|
||||||
|
private constructor(type: number, typeName: ShortTimeFormatTypeName, key: string, is24HourFormat: boolean, isMeridiemIndicatorFirst: boolean | null) {
|
||||||
|
this.type = type;
|
||||||
|
this.typeName = typeName;
|
||||||
|
this.key = key;
|
||||||
|
this.is24HourFormat = is24HourFormat;
|
||||||
|
this.isMeridiemIndicatorFirst = isMeridiemIndicatorFirst;
|
||||||
|
|
||||||
|
ShortTimeFormat.allInstances.push(this);
|
||||||
|
ShortTimeFormat.allInstancesByType[type] = this;
|
||||||
|
ShortTimeFormat.allInstancesByTypeName[typeName] = this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static values(): ShortTimeFormat[] {
|
||||||
|
return ShortTimeFormat.allInstances;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static all(): Record<ShortTimeFormatTypeName, ShortTimeFormat> {
|
||||||
|
return ShortTimeFormat.allInstancesByTypeName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static valueOf(type: number): ShortTimeFormat {
|
||||||
|
return ShortTimeFormat.allInstancesByType[type];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export enum DateRangeScene {
|
||||||
|
Normal = 0,
|
||||||
|
TrendAnalysis = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
export type DateRangeTypeName = 'All' |
|
||||||
|
'Today' | 'Yesterday' |
|
||||||
|
'LastSevenDays' | 'LastThirtyDays' |
|
||||||
|
'ThisWeek' | 'LastWeek' |
|
||||||
|
'ThisMonth' | 'LastMonth' |
|
||||||
|
'ThisYear' | 'LastYear' |
|
||||||
|
'PreviousBillingCycle' | 'CurrentBillingCycle' |
|
||||||
|
'RecentTwelveMonths' | 'RecentTwentyFourMonths' | 'RecentThirtySixMonths' |
|
||||||
|
'RecentTwoYears' | 'RecentThreeYears' | 'RecentFiveYears' |
|
||||||
|
'Custom';
|
||||||
|
|
||||||
|
export class DateRange implements TypeAndName {
|
||||||
|
private static readonly allInstances: DateRange[] = [];
|
||||||
|
private static readonly allInstancesByType: Record<number, DateRange> = {};
|
||||||
|
private static readonly allInstancesByTypeName: Record<string, DateRange> = {};
|
||||||
|
|
||||||
|
// All date range
|
||||||
|
public static readonly All = new DateRange(0, 'All', 'All', false, DateRangeScene.Normal, DateRangeScene.TrendAnalysis);
|
||||||
|
|
||||||
|
// Date ranges for normal scene only
|
||||||
|
public static readonly Today = new DateRange(1, 'Today', 'Today', false, DateRangeScene.Normal);
|
||||||
|
public static readonly Yesterday = new DateRange(2, 'Yesterday', 'Yesterday', false, DateRangeScene.Normal);
|
||||||
|
public static readonly LastSevenDays = new DateRange(3, 'LastSevenDays', 'Recent 7 days', false, DateRangeScene.Normal);
|
||||||
|
public static readonly LastThirtyDays = new DateRange(4, 'LastThirtyDays', 'Recent 30 days', false, DateRangeScene.Normal);
|
||||||
|
public static readonly ThisWeek = new DateRange(5, 'ThisWeek', 'This week', false, DateRangeScene.Normal);
|
||||||
|
public static readonly LastWeek = new DateRange(6, 'LastWeek', 'Last week', false, DateRangeScene.Normal);
|
||||||
|
public static readonly ThisMonth = new DateRange(7, 'ThisMonth', 'This month', false, DateRangeScene.Normal);
|
||||||
|
public static readonly LastMonth = new DateRange(8, 'LastMonth', 'Last month', false, DateRangeScene.Normal);
|
||||||
|
|
||||||
|
// Date ranges for normal and trend analysis scene
|
||||||
|
public static readonly ThisYear = new DateRange(9, 'ThisYear', 'This year', false, DateRangeScene.Normal, DateRangeScene.TrendAnalysis);
|
||||||
|
public static readonly LastYear = new DateRange(10, 'LastYear', 'Last year', false, DateRangeScene.Normal, DateRangeScene.TrendAnalysis);
|
||||||
|
|
||||||
|
// Billing cycle date ranges for normal scene only
|
||||||
|
public static readonly PreviousBillingCycle = new DateRange(51, 'PreviousBillingCycle', 'Previous Billing Cycle', true, DateRangeScene.Normal);
|
||||||
|
public static readonly CurrentBillingCycle = new DateRange(52, 'CurrentBillingCycle', 'Current Billing Cycle', true, DateRangeScene.Normal);
|
||||||
|
|
||||||
|
// Date ranges for trend analysis scene only
|
||||||
|
public static readonly RecentTwelveMonths = new DateRange(101, 'RecentTwelveMonths', 'Recent 12 months', false, DateRangeScene.TrendAnalysis);
|
||||||
|
public static readonly RecentTwentyFourMonths = new DateRange(102, 'RecentTwentyFourMonths', 'Recent 24 months', false, DateRangeScene.TrendAnalysis);
|
||||||
|
public static readonly RecentThirtySixMonths = new DateRange(103, 'RecentThirtySixMonths', 'Recent 36 months', false, DateRangeScene.TrendAnalysis);
|
||||||
|
public static readonly RecentTwoYears = new DateRange(104, 'RecentTwoYears', 'Recent 2 years', false, DateRangeScene.TrendAnalysis);
|
||||||
|
public static readonly RecentThreeYears = new DateRange(105, 'RecentThreeYears', 'Recent 3 years', false, DateRangeScene.TrendAnalysis);
|
||||||
|
public static readonly RecentFiveYears = new DateRange(106, 'RecentFiveYears', 'Recent 5 years', false, DateRangeScene.TrendAnalysis);
|
||||||
|
|
||||||
|
// Custom date range
|
||||||
|
public static readonly Custom = new DateRange(255, 'Custom', 'Custom Date', false, DateRangeScene.Normal, DateRangeScene.TrendAnalysis);
|
||||||
|
|
||||||
|
public readonly type: number;
|
||||||
|
public readonly name: string;
|
||||||
|
public readonly isBillingCycle: boolean;
|
||||||
|
private readonly availableScenes: Record<number, boolean>;
|
||||||
|
|
||||||
|
private constructor(type: number, typeName: DateRangeTypeName, name: string, isBillingCycle: boolean, ...availableScenes: DateRangeScene[]) {
|
||||||
|
this.type = type;
|
||||||
|
this.name = name;
|
||||||
|
this.isBillingCycle = isBillingCycle;
|
||||||
|
this.availableScenes = {};
|
||||||
|
|
||||||
|
if (availableScenes) {
|
||||||
|
for (const scene of availableScenes) {
|
||||||
|
this.availableScenes[scene] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DateRange.allInstances.push(this);
|
||||||
|
DateRange.allInstancesByType[type] = this;
|
||||||
|
DateRange.allInstancesByTypeName[typeName] = this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public isAvailableForScene(scene: DateRangeScene): boolean {
|
||||||
|
return this.availableScenes[scene] || false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static values(): DateRange[] {
|
||||||
|
return DateRange.allInstances;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static all(): Record<DateRangeTypeName, DateRange> {
|
||||||
|
return DateRange.allInstancesByTypeName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static valueOf(type: number): DateRange {
|
||||||
|
return DateRange.allInstancesByType[type];
|
||||||
|
}
|
||||||
|
|
||||||
|
public static isAvailableForScene(type: number, scene: DateRangeScene): boolean {
|
||||||
|
const dateRange = DateRange.allInstancesByType[type];
|
||||||
|
return dateRange?.isAvailableForScene(scene) || false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static isBillingCycle(type: number): boolean {
|
||||||
|
const dateRange = DateRange.allInstancesByType[type];
|
||||||
|
return dateRange?.isBillingCycle || false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
+54
-57
@@ -1,6 +1,6 @@
|
|||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
|
|
||||||
import dateTimeConstants from '@/consts/datetime.js';
|
import { Month, WeekDay, MeridiemIndicator, DateRangeScene, DateRange, LANGUAGE_DEFAULT_DATE_TIME_FORMAT_VALUE } from '@/core/datetime.ts';
|
||||||
import { isObject, isString, isNumber } from './common.ts';
|
import { isObject, isString, isNumber } from './common.ts';
|
||||||
|
|
||||||
export function isYearMonthValid(year, month) {
|
export function isYearMonthValid(year, month) {
|
||||||
@@ -198,16 +198,16 @@ export function getDay(date) {
|
|||||||
|
|
||||||
export function getDayOfWeekName(date) {
|
export function getDayOfWeekName(date) {
|
||||||
const dayOfWeek = moment(date).days();
|
const dayOfWeek = moment(date).days();
|
||||||
return dateTimeConstants.allWeekDaysArray[dayOfWeek].name;
|
return WeekDay.valueOf(dayOfWeek).name;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getMonthName(date) {
|
export function getMonthName(date) {
|
||||||
const dayOfWeek = moment(date).month();
|
const month = moment(date).month();
|
||||||
return dateTimeConstants.allMonthsArray[dayOfWeek];
|
return Month.valueOf(month + 1).name;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getAMOrPM(hour) {
|
export function getAMOrPM(hour) {
|
||||||
return isPM(hour) ? dateTimeConstants.allMeridiemIndicators.PM : dateTimeConstants.allMeridiemIndicators.AM;
|
return isPM(hour) ? MeridiemIndicator.PM.name : MeridiemIndicator.AM.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getUnixTimeBeforeUnixTime(unixTime, amount, unit) {
|
export function getUnixTimeBeforeUnixTime(unixTime, amount, unit) {
|
||||||
@@ -429,9 +429,9 @@ export function getAllMonthsStartAndEndUnixTimes(startYearMonth, endYearMonth) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getDateTimeFormatType(allFormatMap, allFormatArray, localeDefaultFormatTypeName, systemDefaultFormatType, formatTypeValue) {
|
export function getDateTimeFormatType(allFormatMap, allFormatArray, localeDefaultFormatTypeName, systemDefaultFormatType, formatTypeValue) {
|
||||||
if (formatTypeValue > dateTimeConstants.defaultDateTimeFormatValue && allFormatArray[formatTypeValue - 1] && allFormatArray[formatTypeValue - 1].key) {
|
if (formatTypeValue > LANGUAGE_DEFAULT_DATE_TIME_FORMAT_VALUE && allFormatArray[formatTypeValue - 1] && allFormatArray[formatTypeValue - 1].key) {
|
||||||
return allFormatArray[formatTypeValue - 1];
|
return allFormatArray[formatTypeValue - 1];
|
||||||
} else if (formatTypeValue === dateTimeConstants.defaultDateTimeFormatValue && allFormatMap[localeDefaultFormatTypeName] && allFormatMap[localeDefaultFormatTypeName].key) {
|
} else if (formatTypeValue === LANGUAGE_DEFAULT_DATE_TIME_FORMAT_VALUE && allFormatMap[localeDefaultFormatTypeName] && allFormatMap[localeDefaultFormatTypeName].key) {
|
||||||
return allFormatMap[localeDefaultFormatTypeName];
|
return allFormatMap[localeDefaultFormatTypeName];
|
||||||
} else {
|
} else {
|
||||||
return systemDefaultFormatType;
|
return systemDefaultFormatType;
|
||||||
@@ -489,12 +489,12 @@ export function getShiftedDateRangeAndDateType(minTime, maxTime, scale, firstDay
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getShiftedDateRangeAndDateTypeForBillingCycle(minTime, maxTime, scale, firstDayOfWeek, scene, statementDate) {
|
export function getShiftedDateRangeAndDateTypeForBillingCycle(minTime, maxTime, scale, firstDayOfWeek, scene, statementDate) {
|
||||||
if (!statementDate || !dateTimeConstants.allDateRanges.PreviousBillingCycle.availableScenes[scene] || !dateTimeConstants.allDateRanges.CurrentBillingCycle.availableScenes[scene]) {
|
if (!statementDate || !DateRange.PreviousBillingCycle.isAvailableForScene(scene) || !DateRange.CurrentBillingCycle.isAvailableForScene(scene)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
const previousBillingCycleRange = getDateRangeByBillingCycleDateType(dateTimeConstants.allDateRanges.PreviousBillingCycle.type, firstDayOfWeek, statementDate);
|
const previousBillingCycleRange = getDateRangeByBillingCycleDateType(DateRange.PreviousBillingCycle.type, firstDayOfWeek, statementDate);
|
||||||
const currentBillingCycleRange = getDateRangeByBillingCycleDateType(dateTimeConstants.allDateRanges.CurrentBillingCycle.type, firstDayOfWeek, statementDate);
|
const currentBillingCycleRange = getDateRangeByBillingCycleDateType(DateRange.CurrentBillingCycle.type, firstDayOfWeek, statementDate);
|
||||||
|
|
||||||
if (previousBillingCycleRange && getUnixTimeBeforeUnixTime(previousBillingCycleRange.maxTime, 1, 'months') === maxTime && getUnixTimeBeforeUnixTime(previousBillingCycleRange.minTime, 1, 'months') === minTime && scale === 1) {
|
if (previousBillingCycleRange && getUnixTimeBeforeUnixTime(previousBillingCycleRange.maxTime, 1, 'months') === maxTime && getUnixTimeBeforeUnixTime(previousBillingCycleRange.minTime, 1, 'months') === minTime && scale === 1) {
|
||||||
return previousBillingCycleRange;
|
return previousBillingCycleRange;
|
||||||
@@ -510,23 +510,20 @@ export function getShiftedDateRangeAndDateTypeForBillingCycle(minTime, maxTime,
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getDateTypeByDateRange(minTime, maxTime, firstDayOfWeek, scene) {
|
export function getDateTypeByDateRange(minTime, maxTime, firstDayOfWeek, scene) {
|
||||||
let newDateType = dateTimeConstants.allDateRanges.Custom.type;
|
const allDateRanges = DateRange.values();
|
||||||
|
let newDateType = DateRange.Custom.type;
|
||||||
|
|
||||||
for (let dateRangeField in dateTimeConstants.allDateRanges) {
|
for (let i = 0; i < allDateRanges.length; i++) {
|
||||||
if (!Object.prototype.hasOwnProperty.call(dateTimeConstants.allDateRanges, dateRangeField)) {
|
const dateRange = allDateRanges[i];
|
||||||
|
|
||||||
|
if (!dateRange.isAvailableForScene(scene)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
const dateRangeType = dateTimeConstants.allDateRanges[dateRangeField];
|
const range = getDateRangeByDateType(dateRange.type, firstDayOfWeek);
|
||||||
|
|
||||||
if (!dateRangeType.availableScenes[scene]) {
|
if (range && range.minTime === minTime && range.maxTime === maxTime) {
|
||||||
continue;
|
newDateType = dateRange.type;
|
||||||
}
|
|
||||||
|
|
||||||
const dateRange = getDateRangeByDateType(dateRangeType.type, firstDayOfWeek);
|
|
||||||
|
|
||||||
if (dateRange && dateRange.minTime === minTime && dateRange.maxTime === maxTime) {
|
|
||||||
newDateType = dateRangeType.type;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -535,12 +532,12 @@ export function getDateTypeByDateRange(minTime, maxTime, firstDayOfWeek, scene)
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getDateTypeByBillingCycleDateRange(minTime, maxTime, firstDayOfWeek, scene, statementDate) {
|
export function getDateTypeByBillingCycleDateRange(minTime, maxTime, firstDayOfWeek, scene, statementDate) {
|
||||||
if (!statementDate || !dateTimeConstants.allDateRanges.PreviousBillingCycle.availableScenes[scene] || !dateTimeConstants.allDateRanges.CurrentBillingCycle.availableScenes[scene]) {
|
if (!statementDate || !DateRange.PreviousBillingCycle.isAvailableForScene(scene) || !DateRange.CurrentBillingCycle.isAvailableForScene(scene)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
const previousBillingCycleRange = getDateRangeByBillingCycleDateType(dateTimeConstants.allDateRanges.PreviousBillingCycle.type, firstDayOfWeek, statementDate);
|
const previousBillingCycleRange = getDateRangeByBillingCycleDateType(DateRange.PreviousBillingCycle.type, firstDayOfWeek, statementDate);
|
||||||
const currentBillingCycleRange = getDateRangeByBillingCycleDateType(dateTimeConstants.allDateRanges.CurrentBillingCycle.type, firstDayOfWeek, statementDate);
|
const currentBillingCycleRange = getDateRangeByBillingCycleDateType(DateRange.CurrentBillingCycle.type, firstDayOfWeek, statementDate);
|
||||||
|
|
||||||
if (previousBillingCycleRange && previousBillingCycleRange.maxTime === maxTime && previousBillingCycleRange.minTime === minTime) {
|
if (previousBillingCycleRange && previousBillingCycleRange.maxTime === maxTime && previousBillingCycleRange.minTime === minTime) {
|
||||||
return previousBillingCycleRange.dateType;
|
return previousBillingCycleRange.dateType;
|
||||||
@@ -555,55 +552,55 @@ export function getDateRangeByDateType(dateType, firstDayOfWeek) {
|
|||||||
let maxTime = 0;
|
let maxTime = 0;
|
||||||
let minTime = 0;
|
let minTime = 0;
|
||||||
|
|
||||||
if (dateType === dateTimeConstants.allDateRanges.All.type) { // All
|
if (dateType === DateRange.All.type) { // All
|
||||||
maxTime = 0;
|
maxTime = 0;
|
||||||
minTime = 0;
|
minTime = 0;
|
||||||
} else if (dateType === dateTimeConstants.allDateRanges.Today.type) { // Today
|
} else if (dateType === DateRange.Today.type) { // Today
|
||||||
maxTime = getTodayLastUnixTime();
|
maxTime = getTodayLastUnixTime();
|
||||||
minTime = getTodayFirstUnixTime();
|
minTime = getTodayFirstUnixTime();
|
||||||
} else if (dateType === dateTimeConstants.allDateRanges.Yesterday.type) { // Yesterday
|
} else if (dateType === DateRange.Yesterday.type) { // Yesterday
|
||||||
maxTime = getUnixTimeBeforeUnixTime(getTodayLastUnixTime(), 1, 'days');
|
maxTime = getUnixTimeBeforeUnixTime(getTodayLastUnixTime(), 1, 'days');
|
||||||
minTime = getUnixTimeBeforeUnixTime(getTodayFirstUnixTime(), 1, 'days');
|
minTime = getUnixTimeBeforeUnixTime(getTodayFirstUnixTime(), 1, 'days');
|
||||||
} else if (dateType === dateTimeConstants.allDateRanges.LastSevenDays.type) { // Last 7 days
|
} else if (dateType === DateRange.LastSevenDays.type) { // Last 7 days
|
||||||
maxTime = getTodayLastUnixTime();
|
maxTime = getTodayLastUnixTime();
|
||||||
minTime = getUnixTimeBeforeUnixTime(getTodayFirstUnixTime(), 6, 'days');
|
minTime = getUnixTimeBeforeUnixTime(getTodayFirstUnixTime(), 6, 'days');
|
||||||
} else if (dateType === dateTimeConstants.allDateRanges.LastThirtyDays.type) { // Last 30 days
|
} else if (dateType === DateRange.LastThirtyDays.type) { // Last 30 days
|
||||||
maxTime = getTodayLastUnixTime();
|
maxTime = getTodayLastUnixTime();
|
||||||
minTime = getUnixTimeBeforeUnixTime(getTodayFirstUnixTime(), 29, 'days');
|
minTime = getUnixTimeBeforeUnixTime(getTodayFirstUnixTime(), 29, 'days');
|
||||||
} else if (dateType === dateTimeConstants.allDateRanges.ThisWeek.type) { // This week
|
} else if (dateType === DateRange.ThisWeek.type) { // This week
|
||||||
maxTime = getThisWeekLastUnixTime(firstDayOfWeek);
|
maxTime = getThisWeekLastUnixTime(firstDayOfWeek);
|
||||||
minTime = getThisWeekFirstUnixTime(firstDayOfWeek);
|
minTime = getThisWeekFirstUnixTime(firstDayOfWeek);
|
||||||
} else if (dateType === dateTimeConstants.allDateRanges.LastWeek.type) { // Last week
|
} else if (dateType === DateRange.LastWeek.type) { // Last week
|
||||||
maxTime = getUnixTimeBeforeUnixTime(getThisWeekLastUnixTime(firstDayOfWeek), 7, 'days');
|
maxTime = getUnixTimeBeforeUnixTime(getThisWeekLastUnixTime(firstDayOfWeek), 7, 'days');
|
||||||
minTime = getUnixTimeBeforeUnixTime(getThisWeekFirstUnixTime(firstDayOfWeek), 7, 'days');
|
minTime = getUnixTimeBeforeUnixTime(getThisWeekFirstUnixTime(firstDayOfWeek), 7, 'days');
|
||||||
} else if (dateType === dateTimeConstants.allDateRanges.ThisMonth.type) { // This month
|
} else if (dateType === DateRange.ThisMonth.type) { // This month
|
||||||
maxTime = getThisMonthLastUnixTime();
|
maxTime = getThisMonthLastUnixTime();
|
||||||
minTime = getThisMonthFirstUnixTime();
|
minTime = getThisMonthFirstUnixTime();
|
||||||
} else if (dateType === dateTimeConstants.allDateRanges.LastMonth.type) { // Last month
|
} else if (dateType === DateRange.LastMonth.type) { // Last month
|
||||||
maxTime = getUnixTimeBeforeUnixTime(getThisMonthFirstUnixTime(), 1, 'seconds');
|
maxTime = getUnixTimeBeforeUnixTime(getThisMonthFirstUnixTime(), 1, 'seconds');
|
||||||
minTime = getUnixTimeBeforeUnixTime(getThisMonthFirstUnixTime(), 1, 'months');
|
minTime = getUnixTimeBeforeUnixTime(getThisMonthFirstUnixTime(), 1, 'months');
|
||||||
} else if (dateType === dateTimeConstants.allDateRanges.ThisYear.type) { // This year
|
} else if (dateType === DateRange.ThisYear.type) { // This year
|
||||||
maxTime = getThisYearLastUnixTime();
|
maxTime = getThisYearLastUnixTime();
|
||||||
minTime = getThisYearFirstUnixTime();
|
minTime = getThisYearFirstUnixTime();
|
||||||
} else if (dateType === dateTimeConstants.allDateRanges.LastYear.type) { // Last year
|
} else if (dateType === DateRange.LastYear.type) { // Last year
|
||||||
maxTime = getUnixTimeBeforeUnixTime(getThisYearLastUnixTime(), 1, 'years');
|
maxTime = getUnixTimeBeforeUnixTime(getThisYearLastUnixTime(), 1, 'years');
|
||||||
minTime = getUnixTimeBeforeUnixTime(getThisYearFirstUnixTime(), 1, 'years');
|
minTime = getUnixTimeBeforeUnixTime(getThisYearFirstUnixTime(), 1, 'years');
|
||||||
} else if (dateType === dateTimeConstants.allDateRanges.RecentTwelveMonths.type) { // Recent 12 months
|
} else if (dateType === DateRange.RecentTwelveMonths.type) { // Recent 12 months
|
||||||
maxTime = getThisMonthLastUnixTime();
|
maxTime = getThisMonthLastUnixTime();
|
||||||
minTime = getUnixTimeBeforeUnixTime(getThisMonthFirstUnixTime(), 11, 'months');
|
minTime = getUnixTimeBeforeUnixTime(getThisMonthFirstUnixTime(), 11, 'months');
|
||||||
} else if (dateType === dateTimeConstants.allDateRanges.RecentTwentyFourMonths.type) { // Recent 24 months
|
} else if (dateType === DateRange.RecentTwentyFourMonths.type) { // Recent 24 months
|
||||||
maxTime = getThisMonthLastUnixTime();
|
maxTime = getThisMonthLastUnixTime();
|
||||||
minTime = getUnixTimeBeforeUnixTime(getThisMonthFirstUnixTime(), 23, 'months');
|
minTime = getUnixTimeBeforeUnixTime(getThisMonthFirstUnixTime(), 23, 'months');
|
||||||
} else if (dateType === dateTimeConstants.allDateRanges.RecentThirtySixMonths.type) { // Recent 36 months
|
} else if (dateType === DateRange.RecentThirtySixMonths.type) { // Recent 36 months
|
||||||
maxTime = getThisMonthLastUnixTime();
|
maxTime = getThisMonthLastUnixTime();
|
||||||
minTime = getUnixTimeBeforeUnixTime(getThisMonthFirstUnixTime(), 35, 'months');
|
minTime = getUnixTimeBeforeUnixTime(getThisMonthFirstUnixTime(), 35, 'months');
|
||||||
} else if (dateType === dateTimeConstants.allDateRanges.RecentTwoYears.type) { // Recent 2 years
|
} else if (dateType === DateRange.RecentTwoYears.type) { // Recent 2 years
|
||||||
maxTime = getThisYearLastUnixTime();
|
maxTime = getThisYearLastUnixTime();
|
||||||
minTime = getUnixTimeBeforeUnixTime(getThisYearFirstUnixTime(), 1, 'years');
|
minTime = getUnixTimeBeforeUnixTime(getThisYearFirstUnixTime(), 1, 'years');
|
||||||
} else if (dateType === dateTimeConstants.allDateRanges.RecentThreeYears.type) { // Recent 3 years
|
} else if (dateType === DateRange.RecentThreeYears.type) { // Recent 3 years
|
||||||
maxTime = getThisYearLastUnixTime();
|
maxTime = getThisYearLastUnixTime();
|
||||||
minTime = getUnixTimeBeforeUnixTime(getThisYearFirstUnixTime(), 2, 'years');
|
minTime = getUnixTimeBeforeUnixTime(getThisYearFirstUnixTime(), 2, 'years');
|
||||||
} else if (dateType === dateTimeConstants.allDateRanges.RecentFiveYears.type) { // Recent 5 years
|
} else if (dateType === DateRange.RecentFiveYears.type) { // Recent 5 years
|
||||||
maxTime = getThisYearLastUnixTime();
|
maxTime = getThisYearLastUnixTime();
|
||||||
minTime = getUnixTimeBeforeUnixTime(getThisYearFirstUnixTime(), 4, 'years');
|
minTime = getUnixTimeBeforeUnixTime(getThisYearFirstUnixTime(), 4, 'years');
|
||||||
} else {
|
} else {
|
||||||
@@ -621,7 +618,7 @@ export function getDateRangeByBillingCycleDateType(dateType, firstDayOfWeek, sta
|
|||||||
let maxTime = 0;
|
let maxTime = 0;
|
||||||
let minTime = 0;
|
let minTime = 0;
|
||||||
|
|
||||||
if (dateType === dateTimeConstants.allDateRanges.PreviousBillingCycle.type || dateType === dateTimeConstants.allDateRanges.CurrentBillingCycle.type) { // Previous Billing Cycle | Current Billing Cycle
|
if (dateType === DateRange.PreviousBillingCycle.type || dateType === DateRange.CurrentBillingCycle.type) { // Previous Billing Cycle | Current Billing Cycle
|
||||||
if (statementDate) {
|
if (statementDate) {
|
||||||
if (getCurrentDay() <= statementDate) {
|
if (getCurrentDay() <= statementDate) {
|
||||||
maxTime = getThisMonthSpecifiedDayLastUnixTime(statementDate);
|
maxTime = getThisMonthSpecifiedDayLastUnixTime(statementDate);
|
||||||
@@ -631,17 +628,17 @@ export function getDateRangeByBillingCycleDateType(dateType, firstDayOfWeek, sta
|
|||||||
minTime = getUnixTimeAfterUnixTime(getThisMonthSpecifiedDayFirstUnixTime(statementDate), 1, 'days');
|
minTime = getUnixTimeAfterUnixTime(getThisMonthSpecifiedDayFirstUnixTime(statementDate), 1, 'days');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dateType === dateTimeConstants.allDateRanges.PreviousBillingCycle.type) {
|
if (dateType === DateRange.PreviousBillingCycle.type) {
|
||||||
maxTime = getUnixTimeBeforeUnixTime(maxTime, 1, 'months');
|
maxTime = getUnixTimeBeforeUnixTime(maxTime, 1, 'months');
|
||||||
minTime = getUnixTimeBeforeUnixTime(minTime, 1, 'months');
|
minTime = getUnixTimeBeforeUnixTime(minTime, 1, 'months');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
let fallbackDateRange = null;
|
let fallbackDateRange = null;
|
||||||
|
|
||||||
if (dateType === dateTimeConstants.allDateRanges.CurrentBillingCycle.type) { // same as This Month
|
if (dateType === DateRange.CurrentBillingCycle.type) { // same as This Month
|
||||||
fallbackDateRange = getDateRangeByDateType(dateTimeConstants.allDateRanges.ThisMonth.type, firstDayOfWeek);
|
fallbackDateRange = getDateRangeByDateType(DateRange.ThisMonth.type, firstDayOfWeek);
|
||||||
} else if (dateType === dateTimeConstants.allDateRanges.PreviousBillingCycle.type) { // same as Last Month
|
} else if (dateType === DateRange.PreviousBillingCycle.type) { // same as Last Month
|
||||||
fallbackDateRange = getDateRangeByDateType(dateTimeConstants.allDateRanges.LastMonth.type, firstDayOfWeek);
|
fallbackDateRange = getDateRangeByDateType(DateRange.LastMonth.type, firstDayOfWeek);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fallbackDateRange) {
|
if (fallbackDateRange) {
|
||||||
@@ -672,14 +669,14 @@ export function getRecentMonthDateRanges(monthCount) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let maxTime = getUnixTimeBeforeUnixTime(getUnixTimeAfterUnixTime(minTime, 1, 'months'), 1, 'seconds');
|
let maxTime = getUnixTimeBeforeUnixTime(getUnixTimeAfterUnixTime(minTime, 1, 'months'), 1, 'seconds');
|
||||||
let dateType = dateTimeConstants.allDateRanges.Custom.type;
|
let dateType = DateRange.Custom.type;
|
||||||
let year = getYear(parseDateFromUnixTime(minTime));
|
let year = getYear(parseDateFromUnixTime(minTime));
|
||||||
let month = getMonth(parseDateFromUnixTime(minTime));
|
let month = getMonth(parseDateFromUnixTime(minTime));
|
||||||
|
|
||||||
if (i === 0) {
|
if (i === 0) {
|
||||||
dateType = dateTimeConstants.allDateRanges.ThisMonth.type;
|
dateType = DateRange.ThisMonth.type;
|
||||||
} else if (i === 1) {
|
} else if (i === 1) {
|
||||||
dateType = dateTimeConstants.allDateRanges.LastMonth.type;
|
dateType = DateRange.LastMonth.type;
|
||||||
}
|
}
|
||||||
|
|
||||||
recentDateRanges.push({
|
recentDateRanges.push({
|
||||||
@@ -707,17 +704,17 @@ export function getRecentDateRangeTypeByDateType(allRecentMonthDateRanges, dateT
|
|||||||
export function getRecentDateRangeType(allRecentMonthDateRanges, dateType, minTime, maxTime, firstDayOfWeek) {
|
export function getRecentDateRangeType(allRecentMonthDateRanges, dateType, minTime, maxTime, firstDayOfWeek) {
|
||||||
let dateRange = getDateRangeByDateType(dateType, firstDayOfWeek);
|
let dateRange = getDateRangeByDateType(dateType, firstDayOfWeek);
|
||||||
|
|
||||||
if (dateRange && dateRange.dateType === dateTimeConstants.allDateRanges.All.type) {
|
if (dateRange && dateRange.dateType === DateRange.All.type) {
|
||||||
return getRecentDateRangeTypeByDateType(allRecentMonthDateRanges, dateTimeConstants.allDateRanges.All.type);
|
return getRecentDateRangeTypeByDateType(allRecentMonthDateRanges, DateRange.All.type);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!dateRange && (!maxTime || !minTime)) {
|
if (!dateRange && (!maxTime || !minTime)) {
|
||||||
return getRecentDateRangeTypeByDateType(allRecentMonthDateRanges, dateTimeConstants.allDateRanges.Custom.type);
|
return getRecentDateRangeTypeByDateType(allRecentMonthDateRanges, DateRange.Custom.type);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!dateRange) {
|
if (!dateRange) {
|
||||||
dateRange = {
|
dateRange = {
|
||||||
dateType: dateTimeConstants.allDateRanges.Custom.type,
|
dateType: DateRange.Custom.type,
|
||||||
maxTime: maxTime,
|
maxTime: maxTime,
|
||||||
minTime: minTime
|
minTime: minTime
|
||||||
};
|
};
|
||||||
@@ -731,7 +728,7 @@ export function getRecentDateRangeType(allRecentMonthDateRanges, dateType, minTi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return getRecentDateRangeTypeByDateType(allRecentMonthDateRanges, dateTimeConstants.allDateRanges.Custom.type);
|
return getRecentDateRangeTypeByDateType(allRecentMonthDateRanges, DateRange.Custom.type);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getTimeValues(date, is24Hour, isMeridiemIndicatorFirst) {
|
export function getTimeValues(date, is24Hour, isMeridiemIndicatorFirst) {
|
||||||
@@ -779,7 +776,7 @@ export function getCombinedDateAndTimeValues(date, timeValues, is24Hour, isMerid
|
|||||||
hours = 0;
|
hours = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (meridiemIndicator === dateTimeConstants.allMeridiemIndicators.PM) {
|
if (meridiemIndicator === MeridiemIndicator.PM.name) {
|
||||||
hours += 12;
|
hours += 12;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+113
-113
@@ -2,6 +2,7 @@ import moment from 'moment-timezone';
|
|||||||
|
|
||||||
import { defaultLanguage, allLanguages } from '@/locales/index.ts';
|
import { defaultLanguage, allLanguages } from '@/locales/index.ts';
|
||||||
|
|
||||||
|
import { Month, WeekDay, MeridiemIndicator, LongDateFormat, ShortDateFormat, LongTimeFormat, ShortTimeFormat, DateRangeScene, DateRange, LANGUAGE_DEFAULT_DATE_TIME_FORMAT_VALUE } from '@/core/datetime.ts';
|
||||||
import { TimezoneTypeForStatistics } from '@/core/timezone.ts';
|
import { TimezoneTypeForStatistics } from '@/core/timezone.ts';
|
||||||
import { CurrencyDisplayType, CurrencySortingType } from '@/core/currency.ts';
|
import { CurrencyDisplayType, CurrencySortingType } from '@/core/currency.ts';
|
||||||
import { PresetAmountColor } from '@/core/color.ts';
|
import { PresetAmountColor } from '@/core/color.ts';
|
||||||
@@ -11,7 +12,6 @@ import { TransactionEditScopeType, TransactionTagFilterType } from '@/core/trans
|
|||||||
import { ScheduledTemplateFrequencyType } from '@/core/template.ts';
|
import { ScheduledTemplateFrequencyType } from '@/core/template.ts';
|
||||||
|
|
||||||
import numeralConstants from '@/consts/numeral.js';
|
import numeralConstants from '@/consts/numeral.js';
|
||||||
import datetimeConstants from '@/consts/datetime.js';
|
|
||||||
import { UTC_TIMEZONE, ALL_TIMEZONES } from '@/consts/timezone.ts';
|
import { UTC_TIMEZONE, ALL_TIMEZONES } from '@/consts/timezone.ts';
|
||||||
import { ALL_CURRENCIES } from '@/consts/currency.ts';
|
import { ALL_CURRENCIES } from '@/consts/currency.ts';
|
||||||
import { SUPPORTED_IMPORT_FILE_TYPES } from '@/consts/file.ts';
|
import { SUPPORTED_IMPORT_FILE_TYPES } from '@/consts/file.ts';
|
||||||
@@ -24,7 +24,6 @@ import {
|
|||||||
isString,
|
isString,
|
||||||
isNumber,
|
isNumber,
|
||||||
isBoolean,
|
isBoolean,
|
||||||
getNameByKeyValue,
|
|
||||||
copyObjectTo,
|
copyObjectTo,
|
||||||
copyArrayTo
|
copyArrayTo
|
||||||
} from './common.ts';
|
} from './common.ts';
|
||||||
@@ -247,90 +246,102 @@ function getCurrencyUnitName(currencyCode, isPlural, translateFn) {
|
|||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
function getAllMeridiemIndicatorNames(translateFn) {
|
function getAllMeridiemIndicators(translateFn) {
|
||||||
const allMeridiemIndicatorNames = [];
|
const allMeridiemIndicators = MeridiemIndicator.values();
|
||||||
|
const meridiemIndicatorNames = [];
|
||||||
|
const localizedMeridiemIndicatorNames = [];
|
||||||
|
|
||||||
for (let i = 0; i < datetimeConstants.allMeridiemIndicatorsArray.length; i++) {
|
for (let i = 0; i < allMeridiemIndicators.length; i++) {
|
||||||
const indicatorName = datetimeConstants.allMeridiemIndicatorsArray[i];
|
const indicator = allMeridiemIndicators[i];
|
||||||
allMeridiemIndicatorNames.push(translateFn(`datetime.${indicatorName}.content`));
|
|
||||||
|
meridiemIndicatorNames.push(indicator.name);
|
||||||
|
localizedMeridiemIndicatorNames.push(translateFn(`datetime.${indicator.name}.content`));
|
||||||
}
|
}
|
||||||
|
|
||||||
return allMeridiemIndicatorNames;
|
return {
|
||||||
|
values: meridiemIndicatorNames,
|
||||||
|
displayValues: localizedMeridiemIndicatorNames
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
function getAllLongMonthNames(translateFn) {
|
function getAllLongMonthNames(translateFn) {
|
||||||
const allMonthNames = [];
|
const ret = [];
|
||||||
|
const allMonths = Month.values();
|
||||||
|
|
||||||
for (let i = 0; i < datetimeConstants.allMonthsArray.length; i++) {
|
for (let i = 0; i < allMonths.length; i++) {
|
||||||
const monthName = datetimeConstants.allMonthsArray[i];
|
const month = allMonths[i];
|
||||||
allMonthNames.push(translateFn(`datetime.${monthName}.long`));
|
ret.push(translateFn(`datetime.${month.name}.long`));
|
||||||
}
|
}
|
||||||
|
|
||||||
return allMonthNames;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getAllShortMonthNames(translateFn) {
|
function getAllShortMonthNames(translateFn) {
|
||||||
const allMonthNames = [];
|
const ret = [];
|
||||||
|
const allMonths = Month.values();
|
||||||
|
|
||||||
for (let i = 0; i < datetimeConstants.allMonthsArray.length; i++) {
|
for (let i = 0; i < allMonths.length; i++) {
|
||||||
const monthName = datetimeConstants.allMonthsArray[i];
|
const month = allMonths[i];
|
||||||
allMonthNames.push(translateFn(`datetime.${monthName}.short`));
|
ret.push(translateFn(`datetime.${month.name}.short`));
|
||||||
}
|
}
|
||||||
|
|
||||||
return allMonthNames;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getAllLongWeekdayNames(translateFn) {
|
function getAllLongWeekdayNames(translateFn) {
|
||||||
const allWeekNames = [];
|
const ret = [];
|
||||||
|
const allWeekDays = WeekDay.values();
|
||||||
|
|
||||||
for (let i = 0; i < datetimeConstants.allWeekDaysArray.length; i++) {
|
for (let i = 0; i < allWeekDays.length; i++) {
|
||||||
const weekDay = datetimeConstants.allWeekDaysArray[i];
|
const weekDay = allWeekDays[i];
|
||||||
allWeekNames.push(translateFn(`datetime.${weekDay.name}.long`));
|
ret.push(translateFn(`datetime.${weekDay.name}.long`));
|
||||||
}
|
}
|
||||||
|
|
||||||
return allWeekNames;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getAllShortWeekdayNames(translateFn) {
|
function getAllShortWeekdayNames(translateFn) {
|
||||||
const allWeekNames = [];
|
const ret = [];
|
||||||
|
const allWeekDays = WeekDay.values();
|
||||||
|
|
||||||
for (let i = 0; i < datetimeConstants.allWeekDaysArray.length; i++) {
|
for (let i = 0; i < allWeekDays.length; i++) {
|
||||||
const weekDay = datetimeConstants.allWeekDaysArray[i];
|
const weekDay = allWeekDays[i];
|
||||||
allWeekNames.push(translateFn(`datetime.${weekDay.name}.short`));
|
ret.push(translateFn(`datetime.${weekDay.name}.short`));
|
||||||
}
|
}
|
||||||
|
|
||||||
return allWeekNames;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getAllMinWeekdayNames(translateFn) {
|
function getAllMinWeekdayNames(translateFn) {
|
||||||
const allWeekNames = [];
|
const ret = [];
|
||||||
|
const allWeekDays = WeekDay.values();
|
||||||
|
|
||||||
for (let i = 0; i < datetimeConstants.allWeekDaysArray.length; i++) {
|
for (let i = 0; i < allWeekDays.length; i++) {
|
||||||
const weekDay = datetimeConstants.allWeekDaysArray[i];
|
const weekDay = allWeekDays[i];
|
||||||
allWeekNames.push(translateFn(`datetime.${weekDay.name}.min`));
|
ret.push(translateFn(`datetime.${weekDay.name}.min`));
|
||||||
}
|
}
|
||||||
|
|
||||||
return allWeekNames;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getAllLongDateFormats(translateFn) {
|
function getAllLongDateFormats(translateFn) {
|
||||||
const defaultLongDateFormatTypeName = translateFn('default.longDateFormat');
|
const defaultLongDateFormatTypeName = translateFn('default.longDateFormat');
|
||||||
return getDateTimeFormats(translateFn, datetimeConstants.allLongDateFormat, datetimeConstants.allLongDateFormatArray, 'format.longDate', defaultLongDateFormatTypeName, datetimeConstants.defaultLongDateFormat);
|
return getDateTimeFormats(translateFn, LongDateFormat.all(), LongDateFormat.values(), 'format.longDate', defaultLongDateFormatTypeName, LongDateFormat.Default);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getAllShortDateFormats(translateFn) {
|
function getAllShortDateFormats(translateFn) {
|
||||||
const defaultShortDateFormatTypeName = translateFn('default.shortDateFormat');
|
const defaultShortDateFormatTypeName = translateFn('default.shortDateFormat');
|
||||||
return getDateTimeFormats(translateFn, datetimeConstants.allShortDateFormat, datetimeConstants.allShortDateFormatArray, 'format.shortDate', defaultShortDateFormatTypeName, datetimeConstants.defaultShortDateFormat);
|
return getDateTimeFormats(translateFn, ShortDateFormat.all(), ShortDateFormat.values(), 'format.shortDate', defaultShortDateFormatTypeName, ShortDateFormat.Default);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getAllLongTimeFormats(translateFn) {
|
function getAllLongTimeFormats(translateFn) {
|
||||||
const defaultLongTimeFormatTypeName = translateFn('default.longTimeFormat');
|
const defaultLongTimeFormatTypeName = translateFn('default.longTimeFormat');
|
||||||
return getDateTimeFormats(translateFn, datetimeConstants.allLongTimeFormat, datetimeConstants.allLongTimeFormatArray, 'format.longTime', defaultLongTimeFormatTypeName, datetimeConstants.defaultLongTimeFormat);
|
return getDateTimeFormats(translateFn, LongTimeFormat.values(), LongTimeFormat.values(), 'format.longTime', defaultLongTimeFormatTypeName, LongTimeFormat.Default);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getAllShortTimeFormats(translateFn) {
|
function getAllShortTimeFormats(translateFn) {
|
||||||
const defaultShortTimeFormatTypeName = translateFn('default.shortTimeFormat');
|
const defaultShortTimeFormatTypeName = translateFn('default.shortTimeFormat');
|
||||||
return getDateTimeFormats(translateFn, datetimeConstants.allShortTimeFormat, datetimeConstants.allShortTimeFormatArray, 'format.shortTime', defaultShortTimeFormatTypeName, datetimeConstants.defaultShortTimeFormat);
|
return getDateTimeFormats(translateFn, ShortTimeFormat.values(), ShortTimeFormat.values(), 'format.shortTime', defaultShortTimeFormatTypeName, ShortTimeFormat.Default);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getMonthShortName(monthName, translateFn) {
|
function getMonthShortName(monthName, translateFn) {
|
||||||
@@ -380,96 +391,89 @@ function getMultiMonthdayShortNames(monthDays, translateFn) {
|
|||||||
|
|
||||||
function getMultiWeekdayLongNames(weekdayTypes, firstDayOfWeek, translateFn) {
|
function getMultiWeekdayLongNames(weekdayTypes, firstDayOfWeek, translateFn) {
|
||||||
const weekdayTypesMap = {};
|
const weekdayTypesMap = {};
|
||||||
const finalWeekdayTypes = [];
|
|
||||||
|
|
||||||
if (!isNumber(firstDayOfWeek)) {
|
if (!isNumber(firstDayOfWeek)) {
|
||||||
firstDayOfWeek = datetimeConstants.allWeekDays.Sunday.type;
|
firstDayOfWeek = WeekDay.DefaultFirstDay.type;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let i = 0; i < weekdayTypes.length; i++) {
|
for (let i = 0; i < weekdayTypes.length; i++) {
|
||||||
weekdayTypesMap[weekdayTypes[i]] = true;
|
weekdayTypesMap[weekdayTypes[i]] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let i = firstDayOfWeek; i < datetimeConstants.allWeekDaysArray.length; i++) {
|
const allWeekDays = getAllWeekDays(firstDayOfWeek, translateFn);
|
||||||
const weekDay = datetimeConstants.allWeekDaysArray[i];
|
const finalWeekdayNames = [];
|
||||||
|
|
||||||
|
for (let i = 0; i < allWeekDays.length; i++) {
|
||||||
|
const weekDay = allWeekDays[i];
|
||||||
|
|
||||||
if (weekdayTypesMap[weekDay.type]) {
|
if (weekdayTypesMap[weekDay.type]) {
|
||||||
finalWeekdayTypes.push(weekDay.type);
|
finalWeekdayNames.push(weekDay.displayName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let i = 0; i < firstDayOfWeek; i++) {
|
return joinMultiText(finalWeekdayNames, translateFn);
|
||||||
const weekDay = datetimeConstants.allWeekDaysArray[i];
|
|
||||||
|
|
||||||
if (weekdayTypesMap[weekDay.type]) {
|
|
||||||
finalWeekdayTypes.push(weekDay.type);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const allWeekDays = getAllWeekDays(null, translateFn)
|
|
||||||
return joinMultiText(finalWeekdayTypes.map(type => getNameByKeyValue(allWeekDays, type, 'type', 'displayName')), translateFn);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getI18nLongDateFormat(translateFn, formatTypeValue) {
|
function getI18nLongDateFormat(translateFn, formatTypeValue) {
|
||||||
const defaultLongDateFormatTypeName = translateFn('default.longDateFormat');
|
const defaultLongDateFormatTypeName = translateFn('default.longDateFormat');
|
||||||
return getDateTimeFormat(translateFn, datetimeConstants.allLongDateFormat, datetimeConstants.allLongDateFormatArray, 'format.longDate', defaultLongDateFormatTypeName, datetimeConstants.defaultLongDateFormat, formatTypeValue);
|
return getDateTimeFormat(translateFn, LongDateFormat.all(), LongDateFormat.values(), 'format.longDate', defaultLongDateFormatTypeName, LongDateFormat.Default, formatTypeValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getI18nShortDateFormat(translateFn, formatTypeValue) {
|
function getI18nShortDateFormat(translateFn, formatTypeValue) {
|
||||||
const defaultShortDateFormatTypeName = translateFn('default.shortDateFormat');
|
const defaultShortDateFormatTypeName = translateFn('default.shortDateFormat');
|
||||||
return getDateTimeFormat(translateFn, datetimeConstants.allShortDateFormat, datetimeConstants.allShortDateFormatArray, 'format.shortDate', defaultShortDateFormatTypeName, datetimeConstants.defaultShortDateFormat, formatTypeValue);
|
return getDateTimeFormat(translateFn, ShortDateFormat.all(), ShortDateFormat.values(), 'format.shortDate', defaultShortDateFormatTypeName, ShortDateFormat.Default, formatTypeValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getI18nLongYearFormat(translateFn, formatTypeValue) {
|
function getI18nLongYearFormat(translateFn, formatTypeValue) {
|
||||||
const defaultLongDateFormatTypeName = translateFn('default.longDateFormat');
|
const defaultLongDateFormatTypeName = translateFn('default.longDateFormat');
|
||||||
return getDateTimeFormat(translateFn, datetimeConstants.allLongDateFormat, datetimeConstants.allLongDateFormatArray, 'format.longYear', defaultLongDateFormatTypeName, datetimeConstants.defaultLongDateFormat, formatTypeValue);
|
return getDateTimeFormat(translateFn, LongDateFormat.all(), LongDateFormat.values(), 'format.longYear', defaultLongDateFormatTypeName, LongDateFormat.Default, formatTypeValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getI18nShortYearFormat(translateFn, formatTypeValue) {
|
function getI18nShortYearFormat(translateFn, formatTypeValue) {
|
||||||
const defaultShortDateFormatTypeName = translateFn('default.shortDateFormat');
|
const defaultShortDateFormatTypeName = translateFn('default.shortDateFormat');
|
||||||
return getDateTimeFormat(translateFn, datetimeConstants.allShortDateFormat, datetimeConstants.allShortDateFormatArray, 'format.shortYear', defaultShortDateFormatTypeName, datetimeConstants.defaultShortDateFormat, formatTypeValue);
|
return getDateTimeFormat(translateFn, ShortDateFormat.all(), ShortDateFormat.values(), 'format.shortYear', defaultShortDateFormatTypeName, ShortDateFormat.Default, formatTypeValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getI18nLongYearMonthFormat(translateFn, formatTypeValue) {
|
function getI18nLongYearMonthFormat(translateFn, formatTypeValue) {
|
||||||
const defaultLongDateFormatTypeName = translateFn('default.longDateFormat');
|
const defaultLongDateFormatTypeName = translateFn('default.longDateFormat');
|
||||||
return getDateTimeFormat(translateFn, datetimeConstants.allLongDateFormat, datetimeConstants.allLongDateFormatArray, 'format.longYearMonth', defaultLongDateFormatTypeName, datetimeConstants.defaultLongDateFormat, formatTypeValue);
|
return getDateTimeFormat(translateFn, LongDateFormat.all(), LongDateFormat.values(), 'format.longYearMonth', defaultLongDateFormatTypeName, LongDateFormat.Default, formatTypeValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getI18nShortYearMonthFormat(translateFn, formatTypeValue) {
|
function getI18nShortYearMonthFormat(translateFn, formatTypeValue) {
|
||||||
const defaultShortDateFormatTypeName = translateFn('default.shortDateFormat');
|
const defaultShortDateFormatTypeName = translateFn('default.shortDateFormat');
|
||||||
return getDateTimeFormat(translateFn, datetimeConstants.allShortDateFormat, datetimeConstants.allShortDateFormatArray, 'format.shortYearMonth', defaultShortDateFormatTypeName, datetimeConstants.defaultShortDateFormat, formatTypeValue);
|
return getDateTimeFormat(translateFn, ShortDateFormat.all(), ShortDateFormat.values(), 'format.shortYearMonth', defaultShortDateFormatTypeName, ShortDateFormat.Default, formatTypeValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getI18nLongMonthDayFormat(translateFn, formatTypeValue) {
|
function getI18nLongMonthDayFormat(translateFn, formatTypeValue) {
|
||||||
const defaultLongDateFormatTypeName = translateFn('default.longDateFormat');
|
const defaultLongDateFormatTypeName = translateFn('default.longDateFormat');
|
||||||
return getDateTimeFormat(translateFn, datetimeConstants.allLongDateFormat, datetimeConstants.allLongDateFormatArray, 'format.longMonthDay', defaultLongDateFormatTypeName, datetimeConstants.defaultLongDateFormat, formatTypeValue);
|
return getDateTimeFormat(translateFn, LongDateFormat.all(), LongDateFormat.values(), 'format.longMonthDay', defaultLongDateFormatTypeName, LongDateFormat.Default, formatTypeValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getI18nShortMonthDayFormat(translateFn, formatTypeValue) {
|
function getI18nShortMonthDayFormat(translateFn, formatTypeValue) {
|
||||||
const defaultShortDateFormatTypeName = translateFn('default.shortDateFormat');
|
const defaultShortDateFormatTypeName = translateFn('default.shortDateFormat');
|
||||||
return getDateTimeFormat(translateFn, datetimeConstants.allShortDateFormat, datetimeConstants.allShortDateFormatArray, 'format.shortMonthDay', defaultShortDateFormatTypeName, datetimeConstants.defaultShortDateFormat, formatTypeValue);
|
return getDateTimeFormat(translateFn, ShortDateFormat.all(), ShortDateFormat.values(), 'format.shortMonthDay', defaultShortDateFormatTypeName, ShortDateFormat.Default, formatTypeValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
function isLongDateMonthAfterYear(translateFn, formatTypeValue) {
|
function isLongDateMonthAfterYear(translateFn, formatTypeValue) {
|
||||||
const defaultLongDateFormatTypeName = translateFn('default.longDateFormat');
|
const defaultLongDateFormatTypeName = translateFn('default.longDateFormat');
|
||||||
const type = getDateTimeFormatType(datetimeConstants.allLongDateFormat, datetimeConstants.allLongDateFormatArray, defaultLongDateFormatTypeName, datetimeConstants.defaultLongDateFormat, formatTypeValue);
|
const type = getDateTimeFormatType(LongDateFormat.all(), LongDateFormat.values(), defaultLongDateFormatTypeName, LongDateFormat.Default, formatTypeValue);
|
||||||
return type.isMonthAfterYear;
|
return type.isMonthAfterYear;
|
||||||
}
|
}
|
||||||
|
|
||||||
function isShortDateMonthAfterYear(translateFn, formatTypeValue) {
|
function isShortDateMonthAfterYear(translateFn, formatTypeValue) {
|
||||||
const defaultShortDateFormatTypeName = translateFn('default.shortDateFormat');
|
const defaultShortDateFormatTypeName = translateFn('default.shortDateFormat');
|
||||||
const type = getDateTimeFormatType(datetimeConstants.allShortDateFormat, datetimeConstants.allShortDateFormatArray, defaultShortDateFormatTypeName, datetimeConstants.defaultShortDateFormat, formatTypeValue);
|
const type = getDateTimeFormatType(ShortDateFormat.all(), ShortDateFormat.values(), defaultShortDateFormatTypeName, ShortDateFormat.Default, formatTypeValue);
|
||||||
return type.isMonthAfterYear;
|
return type.isMonthAfterYear;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getI18nLongTimeFormat(translateFn, formatTypeValue) {
|
function getI18nLongTimeFormat(translateFn, formatTypeValue) {
|
||||||
const defaultLongTimeFormatTypeName = translateFn('default.longTimeFormat');
|
const defaultLongTimeFormatTypeName = translateFn('default.longTimeFormat');
|
||||||
return getDateTimeFormat(translateFn, datetimeConstants.allLongTimeFormat, datetimeConstants.allLongTimeFormatArray, 'format.longTime', defaultLongTimeFormatTypeName, datetimeConstants.defaultLongTimeFormat, formatTypeValue);
|
return getDateTimeFormat(translateFn, LongTimeFormat.values(), LongTimeFormat.values(), 'format.longTime', defaultLongTimeFormatTypeName, LongTimeFormat.Default, formatTypeValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getI18nShortTimeFormat(translateFn, formatTypeValue) {
|
function getI18nShortTimeFormat(translateFn, formatTypeValue) {
|
||||||
const defaultShortTimeFormatTypeName = translateFn('default.shortTimeFormat');
|
const defaultShortTimeFormatTypeName = translateFn('default.shortTimeFormat');
|
||||||
return getDateTimeFormat(translateFn, datetimeConstants.allShortTimeFormat, datetimeConstants.allShortTimeFormatArray, 'format.shortTime', defaultShortTimeFormatTypeName, datetimeConstants.defaultShortTimeFormat, formatTypeValue);
|
return getDateTimeFormat(translateFn, ShortTimeFormat.values(), ShortTimeFormat.values(), 'format.shortTime', defaultShortTimeFormatTypeName, ShortTimeFormat.Default, formatTypeValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
function formatYearQuarter(translateFn, year, quarter) {
|
function formatYearQuarter(translateFn, year, quarter) {
|
||||||
@@ -485,35 +489,35 @@ function formatYearQuarter(translateFn, year, quarter) {
|
|||||||
|
|
||||||
function isLongTime24HourFormat(translateFn, formatTypeValue) {
|
function isLongTime24HourFormat(translateFn, formatTypeValue) {
|
||||||
const defaultLongTimeFormatTypeName = translateFn('default.longTimeFormat');
|
const defaultLongTimeFormatTypeName = translateFn('default.longTimeFormat');
|
||||||
const type = getDateTimeFormatType(datetimeConstants.allLongTimeFormat, datetimeConstants.allLongTimeFormatArray, defaultLongTimeFormatTypeName, datetimeConstants.defaultLongTimeFormat, formatTypeValue);
|
const type = getDateTimeFormatType(LongTimeFormat.values(), LongTimeFormat.values(), defaultLongTimeFormatTypeName, LongTimeFormat.Default, formatTypeValue);
|
||||||
return type.is24HourFormat;
|
return type.is24HourFormat;
|
||||||
}
|
}
|
||||||
|
|
||||||
function isLongTimeMeridiemIndicatorFirst(translateFn, formatTypeValue) {
|
function isLongTimeMeridiemIndicatorFirst(translateFn, formatTypeValue) {
|
||||||
const defaultLongTimeFormatTypeName = translateFn('default.longTimeFormat');
|
const defaultLongTimeFormatTypeName = translateFn('default.longTimeFormat');
|
||||||
const type = getDateTimeFormatType(datetimeConstants.allLongTimeFormat, datetimeConstants.allLongTimeFormatArray, defaultLongTimeFormatTypeName, datetimeConstants.defaultLongTimeFormat, formatTypeValue);
|
const type = getDateTimeFormatType(LongTimeFormat.values(), LongTimeFormat.values(), defaultLongTimeFormatTypeName, LongTimeFormat.Default, formatTypeValue);
|
||||||
return type.isMeridiemIndicatorFirst;
|
return type.isMeridiemIndicatorFirst;
|
||||||
}
|
}
|
||||||
|
|
||||||
function isShortTime24HourFormat(translateFn, formatTypeValue) {
|
function isShortTime24HourFormat(translateFn, formatTypeValue) {
|
||||||
const defaultShortTimeFormatTypeName = translateFn('default.shortTimeFormat');
|
const defaultShortTimeFormatTypeName = translateFn('default.shortTimeFormat');
|
||||||
const type = getDateTimeFormatType(datetimeConstants.allShortTimeFormat, datetimeConstants.allShortTimeFormatArray, defaultShortTimeFormatTypeName, datetimeConstants.defaultShortTimeFormat, formatTypeValue);
|
const type = getDateTimeFormatType(ShortTimeFormat.values(), ShortTimeFormat.values(), defaultShortTimeFormatTypeName, ShortTimeFormat.Default, formatTypeValue);
|
||||||
return type.is24HourFormat;
|
return type.is24HourFormat;
|
||||||
}
|
}
|
||||||
|
|
||||||
function isShortTimeMeridiemIndicatorFirst(translateFn, formatTypeValue) {
|
function isShortTimeMeridiemIndicatorFirst(translateFn, formatTypeValue) {
|
||||||
const defaultShortTimeFormatTypeName = translateFn('default.shortTimeFormat');
|
const defaultShortTimeFormatTypeName = translateFn('default.shortTimeFormat');
|
||||||
const type = getDateTimeFormatType(datetimeConstants.allShortTimeFormat, datetimeConstants.allShortTimeFormatArray, defaultShortTimeFormatTypeName, datetimeConstants.defaultShortTimeFormat, formatTypeValue);
|
const type = getDateTimeFormatType(ShortTimeFormat.values(), ShortTimeFormat.values(), defaultShortTimeFormatTypeName, ShortTimeFormat.Default, formatTypeValue);
|
||||||
return type.isMeridiemIndicatorFirst;
|
return type.isMeridiemIndicatorFirst;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getDateTimeFormats(translateFn, allFormatMap, allFormatArray, localeFormatPathPrefix, localeDefaultFormatTypeName, systemDefaultFormatType) {
|
function getDateTimeFormats(translateFn, allFormatMap, allFormatArray, localeFormatPathPrefix, localeDefaultFormatTypeName, systemDefaultFormatType) {
|
||||||
const defaultFormat = getDateTimeFormat(translateFn, allFormatMap, allFormatArray,
|
const defaultFormat = getDateTimeFormat(translateFn, allFormatMap, allFormatArray,
|
||||||
localeFormatPathPrefix, localeDefaultFormatTypeName, systemDefaultFormatType, datetimeConstants.defaultDateTimeFormatValue);
|
localeFormatPathPrefix, localeDefaultFormatTypeName, systemDefaultFormatType, LANGUAGE_DEFAULT_DATE_TIME_FORMAT_VALUE);
|
||||||
const ret = [];
|
const ret = [];
|
||||||
|
|
||||||
ret.push({
|
ret.push({
|
||||||
type: datetimeConstants.defaultDateTimeFormatValue,
|
type: LANGUAGE_DEFAULT_DATE_TIME_FORMAT_VALUE,
|
||||||
format: defaultFormat,
|
format: defaultFormat,
|
||||||
displayName: `${translateFn('Language Default')} (${formatCurrentTime(defaultFormat)})`
|
displayName: `${translateFn('Language Default')} (${formatCurrentTime(defaultFormat)})`
|
||||||
});
|
});
|
||||||
@@ -635,68 +639,66 @@ function getAllCurrencies(translateFn) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getAllWeekDays(firstDayOfWeek, translateFn) {
|
function getAllWeekDays(firstDayOfWeek, translateFn) {
|
||||||
const allWeekDays = [];
|
const ret = [];
|
||||||
|
const allWeekDays = WeekDay.values();
|
||||||
|
|
||||||
if (!isNumber(firstDayOfWeek)) {
|
if (!isNumber(firstDayOfWeek)) {
|
||||||
firstDayOfWeek = datetimeConstants.allWeekDays.Sunday.type;
|
firstDayOfWeek = WeekDay.DefaultFirstDay.type;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let i = firstDayOfWeek; i < datetimeConstants.allWeekDaysArray.length; i++) {
|
for (let i = firstDayOfWeek; i < allWeekDays.length; i++) {
|
||||||
const weekDay = datetimeConstants.allWeekDaysArray[i];
|
const weekDay = allWeekDays[i];
|
||||||
|
|
||||||
allWeekDays.push({
|
ret.push({
|
||||||
type: weekDay.type,
|
type: weekDay.type,
|
||||||
displayName: translateFn(`datetime.${weekDay.name}.long`)
|
displayName: translateFn(`datetime.${weekDay.name}.long`)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let i = 0; i < firstDayOfWeek; i++) {
|
for (let i = 0; i < firstDayOfWeek; i++) {
|
||||||
const weekDay = datetimeConstants.allWeekDaysArray[i];
|
const weekDay = allWeekDays[i];
|
||||||
|
|
||||||
allWeekDays.push({
|
ret.push({
|
||||||
type: weekDay.type,
|
type: weekDay.type,
|
||||||
displayName: translateFn(`datetime.${weekDay.name}.long`)
|
displayName: translateFn(`datetime.${weekDay.name}.long`)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return allWeekDays;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getAllDateRanges(scene, includeCustom, includeBillingCycle, translateFn) {
|
function getAllDateRanges(scene, includeCustom, includeBillingCycle, translateFn) {
|
||||||
const allDateRanges = [];
|
const ret = [];
|
||||||
|
const allDateRanges = DateRange.values();
|
||||||
|
|
||||||
for (let dateRangeField in datetimeConstants.allDateRanges) {
|
for (let i = 0; i < allDateRanges.length; i++) {
|
||||||
if (!Object.prototype.hasOwnProperty.call(datetimeConstants.allDateRanges, dateRangeField)) {
|
const dateRange = allDateRanges[i];
|
||||||
|
|
||||||
|
if (!dateRange.isAvailableForScene(scene)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
const dateRangeType = datetimeConstants.allDateRanges[dateRangeField];
|
if (dateRange.isBillingCycle) {
|
||||||
|
|
||||||
if (!dateRangeType.availableScenes[scene]) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dateRangeType.isBillingCycle) {
|
|
||||||
if (includeBillingCycle) {
|
if (includeBillingCycle) {
|
||||||
allDateRanges.push({
|
ret.push({
|
||||||
type: dateRangeType.type,
|
type: dateRange.type,
|
||||||
displayName: translateFn(dateRangeType.name),
|
displayName: translateFn(dateRange.name),
|
||||||
isBillingCycle: dateRangeType.isBillingCycle
|
isBillingCycle: dateRange.isBillingCycle
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (includeCustom || dateRangeType.type !== datetimeConstants.allDateRanges.Custom.type) {
|
if (includeCustom || dateRange.type !== DateRange.Custom.type) {
|
||||||
allDateRanges.push({
|
ret.push({
|
||||||
type: dateRangeType.type,
|
type: dateRange.type,
|
||||||
displayName: translateFn(dateRangeType.name)
|
displayName: translateFn(dateRange.name)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return allDateRanges;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getAllRecentMonthDateRanges(userStore, includeAll, includeCustom, translateFn) {
|
function getAllRecentMonthDateRanges(userStore, includeAll, includeCustom, translateFn) {
|
||||||
@@ -705,7 +707,7 @@ function getAllRecentMonthDateRanges(userStore, includeAll, includeCustom, trans
|
|||||||
|
|
||||||
if (includeAll) {
|
if (includeAll) {
|
||||||
allRecentMonthDateRanges.push({
|
allRecentMonthDateRanges.push({
|
||||||
dateType: datetimeConstants.allDateRanges.All.type,
|
dateType: DateRange.All.type,
|
||||||
minTime: 0,
|
minTime: 0,
|
||||||
maxTime: 0,
|
maxTime: 0,
|
||||||
displayName: translateFn('All')
|
displayName: translateFn('All')
|
||||||
@@ -728,7 +730,7 @@ function getAllRecentMonthDateRanges(userStore, includeAll, includeCustom, trans
|
|||||||
|
|
||||||
if (includeCustom) {
|
if (includeCustom) {
|
||||||
allRecentMonthDateRanges.push({
|
allRecentMonthDateRanges.push({
|
||||||
dateType: datetimeConstants.allDateRanges.Custom.type,
|
dateType: DateRange.Custom.type,
|
||||||
minTime: 0,
|
minTime: 0,
|
||||||
maxTime: 0,
|
maxTime: 0,
|
||||||
displayName: translateFn('Custom Date')
|
displayName: translateFn('Custom Date')
|
||||||
@@ -739,18 +741,16 @@ function getAllRecentMonthDateRanges(userStore, includeAll, includeCustom, trans
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getDateRangeDisplayName(userStore, dateType, startTime, endTime, translateFn) {
|
function getDateRangeDisplayName(userStore, dateType, startTime, endTime, translateFn) {
|
||||||
if (dateType === datetimeConstants.allDateRanges.All.type) {
|
if (dateType === DateRange.All.type) {
|
||||||
return translateFn(datetimeConstants.allDateRanges.All.name);
|
return translateFn(DateRange.All.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let dateRangeField in datetimeConstants.allDateRanges) {
|
const allDateRanges = DateRange.values();
|
||||||
if (!Object.prototype.hasOwnProperty.call(datetimeConstants.allDateRanges, dateRangeField)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
const dateRange = datetimeConstants.allDateRanges[dateRangeField];
|
for (let i = 0; i < allDateRanges.length; i++) {
|
||||||
|
const dateRange = allDateRanges[i];
|
||||||
|
|
||||||
if (dateRange && dateRange.type !== datetimeConstants.allDateRanges.Custom.type && dateRange.type === dateType && dateRange.name) {
|
if (dateRange && dateRange.type !== DateRange.Custom.type && dateRange.type === dateType && dateRange.name) {
|
||||||
return translateFn(dateRange.name);
|
return translateFn(dateRange.name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1560,9 +1560,9 @@ function setLanguage(i18nGlobal, locale, force) {
|
|||||||
weekdaysMin : getAllMinWeekdayNames(i18nGlobal.t),
|
weekdaysMin : getAllMinWeekdayNames(i18nGlobal.t),
|
||||||
meridiem: function (hours) {
|
meridiem: function (hours) {
|
||||||
if (isPM(hours)) {
|
if (isPM(hours)) {
|
||||||
return i18nGlobal.t(`datetime.${datetimeConstants.allMeridiemIndicators.PM}.content`);
|
return i18nGlobal.t(`datetime.${MeridiemIndicator.PM.name}.content`);
|
||||||
} else {
|
} else {
|
||||||
return i18nGlobal.t(`datetime.${datetimeConstants.allMeridiemIndicators.AM}.content`);
|
return i18nGlobal.t(`datetime.${MeridiemIndicator.AM.name}.content`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -1572,10 +1572,10 @@ function setLanguage(i18nGlobal, locale, force) {
|
|||||||
|
|
||||||
const defaultCurrency = getDefaultCurrency(i18nGlobal.t);
|
const defaultCurrency = getDefaultCurrency(i18nGlobal.t);
|
||||||
const defaultFirstDayOfWeekName = getDefaultFirstDayOfWeek(i18nGlobal.t);
|
const defaultFirstDayOfWeekName = getDefaultFirstDayOfWeek(i18nGlobal.t);
|
||||||
let defaultFirstDayOfWeek = datetimeConstants.defaultFirstDayOfWeek;
|
let defaultFirstDayOfWeek = WeekDay.DefaultFirstDay.type;
|
||||||
|
|
||||||
if (datetimeConstants.allWeekDays[defaultFirstDayOfWeekName]) {
|
if (WeekDay.parse(defaultFirstDayOfWeekName)) {
|
||||||
defaultFirstDayOfWeek = datetimeConstants.allWeekDays[defaultFirstDayOfWeekName].type;
|
defaultFirstDayOfWeek = WeekDay.parse(defaultFirstDayOfWeekName).type;
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@@ -1666,7 +1666,7 @@ export function i18nFunctions(i18nGlobal) {
|
|||||||
getDefaultCurrency: () => getDefaultCurrency(i18nGlobal.t),
|
getDefaultCurrency: () => getDefaultCurrency(i18nGlobal.t),
|
||||||
getDefaultFirstDayOfWeek: () => getDefaultFirstDayOfWeek(i18nGlobal.t),
|
getDefaultFirstDayOfWeek: () => getDefaultFirstDayOfWeek(i18nGlobal.t),
|
||||||
getCurrencyName: (currencyCode) => getCurrencyName(currencyCode, i18nGlobal.t),
|
getCurrencyName: (currencyCode) => getCurrencyName(currencyCode, i18nGlobal.t),
|
||||||
getAllMeridiemIndicatorNames: () => getAllMeridiemIndicatorNames(i18nGlobal.t),
|
getAllMeridiemIndicators: () => getAllMeridiemIndicators(i18nGlobal.t),
|
||||||
getAllLongMonthNames: () => getAllLongMonthNames(i18nGlobal.t),
|
getAllLongMonthNames: () => getAllLongMonthNames(i18nGlobal.t),
|
||||||
getAllShortMonthNames: () => getAllShortMonthNames(i18nGlobal.t),
|
getAllShortMonthNames: () => getAllShortMonthNames(i18nGlobal.t),
|
||||||
getAllLongWeekdayNames: () => getAllLongWeekdayNames(i18nGlobal.t),
|
getAllLongWeekdayNames: () => getAllLongWeekdayNames(i18nGlobal.t),
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { defineStore } from 'pinia';
|
import { defineStore } from 'pinia';
|
||||||
|
|
||||||
|
import { WeekDay } from '@/core/datetime.ts';
|
||||||
import { DEFAULT_CURRENCY_CODE } from '@/consts/currency.ts';
|
import { DEFAULT_CURRENCY_CODE } from '@/consts/currency.ts';
|
||||||
import datetimeConstants from '@/consts/datetime.js';
|
|
||||||
import * as settings from '@/lib/settings.js';
|
import * as settings from '@/lib/settings.js';
|
||||||
|
|
||||||
export const useSettingsStore = defineStore('settings', {
|
export const useSettingsStore = defineStore('settings', {
|
||||||
@@ -37,7 +37,7 @@ export const useSettingsStore = defineStore('settings', {
|
|||||||
},
|
},
|
||||||
localeDefaultSettings: {
|
localeDefaultSettings: {
|
||||||
currency: DEFAULT_CURRENCY_CODE,
|
currency: DEFAULT_CURRENCY_CODE,
|
||||||
firstDayOfWeek: datetimeConstants.defaultFirstDayOfWeek
|
firstDayOfWeek: WeekDay.DefaultFirstDay.type
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
actions: {
|
actions: {
|
||||||
|
|||||||
@@ -6,9 +6,9 @@ import { useAccountsStore } from './account.js';
|
|||||||
import { useTransactionCategoriesStore } from './transactionCategory.js';
|
import { useTransactionCategoriesStore } from './transactionCategory.js';
|
||||||
import { useExchangeRatesStore } from './exchangeRates.js';
|
import { useExchangeRatesStore } from './exchangeRates.js';
|
||||||
|
|
||||||
|
import { DateRangeScene, DateRange } from '@/core/datetime';
|
||||||
import { CategoryType } from '@/core/category.ts';
|
import { CategoryType } from '@/core/category.ts';
|
||||||
import { TransactionTagFilterType } from '@/core/transaction.ts';
|
import { TransactionTagFilterType } from '@/core/transaction.ts';
|
||||||
import datetimeConstants from '@/consts/datetime.js';
|
|
||||||
import statisticsConstants from '@/consts/statistics.js';
|
import statisticsConstants from '@/consts/statistics.js';
|
||||||
import { DEFAULT_ACCOUNT_ICON, DEFAULT_CATEGORY_ICON } from '@/consts/icon.ts';
|
import { DEFAULT_ACCOUNT_ICON, DEFAULT_CATEGORY_ICON } from '@/consts/icon.ts';
|
||||||
import { DEFAULT_ACCOUNT_COLOR, DEFAULT_CATEGORY_COLOR } from '@/consts/color.ts';
|
import { DEFAULT_ACCOUNT_COLOR, DEFAULT_CATEGORY_COLOR } from '@/consts/color.ts';
|
||||||
@@ -605,13 +605,12 @@ export const useStatisticsStore = defineStore('statistics', {
|
|||||||
|
|
||||||
let categoricalChartDateTypeValid = true;
|
let categoricalChartDateTypeValid = true;
|
||||||
|
|
||||||
if (!datetimeConstants.allDateRangesMap[this.transactionStatisticsFilter.categoricalChartDateType] ||
|
if (!DateRange.isAvailableForScene(this.transactionStatisticsFilter.categoricalChartDateType, DateRangeScene.Normal)) {
|
||||||
!datetimeConstants.allDateRangesMap[this.transactionStatisticsFilter.categoricalChartDateType].availableScenes[datetimeConstants.allDateRangeScenes.Normal]) {
|
|
||||||
this.transactionStatisticsFilter.categoricalChartDateType = statisticsConstants.defaultCategoricalChartDataRangeType;
|
this.transactionStatisticsFilter.categoricalChartDateType = statisticsConstants.defaultCategoricalChartDataRangeType;
|
||||||
categoricalChartDateTypeValid = false;
|
categoricalChartDateTypeValid = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (categoricalChartDateTypeValid && this.transactionStatisticsFilter.categoricalChartDateType === datetimeConstants.allDateRanges.Custom.type) {
|
if (categoricalChartDateTypeValid && this.transactionStatisticsFilter.categoricalChartDateType === DateRange.Custom.type) {
|
||||||
if (filter && isInteger(filter.categoricalChartStartTime)) {
|
if (filter && isInteger(filter.categoricalChartStartTime)) {
|
||||||
this.transactionStatisticsFilter.categoricalChartStartTime = filter.categoricalChartStartTime;
|
this.transactionStatisticsFilter.categoricalChartStartTime = filter.categoricalChartStartTime;
|
||||||
} else {
|
} else {
|
||||||
@@ -648,13 +647,12 @@ export const useStatisticsStore = defineStore('statistics', {
|
|||||||
|
|
||||||
let trendChartDateTypeValid = true;
|
let trendChartDateTypeValid = true;
|
||||||
|
|
||||||
if (!datetimeConstants.allDateRangesMap[this.transactionStatisticsFilter.trendChartDateType] ||
|
if (!DateRange.isAvailableForScene(this.transactionStatisticsFilter.trendChartDateType, DateRangeScene.TrendAnalysis)) {
|
||||||
!datetimeConstants.allDateRangesMap[this.transactionStatisticsFilter.trendChartDateType].availableScenes[datetimeConstants.allDateRangeScenes.TrendAnalysis]) {
|
|
||||||
this.transactionStatisticsFilter.trendChartDateType = statisticsConstants.defaultTrendChartDataRangeType;
|
this.transactionStatisticsFilter.trendChartDateType = statisticsConstants.defaultTrendChartDataRangeType;
|
||||||
trendChartDateTypeValid = false;
|
trendChartDateTypeValid = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (trendChartDateTypeValid && this.transactionStatisticsFilter.trendChartDateType === datetimeConstants.allDateRanges.Custom.type) {
|
if (trendChartDateTypeValid && this.transactionStatisticsFilter.trendChartDateType === DateRange.Custom.type) {
|
||||||
if (filter && isYearMonth(filter.trendChartStartYearMonth)) {
|
if (filter && isYearMonth(filter.trendChartStartYearMonth)) {
|
||||||
this.transactionStatisticsFilter.trendChartStartYearMonth = filter.trendChartStartYearMonth;
|
this.transactionStatisticsFilter.trendChartStartYearMonth = filter.trendChartStartYearMonth;
|
||||||
} else {
|
} else {
|
||||||
@@ -792,7 +790,7 @@ export const useStatisticsStore = defineStore('statistics', {
|
|||||||
querys.push('chartType=' + this.transactionStatisticsFilter.categoricalChartType);
|
querys.push('chartType=' + this.transactionStatisticsFilter.categoricalChartType);
|
||||||
querys.push('chartDateType=' + this.transactionStatisticsFilter.categoricalChartDateType);
|
querys.push('chartDateType=' + this.transactionStatisticsFilter.categoricalChartDateType);
|
||||||
|
|
||||||
if (this.transactionStatisticsFilter.categoricalChartDateType === datetimeConstants.allDateRanges.Custom.type) {
|
if (this.transactionStatisticsFilter.categoricalChartDateType === DateRange.Custom.type) {
|
||||||
querys.push('startTime=' + this.transactionStatisticsFilter.categoricalChartStartTime);
|
querys.push('startTime=' + this.transactionStatisticsFilter.categoricalChartStartTime);
|
||||||
querys.push('endTime=' + this.transactionStatisticsFilter.categoricalChartEndTime);
|
querys.push('endTime=' + this.transactionStatisticsFilter.categoricalChartEndTime);
|
||||||
}
|
}
|
||||||
@@ -800,7 +798,7 @@ export const useStatisticsStore = defineStore('statistics', {
|
|||||||
querys.push('chartType=' + this.transactionStatisticsFilter.trendChartType);
|
querys.push('chartType=' + this.transactionStatisticsFilter.trendChartType);
|
||||||
querys.push('chartDateType=' + this.transactionStatisticsFilter.trendChartDateType);
|
querys.push('chartDateType=' + this.transactionStatisticsFilter.trendChartDateType);
|
||||||
|
|
||||||
if (this.transactionStatisticsFilter.trendChartDateType === datetimeConstants.allDateRanges.Custom.type) {
|
if (this.transactionStatisticsFilter.trendChartDateType === DateRange.Custom.type) {
|
||||||
querys.push('startTime=' + this.transactionStatisticsFilter.trendChartStartYearMonth);
|
querys.push('startTime=' + this.transactionStatisticsFilter.trendChartStartYearMonth);
|
||||||
querys.push('endTime=' + this.transactionStatisticsFilter.trendChartEndYearMonth);
|
querys.push('endTime=' + this.transactionStatisticsFilter.trendChartEndYearMonth);
|
||||||
}
|
}
|
||||||
@@ -896,7 +894,7 @@ export const useStatisticsStore = defineStore('statistics', {
|
|||||||
&& this.transactionStatisticsFilter.chartDataType !== statisticsConstants.allChartDataTypes.AccountTotalLiabilities.type) {
|
&& this.transactionStatisticsFilter.chartDataType !== statisticsConstants.allChartDataTypes.AccountTotalLiabilities.type) {
|
||||||
querys.push('dateType=' + this.transactionStatisticsFilter.categoricalChartDateType);
|
querys.push('dateType=' + this.transactionStatisticsFilter.categoricalChartDateType);
|
||||||
|
|
||||||
if (this.transactionStatisticsFilter.categoricalChartDateType === datetimeConstants.allDateRanges.Custom.type) {
|
if (this.transactionStatisticsFilter.categoricalChartDateType === DateRange.Custom.type) {
|
||||||
querys.push('minTime=' + this.transactionStatisticsFilter.categoricalChartStartTime);
|
querys.push('minTime=' + this.transactionStatisticsFilter.categoricalChartStartTime);
|
||||||
querys.push('maxTime=' + this.transactionStatisticsFilter.categoricalChartEndTime);
|
querys.push('maxTime=' + this.transactionStatisticsFilter.categoricalChartEndTime);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,10 +8,10 @@ import { useOverviewStore } from './overview.js';
|
|||||||
import { useStatisticsStore } from './statistics.js';
|
import { useStatisticsStore } from './statistics.js';
|
||||||
import { useExchangeRatesStore } from './exchangeRates.js';
|
import { useExchangeRatesStore } from './exchangeRates.js';
|
||||||
|
|
||||||
|
import { DateRange } from '@/core/datetime.ts';
|
||||||
import { CategoryType } from '@/core/category.ts';
|
import { CategoryType } from '@/core/category.ts';
|
||||||
import { TransactionType, TransactionTagFilterType } from '@/core/transaction.ts';
|
import { TransactionType, TransactionTagFilterType } from '@/core/transaction.ts';
|
||||||
import { TRANSACTION_MIN_AMOUNT, TRANSACTION_MAX_AMOUNT } from '@/consts/transaction.ts';
|
import { TRANSACTION_MIN_AMOUNT, TRANSACTION_MAX_AMOUNT } from '@/consts/transaction.ts';
|
||||||
import datetimeConstants from '@/consts/datetime.js';
|
|
||||||
import userState from '@/lib/userstate.js';
|
import userState from '@/lib/userstate.js';
|
||||||
import services from '@/lib/services.js';
|
import services from '@/lib/services.js';
|
||||||
import logger from '@/lib/logger.js';
|
import logger from '@/lib/logger.js';
|
||||||
@@ -368,7 +368,7 @@ export const useTransactionsStore = defineStore('transactions', {
|
|||||||
state: () => ({
|
state: () => ({
|
||||||
transactionDraft: userState.getUserTransactionDraft(),
|
transactionDraft: userState.getUserTransactionDraft(),
|
||||||
transactionsFilter: {
|
transactionsFilter: {
|
||||||
dateType: datetimeConstants.allDateRanges.All.type,
|
dateType: DateRange.All.type,
|
||||||
maxTime: 0,
|
maxTime: 0,
|
||||||
minTime: 0,
|
minTime: 0,
|
||||||
type: 0,
|
type: 0,
|
||||||
@@ -666,7 +666,7 @@ export const useTransactionsStore = defineStore('transactions', {
|
|||||||
this.transactionListStateInvalid = invalidState;
|
this.transactionListStateInvalid = invalidState;
|
||||||
},
|
},
|
||||||
resetTransactions() {
|
resetTransactions() {
|
||||||
this.transactionsFilter.dateType = datetimeConstants.allDateRanges.All.type;
|
this.transactionsFilter.dateType = DateRange.All.type;
|
||||||
this.transactionsFilter.maxTime = 0;
|
this.transactionsFilter.maxTime = 0;
|
||||||
this.transactionsFilter.minTime = 0;
|
this.transactionsFilter.minTime = 0;
|
||||||
this.transactionsFilter.type = 0;
|
this.transactionsFilter.type = 0;
|
||||||
@@ -689,7 +689,7 @@ export const useTransactionsStore = defineStore('transactions', {
|
|||||||
if (filter && isNumber(filter.dateType)) {
|
if (filter && isNumber(filter.dateType)) {
|
||||||
this.transactionsFilter.dateType = filter.dateType;
|
this.transactionsFilter.dateType = filter.dateType;
|
||||||
} else {
|
} else {
|
||||||
this.transactionsFilter.dateType = datetimeConstants.allDateRanges.All.type;
|
this.transactionsFilter.dateType = DateRange.All.type;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (filter && isNumber(filter.maxTime)) {
|
if (filter && isNumber(filter.maxTime)) {
|
||||||
@@ -776,9 +776,9 @@ export const useTransactionsStore = defineStore('transactions', {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (filter && isString(filter.accountIds) && this.transactionsFilter.accountIds !== filter.accountIds) {
|
if (filter && isString(filter.accountIds) && this.transactionsFilter.accountIds !== filter.accountIds) {
|
||||||
if (datetimeConstants.allBillingCycleDateRangesMap[this.transactionsFilter.dateType] &&
|
if (DateRange.isBillingCycle(this.transactionsFilter.dateType) &&
|
||||||
(!accountsStore.getAccountStatementDate(filter.accountIds) || accountsStore.getAccountStatementDate(filter.accountIds) !== accountsStore.getAccountStatementDate(this.transactionsFilter.accountIds))) {
|
(!accountsStore.getAccountStatementDate(filter.accountIds) || accountsStore.getAccountStatementDate(filter.accountIds) !== accountsStore.getAccountStatementDate(this.transactionsFilter.accountIds))) {
|
||||||
this.transactionsFilter.dateType = datetimeConstants.allDateRanges.Custom.type;
|
this.transactionsFilter.dateType = DateRange.Custom.type;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.transactionsFilter.accountIds = filter.accountIds;
|
this.transactionsFilter.accountIds = filter.accountIds;
|
||||||
@@ -833,7 +833,7 @@ export const useTransactionsStore = defineStore('transactions', {
|
|||||||
|
|
||||||
querys.push('dateType=' + this.transactionsFilter.dateType);
|
querys.push('dateType=' + this.transactionsFilter.dateType);
|
||||||
|
|
||||||
if (datetimeConstants.allBillingCycleDateRangesMap[this.transactionsFilter.dateType] || this.transactionsFilter.dateType === datetimeConstants.allDateRanges.Custom.type) {
|
if (DateRange.isBillingCycle(this.transactionsFilter.dateType) || this.transactionsFilter.dateType === DateRange.Custom.type) {
|
||||||
querys.push('maxTime=' + this.transactionsFilter.maxTime);
|
querys.push('maxTime=' + this.transactionsFilter.maxTime);
|
||||||
querys.push('minTime=' + this.transactionsFilter.minTime);
|
querys.push('minTime=' + this.transactionsFilter.minTime);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -196,7 +196,7 @@ import { useUserStore } from '@/stores/user.js';
|
|||||||
import { useAccountsStore } from '@/stores/account.js';
|
import { useAccountsStore } from '@/stores/account.js';
|
||||||
import { useOverviewStore } from '@/stores/overview.js';
|
import { useOverviewStore } from '@/stores/overview.js';
|
||||||
|
|
||||||
import datetimeConstants from '@/consts/datetime.js';
|
import { DateRange } from '@/core/datetime.ts';
|
||||||
import { ThemeType } from '@/core/theme.ts';
|
import { ThemeType } from '@/core/theme.ts';
|
||||||
import {
|
import {
|
||||||
formatUnixTime,
|
formatUnixTime,
|
||||||
@@ -260,7 +260,7 @@ export default {
|
|||||||
return this.userStore.currentUserDefaultCurrency;
|
return this.userStore.currentUserDefaultCurrency;
|
||||||
},
|
},
|
||||||
allDateRanges() {
|
allDateRanges() {
|
||||||
return datetimeConstants.allDateRanges;
|
return DateRange.all();
|
||||||
},
|
},
|
||||||
allAccounts() {
|
allAccounts() {
|
||||||
return this.accountsStore.allAccounts;
|
return this.accountsStore.allAccounts;
|
||||||
@@ -389,7 +389,7 @@ export default {
|
|||||||
const maxTime = getUnixTimeBeforeUnixTime(getUnixTimeAfterUnixTime(minTime, 1, 'months'), 1, 'seconds');
|
const maxTime = getUnixTimeBeforeUnixTime(getUnixTimeAfterUnixTime(minTime, 1, 'months'), 1, 'seconds');
|
||||||
const type = e.transactionType;
|
const type = e.transactionType;
|
||||||
|
|
||||||
this.$router.push(`/transaction/list?type=${type}&dateType=${datetimeConstants.allDateRanges.Custom.type}&maxTime=${maxTime}&minTime=${minTime}`);
|
this.$router.push(`/transaction/list?type=${type}&dateType=${DateRange.Custom.type}&maxTime=${maxTime}&minTime=${minTime}`);
|
||||||
},
|
},
|
||||||
getDisplayCurrency(value, currencyCode) {
|
getDisplayCurrency(value, currencyCode) {
|
||||||
return this.$locale.formatAmountWithCurrency(this.settingsStore, this.userStore, value, currencyCode);
|
return this.$locale.formatAmountWithCurrency(this.settingsStore, this.userStore, value, currencyCode);
|
||||||
|
|||||||
@@ -128,7 +128,7 @@
|
|||||||
import { mapStores } from 'pinia';
|
import { mapStores } from 'pinia';
|
||||||
import { useSettingsStore } from '@/stores/setting.js';
|
import { useSettingsStore } from '@/stores/setting.js';
|
||||||
|
|
||||||
import datetimeConstants from '@/consts/datetime.js';
|
import { DateRangeScene } from '@/core/datetime.ts';
|
||||||
import statisticsConstants from '@/consts/statistics.js';
|
import statisticsConstants from '@/consts/statistics.js';
|
||||||
|
|
||||||
import AccountFilterSettingsCard from '@/views/desktop/common/cards/AccountFilterSettingsCard.vue';
|
import AccountFilterSettingsCard from '@/views/desktop/common/cards/AccountFilterSettingsCard.vue';
|
||||||
@@ -154,13 +154,13 @@ export default {
|
|||||||
return this.$locale.getAllCategoricalChartTypes();
|
return this.$locale.getAllCategoricalChartTypes();
|
||||||
},
|
},
|
||||||
allCategoricalChartDateRanges() {
|
allCategoricalChartDateRanges() {
|
||||||
return this.$locale.getAllDateRanges(datetimeConstants.allDateRangeScenes.Normal, false);
|
return this.$locale.getAllDateRanges(DateRangeScene.Normal, false);
|
||||||
},
|
},
|
||||||
allTrendChartTypes() {
|
allTrendChartTypes() {
|
||||||
return this.$locale.getAllTrendChartTypes();
|
return this.$locale.getAllTrendChartTypes();
|
||||||
},
|
},
|
||||||
allTrendChartDateRanges() {
|
allTrendChartDateRanges() {
|
||||||
return this.$locale.getAllDateRanges(datetimeConstants.allDateRangeScenes.TrendAnalysis, false);
|
return this.$locale.getAllDateRanges(DateRangeScene.TrendAnalysis, false);
|
||||||
},
|
},
|
||||||
defaultChartDataType: {
|
defaultChartDataType: {
|
||||||
get: function () {
|
get: function () {
|
||||||
|
|||||||
@@ -323,9 +323,9 @@ import { useAccountsStore } from '@/stores/account.js';
|
|||||||
import { useTransactionCategoriesStore } from '@/stores/transactionCategory.js';
|
import { useTransactionCategoriesStore } from '@/stores/transactionCategory.js';
|
||||||
import { useStatisticsStore } from '@/stores/statistics.js';
|
import { useStatisticsStore } from '@/stores/statistics.js';
|
||||||
|
|
||||||
import datetimeConstants from '@/consts/datetime.js';
|
import { DateRangeScene, DateRange } from '@/core/datetime.ts';
|
||||||
import statisticsConstants from '@/consts/statistics.js';
|
|
||||||
import { ThemeType } from '@/core/theme.ts';
|
import { ThemeType } from '@/core/theme.ts';
|
||||||
|
import statisticsConstants from '@/consts/statistics.js';
|
||||||
import {
|
import {
|
||||||
isDefined,
|
isDefined,
|
||||||
limitText,
|
limitText,
|
||||||
@@ -525,13 +525,13 @@ export default {
|
|||||||
return this.$locale.getAllStatisticsDateAggregationTypes();
|
return this.$locale.getAllStatisticsDateAggregationTypes();
|
||||||
},
|
},
|
||||||
allDateRanges() {
|
allDateRanges() {
|
||||||
return datetimeConstants.allDateRanges;
|
return DateRange.all();
|
||||||
},
|
},
|
||||||
allDateRangesArray() {
|
allDateRangesArray() {
|
||||||
if (this.queryAnalysisType === statisticsConstants.allAnalysisTypes.CategoricalAnalysis) {
|
if (this.queryAnalysisType === statisticsConstants.allAnalysisTypes.CategoricalAnalysis) {
|
||||||
return this.$locale.getAllDateRanges(datetimeConstants.allDateRangeScenes.Normal, true);
|
return this.$locale.getAllDateRanges(DateRangeScene.Normal, true);
|
||||||
} else if (this.queryAnalysisType === statisticsConstants.allAnalysisTypes.TrendAnalysis) {
|
} else if (this.queryAnalysisType === statisticsConstants.allAnalysisTypes.TrendAnalysis) {
|
||||||
return this.$locale.getAllDateRanges(datetimeConstants.allDateRangeScenes.TrendAnalysis, true);
|
return this.$locale.getAllDateRanges(DateRangeScene.TrendAnalysis, true);
|
||||||
} else {
|
} else {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
@@ -670,7 +670,7 @@ export default {
|
|||||||
|
|
||||||
if (filter.categoricalChartDateType !== self.query.categoricalChartDateType) {
|
if (filter.categoricalChartDateType !== self.query.categoricalChartDateType) {
|
||||||
needReload = true;
|
needReload = true;
|
||||||
} else if (filter.categoricalChartDateType === datetimeConstants.allDateRanges.Custom.type) {
|
} else if (filter.categoricalChartDateType === DateRange.Custom.type) {
|
||||||
if (filter.categoricalChartStartTime !== self.query.categoricalChartStartTime
|
if (filter.categoricalChartStartTime !== self.query.categoricalChartStartTime
|
||||||
|| filter.categoricalChartEndTime !== self.query.categoricalChartEndTime) {
|
|| filter.categoricalChartEndTime !== self.query.categoricalChartEndTime) {
|
||||||
needReload = true;
|
needReload = true;
|
||||||
@@ -689,7 +689,7 @@ export default {
|
|||||||
|
|
||||||
if (filter.trendChartDateType !== self.query.trendChartDateType) {
|
if (filter.trendChartDateType !== self.query.trendChartDateType) {
|
||||||
needReload = true;
|
needReload = true;
|
||||||
} else if (filter.trendChartDateType === datetimeConstants.allDateRanges.Custom.type) {
|
} else if (filter.trendChartDateType === DateRange.Custom.type) {
|
||||||
if (filter.trendChartStartYearMonth !== self.query.trendChartStartYearMonth
|
if (filter.trendChartStartYearMonth !== self.query.trendChartStartYearMonth
|
||||||
|| filter.trendChartEndYearMonth !== self.query.trendChartEndYearMonth) {
|
|| filter.trendChartEndYearMonth !== self.query.trendChartEndYearMonth) {
|
||||||
needReload = true;
|
needReload = true;
|
||||||
@@ -913,7 +913,7 @@ export default {
|
|||||||
let changed = false;
|
let changed = false;
|
||||||
|
|
||||||
if (this.queryAnalysisType === statisticsConstants.allAnalysisTypes.CategoricalAnalysis) {
|
if (this.queryAnalysisType === statisticsConstants.allAnalysisTypes.CategoricalAnalysis) {
|
||||||
const chartDateType = getDateTypeByDateRange(startTime, endTime, this.firstDayOfWeek, datetimeConstants.allDateRangeScenes.Normal);
|
const chartDateType = getDateTypeByDateRange(startTime, endTime, this.firstDayOfWeek, DateRangeScene.Normal);
|
||||||
|
|
||||||
changed = this.statisticsStore.updateTransactionStatisticsFilter({
|
changed = this.statisticsStore.updateTransactionStatisticsFilter({
|
||||||
categoricalChartDateType: chartDateType,
|
categoricalChartDateType: chartDateType,
|
||||||
@@ -923,7 +923,7 @@ export default {
|
|||||||
|
|
||||||
this.showCustomDateRangeDialog = false;
|
this.showCustomDateRangeDialog = false;
|
||||||
} else if (this.queryAnalysisType === statisticsConstants.allAnalysisTypes.TrendAnalysis) {
|
} else if (this.queryAnalysisType === statisticsConstants.allAnalysisTypes.TrendAnalysis) {
|
||||||
const chartDateType = getDateTypeByDateRange(getYearMonthFirstUnixTime(startTime), getYearMonthLastUnixTime(endTime), this.firstDayOfWeek, datetimeConstants.allDateRangeScenes.TrendAnalysis);
|
const chartDateType = getDateTypeByDateRange(getYearMonthFirstUnixTime(startTime), getYearMonthLastUnixTime(endTime), this.firstDayOfWeek, DateRangeScene.TrendAnalysis);
|
||||||
|
|
||||||
changed = this.statisticsStore.updateTransactionStatisticsFilter({
|
changed = this.statisticsStore.updateTransactionStatisticsFilter({
|
||||||
trendChartDateType: chartDateType,
|
trendChartDateType: chartDateType,
|
||||||
@@ -970,7 +970,7 @@ export default {
|
|||||||
let changed = false;
|
let changed = false;
|
||||||
|
|
||||||
if (this.queryAnalysisType === statisticsConstants.allAnalysisTypes.CategoricalAnalysis) {
|
if (this.queryAnalysisType === statisticsConstants.allAnalysisTypes.CategoricalAnalysis) {
|
||||||
const newDateRange = getShiftedDateRangeAndDateType(this.query.categoricalChartStartTime, this.query.categoricalChartEndTime, scale, this.firstDayOfWeek, datetimeConstants.allDateRangeScenes.Normal);
|
const newDateRange = getShiftedDateRangeAndDateType(this.query.categoricalChartStartTime, this.query.categoricalChartEndTime, scale, this.firstDayOfWeek, DateRangeScene.Normal);
|
||||||
|
|
||||||
changed = this.statisticsStore.updateTransactionStatisticsFilter({
|
changed = this.statisticsStore.updateTransactionStatisticsFilter({
|
||||||
categoricalChartDateType: newDateRange.dateType,
|
categoricalChartDateType: newDateRange.dateType,
|
||||||
@@ -978,7 +978,7 @@ export default {
|
|||||||
categoricalChartEndTime: newDateRange.maxTime
|
categoricalChartEndTime: newDateRange.maxTime
|
||||||
});
|
});
|
||||||
} else if (this.queryAnalysisType === statisticsConstants.allAnalysisTypes.TrendAnalysis) {
|
} else if (this.queryAnalysisType === statisticsConstants.allAnalysisTypes.TrendAnalysis) {
|
||||||
const newDateRange = getShiftedDateRangeAndDateType(getYearMonthFirstUnixTime(this.query.trendChartStartYearMonth), getYearMonthLastUnixTime(this.query.trendChartEndYearMonth), scale, this.firstDayOfWeek, datetimeConstants.allDateRangeScenes.TrendAnalysis);
|
const newDateRange = getShiftedDateRangeAndDateType(getYearMonthFirstUnixTime(this.query.trendChartStartYearMonth), getYearMonthLastUnixTime(this.query.trendChartEndYearMonth), scale, this.firstDayOfWeek, DateRangeScene.TrendAnalysis);
|
||||||
|
|
||||||
changed = this.statisticsStore.updateTransactionStatisticsFilter({
|
changed = this.statisticsStore.updateTransactionStatisticsFilter({
|
||||||
trendChartDateType: newDateRange.dateType,
|
trendChartDateType: newDateRange.dateType,
|
||||||
|
|||||||
@@ -595,11 +595,11 @@ import { useTransactionTagsStore } from '@/stores/transactionTag.js';
|
|||||||
import { useTransactionsStore } from '@/stores/transaction.js';
|
import { useTransactionsStore } from '@/stores/transaction.js';
|
||||||
import { useTransactionTemplatesStore } from '@/stores/transactionTemplate.js';
|
import { useTransactionTemplatesStore } from '@/stores/transactionTemplate.js';
|
||||||
|
|
||||||
|
import { DateRangeScene, DateRange } from '@/core/datetime.ts';
|
||||||
import { AccountType } from '@/core/account.ts';
|
import { AccountType } from '@/core/account.ts';
|
||||||
import { TransactionType, TransactionTagFilterType } from '@/core/transaction.ts';
|
import { TransactionType, TransactionTagFilterType } from '@/core/transaction.ts';
|
||||||
import { TemplateType } from '@/core/template.ts';
|
import { TemplateType } from '@/core/template.ts';
|
||||||
import numeralConstants from '@/consts/numeral.js';
|
import numeralConstants from '@/consts/numeral.js';
|
||||||
import datetimeConstants from '@/consts/datetime.js';
|
|
||||||
import { isString, isNumber, getNameByKeyValue } from '@/lib/common.ts';
|
import { isString, isNumber, getNameByKeyValue } from '@/lib/common.ts';
|
||||||
import logger from '@/lib/logger.js';
|
import logger from '@/lib/logger.js';
|
||||||
import {
|
import {
|
||||||
@@ -746,10 +746,10 @@ export default {
|
|||||||
return this.userStore.currentUserFirstDayOfWeek;
|
return this.userStore.currentUserFirstDayOfWeek;
|
||||||
},
|
},
|
||||||
allDateRangesArray() {
|
allDateRangesArray() {
|
||||||
return this.$locale.getAllDateRanges(datetimeConstants.allDateRangeScenes.Normal, true, !!this.accountsStore.getAccountStatementDate(this.query.accountIds));
|
return this.$locale.getAllDateRanges(DateRangeScene.Normal, true, !!this.accountsStore.getAccountStatementDate(this.query.accountIds));
|
||||||
},
|
},
|
||||||
allDateRanges() {
|
allDateRanges() {
|
||||||
return datetimeConstants.allDateRanges;
|
return DateRange.all();
|
||||||
},
|
},
|
||||||
recentDateRangeType: {
|
recentDateRangeType: {
|
||||||
get: function () {
|
get: function () {
|
||||||
@@ -1118,7 +1118,7 @@ export default {
|
|||||||
let dateRange = getDateRangeByDateType(query.dateType ? parseInt(query.dateType) : undefined, this.firstDayOfWeek);
|
let dateRange = getDateRangeByDateType(query.dateType ? parseInt(query.dateType) : undefined, this.firstDayOfWeek);
|
||||||
|
|
||||||
if (!dateRange &&
|
if (!dateRange &&
|
||||||
(datetimeConstants.allBillingCycleDateRangesMap[query.dateType] || query.dateType === datetimeConstants.allDateRanges.Custom.type.toString()) &&
|
(DateRange.isBillingCycle(query.dateType) || query.dateType === DateRange.Custom.type.toString()) &&
|
||||||
parseInt(query.maxTime) > 0 && parseInt(query.minTime) > 0) {
|
parseInt(query.maxTime) > 0 && parseInt(query.minTime) > 0) {
|
||||||
dateRange = {
|
dateRange = {
|
||||||
dateType: parseInt(query.dateType),
|
dateType: parseInt(query.dateType),
|
||||||
@@ -1208,18 +1208,18 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
shiftDateRange(startTime, endTime, scale) {
|
shiftDateRange(startTime, endTime, scale) {
|
||||||
if (this.recentDateRangeType === datetimeConstants.allDateRanges.All.type) {
|
if (this.recentDateRangeType === DateRange.All.type) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let newDateRange = null;
|
let newDateRange = null;
|
||||||
|
|
||||||
if (datetimeConstants.allBillingCycleDateRangesMap[this.query.dateType] || this.query.dateType === this.allDateRanges.Custom.type) {
|
if (DateRange.isBillingCycle(this.query.dateType) || this.query.dateType === this.allDateRanges.Custom.type) {
|
||||||
newDateRange = getShiftedDateRangeAndDateTypeForBillingCycle(startTime, endTime, scale, this.firstDayOfWeek, datetimeConstants.allDateRangeScenes.Normal, this.accountsStore.getAccountStatementDate(this.query.accountIds));
|
newDateRange = getShiftedDateRangeAndDateTypeForBillingCycle(startTime, endTime, scale, this.firstDayOfWeek, DateRangeScene.Normal, this.accountsStore.getAccountStatementDate(this.query.accountIds));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!newDateRange) {
|
if (!newDateRange) {
|
||||||
newDateRange = getShiftedDateRangeAndDateType(startTime, endTime, scale, this.firstDayOfWeek, datetimeConstants.allDateRangeScenes.Normal);
|
newDateRange = getShiftedDateRangeAndDateType(startTime, endTime, scale, this.firstDayOfWeek, DateRangeScene.Normal);
|
||||||
}
|
}
|
||||||
|
|
||||||
const changed = this.transactionsStore.updateTransactionListFilter({
|
const changed = this.transactionsStore.updateTransactionListFilter({
|
||||||
@@ -1237,14 +1237,14 @@ export default {
|
|||||||
},
|
},
|
||||||
changeDateFilter(dateRange) {
|
changeDateFilter(dateRange) {
|
||||||
if (isNumber(dateRange)) {
|
if (isNumber(dateRange)) {
|
||||||
if (datetimeConstants.allBillingCycleDateRangesMap[dateRange]) {
|
if (DateRange.isBillingCycle(dateRange)) {
|
||||||
dateRange = getDateRangeByBillingCycleDateType(dateRange, this.firstDayOfWeek, this.accountsStore.getAccountStatementDate(this.query.accountIds));
|
dateRange = getDateRangeByBillingCycleDateType(dateRange, this.firstDayOfWeek, this.accountsStore.getAccountStatementDate(this.query.accountIds));
|
||||||
} else {
|
} else {
|
||||||
dateRange = getDateRangeByDateType(dateRange, this.firstDayOfWeek);
|
dateRange = getDateRangeByDateType(dateRange, this.firstDayOfWeek);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dateRange.dateType === datetimeConstants.allDateRanges.Custom.type &&
|
if (dateRange.dateType === DateRange.Custom.type &&
|
||||||
!dateRange.minTime && !dateRange.maxTime) { // Custom
|
!dateRange.minTime && !dateRange.maxTime) { // Custom
|
||||||
if (!this.query.minTime || !this.query.maxTime) {
|
if (!this.query.minTime || !this.query.maxTime) {
|
||||||
this.customMaxDatetime = getActualUnixTimeForStore(getCurrentUnixTime(), this.currentTimezoneOffsetMinutes, getBrowserTimezoneOffsetMinutes());
|
this.customMaxDatetime = getActualUnixTimeForStore(getCurrentUnixTime(), this.currentTimezoneOffsetMinutes, getBrowserTimezoneOffsetMinutes());
|
||||||
@@ -1280,10 +1280,10 @@ export default {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let dateType = getDateTypeByBillingCycleDateRange(minTime, maxTime, this.firstDayOfWeek, datetimeConstants.allDateRangeScenes.Normal, this.accountsStore.getAccountStatementDate(this.query.accountIds));
|
let dateType = getDateTypeByBillingCycleDateRange(minTime, maxTime, this.firstDayOfWeek, DateRangeScene.Normal, this.accountsStore.getAccountStatementDate(this.query.accountIds));
|
||||||
|
|
||||||
if (!dateType) {
|
if (!dateType) {
|
||||||
dateType = getDateTypeByDateRange(minTime, maxTime, this.firstDayOfWeek, datetimeConstants.allDateRangeScenes.Normal);
|
dateType = getDateTypeByDateRange(minTime, maxTime, this.firstDayOfWeek, DateRangeScene.Normal);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.query.dateType === dateType && this.query.maxTime === maxTime && this.query.minTime === minTime) {
|
if (this.query.dateType === dateType && this.query.maxTime === maxTime && this.query.minTime === minTime) {
|
||||||
|
|||||||
@@ -337,7 +337,7 @@ import { useUserStore } from '@/stores/user.js';
|
|||||||
import { useAccountsStore } from '@/stores/account.js';
|
import { useAccountsStore } from '@/stores/account.js';
|
||||||
import { useOverviewStore } from '@/stores/overview.js';
|
import { useOverviewStore } from '@/stores/overview.js';
|
||||||
|
|
||||||
import datetimeConstants from '@/consts/datetime.js';
|
import { WeekDay } from '@/core/datetime.ts';
|
||||||
import { SUPPORTED_IMAGE_EXTENSIONS } from '@/consts/file.ts';
|
import { SUPPORTED_IMAGE_EXTENSIONS } from '@/consts/file.ts';
|
||||||
import { getNameByKeyValue } from '@/lib/common.ts';
|
import { getNameByKeyValue } from '@/lib/common.ts';
|
||||||
import { generateRandomUUID } from '@/lib/misc.ts';
|
import { generateRandomUUID } from '@/lib/misc.ts';
|
||||||
@@ -354,7 +354,7 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
const self = this;
|
const self = this;
|
||||||
const defaultFirstDayOfWeekName = self.$locale.getDefaultFirstDayOfWeek();
|
const defaultFirstDayOfWeekName = self.$locale.getDefaultFirstDayOfWeek();
|
||||||
const defaultFirstDayOfWeek = datetimeConstants.allWeekDays[defaultFirstDayOfWeekName] ? datetimeConstants.allWeekDays[defaultFirstDayOfWeekName].type : datetimeConstants.defaultFirstDayOfWeek;
|
const defaultFirstDayOfWeek = WeekDay.parse(defaultFirstDayOfWeekName) ? WeekDay.parse(defaultFirstDayOfWeekName).type : WeekDay.DefaultFirstDay.type;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
newProfile: {
|
newProfile: {
|
||||||
|
|||||||
@@ -207,7 +207,7 @@ import { useUserStore } from '@/stores/user.js';
|
|||||||
import { useTransactionTemplatesStore } from '@/stores/transactionTemplate.js';
|
import { useTransactionTemplatesStore } from '@/stores/transactionTemplate.js';
|
||||||
import { useOverviewStore } from '@/stores/overview.js';
|
import { useOverviewStore } from '@/stores/overview.js';
|
||||||
|
|
||||||
import datetimeConstants from '@/consts/datetime.js';
|
import { DateRange } from '@/core/datetime.ts';
|
||||||
import { TemplateType } from '@/core/template.ts';
|
import { TemplateType } from '@/core/template.ts';
|
||||||
import { formatUnixTime } from '@/lib/datetime.js';
|
import { formatUnixTime } from '@/lib/datetime.js';
|
||||||
|
|
||||||
@@ -239,7 +239,7 @@ export default {
|
|||||||
return allTemplates[TemplateType.Normal.type] || [];
|
return allTemplates[TemplateType.Normal.type] || [];
|
||||||
},
|
},
|
||||||
allDateRanges() {
|
allDateRanges() {
|
||||||
return datetimeConstants.allDateRanges;
|
return DateRange.all();
|
||||||
},
|
},
|
||||||
displayDateRange() {
|
displayDateRange() {
|
||||||
const self = this;
|
const self = this;
|
||||||
|
|||||||
@@ -91,7 +91,7 @@
|
|||||||
import { mapStores } from 'pinia';
|
import { mapStores } from 'pinia';
|
||||||
import { useSettingsStore } from '@/stores/setting.js';
|
import { useSettingsStore } from '@/stores/setting.js';
|
||||||
|
|
||||||
import datetimeConstants from '@/consts/datetime.js';
|
import { DateRangeScene } from '@/core/datetime.ts';
|
||||||
import statisticsConstants from '@/consts/statistics.js';
|
import statisticsConstants from '@/consts/statistics.js';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@@ -110,13 +110,13 @@ export default {
|
|||||||
return this.$locale.getAllCategoricalChartTypes();
|
return this.$locale.getAllCategoricalChartTypes();
|
||||||
},
|
},
|
||||||
allCategoricalChartDateRanges() {
|
allCategoricalChartDateRanges() {
|
||||||
return this.$locale.getAllDateRanges(datetimeConstants.allDateRangeScenes.Normal, false);
|
return this.$locale.getAllDateRanges(DateRangeScene.Normal, false);
|
||||||
},
|
},
|
||||||
allTrendChartTypes() {
|
allTrendChartTypes() {
|
||||||
return this.$locale.getAllTrendChartTypes();
|
return this.$locale.getAllTrendChartTypes();
|
||||||
},
|
},
|
||||||
allTrendChartDateRanges() {
|
allTrendChartDateRanges() {
|
||||||
return this.$locale.getAllDateRanges(datetimeConstants.allDateRangeScenes.TrendAnalysis, false);
|
return this.$locale.getAllDateRanges(DateRangeScene.TrendAnalysis, false);
|
||||||
},
|
},
|
||||||
defaultChartDataType: {
|
defaultChartDataType: {
|
||||||
get: function () {
|
get: function () {
|
||||||
|
|||||||
@@ -331,7 +331,7 @@ import { useAccountsStore } from '@/stores/account.js';
|
|||||||
import { useTransactionCategoriesStore } from '@/stores/transactionCategory.js';
|
import { useTransactionCategoriesStore } from '@/stores/transactionCategory.js';
|
||||||
import { useStatisticsStore } from '@/stores/statistics.js';
|
import { useStatisticsStore } from '@/stores/statistics.js';
|
||||||
|
|
||||||
import datetimeConstants from '@/consts/datetime.js';
|
import { DateRangeScene, DateRange } from '@/core/datetime.ts';
|
||||||
import statisticsConstants from '@/consts/statistics.js';
|
import statisticsConstants from '@/consts/statistics.js';
|
||||||
import { getNameByKeyValue, limitText } from '@/lib/common.ts';
|
import { getNameByKeyValue, limitText } from '@/lib/common.ts';
|
||||||
import { formatPercent } from '@/lib/numeral.js';
|
import { formatPercent } from '@/lib/numeral.js';
|
||||||
@@ -458,13 +458,13 @@ export default {
|
|||||||
return this.$locale.getAllStatisticsDateAggregationTypes();
|
return this.$locale.getAllStatisticsDateAggregationTypes();
|
||||||
},
|
},
|
||||||
allDateRanges() {
|
allDateRanges() {
|
||||||
return datetimeConstants.allDateRanges;
|
return DateRange.all();
|
||||||
},
|
},
|
||||||
allDateRangesArray() {
|
allDateRangesArray() {
|
||||||
if (this.analysisType === statisticsConstants.allAnalysisTypes.CategoricalAnalysis) {
|
if (this.analysisType === statisticsConstants.allAnalysisTypes.CategoricalAnalysis) {
|
||||||
return this.$locale.getAllDateRanges(datetimeConstants.allDateRangeScenes.Normal, true);
|
return this.$locale.getAllDateRanges(DateRangeScene.Normal, true);
|
||||||
} else if (this.analysisType === statisticsConstants.allAnalysisTypes.TrendAnalysis) {
|
} else if (this.analysisType === statisticsConstants.allAnalysisTypes.TrendAnalysis) {
|
||||||
return this.$locale.getAllDateRanges(datetimeConstants.allDateRangeScenes.TrendAnalysis, true);
|
return this.$locale.getAllDateRanges(DateRangeScene.TrendAnalysis, true);
|
||||||
} else {
|
} else {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
@@ -711,7 +711,7 @@ export default {
|
|||||||
let changed = false;
|
let changed = false;
|
||||||
|
|
||||||
if (this.analysisType === statisticsConstants.allAnalysisTypes.CategoricalAnalysis) {
|
if (this.analysisType === statisticsConstants.allAnalysisTypes.CategoricalAnalysis) {
|
||||||
const chartDateType = getDateTypeByDateRange(startTime, endTime, this.firstDayOfWeek, datetimeConstants.allDateRangeScenes.Normal);
|
const chartDateType = getDateTypeByDateRange(startTime, endTime, this.firstDayOfWeek, DateRangeScene.Normal);
|
||||||
|
|
||||||
changed = this.statisticsStore.updateTransactionStatisticsFilter({
|
changed = this.statisticsStore.updateTransactionStatisticsFilter({
|
||||||
categoricalChartDateType: chartDateType,
|
categoricalChartDateType: chartDateType,
|
||||||
@@ -721,7 +721,7 @@ export default {
|
|||||||
|
|
||||||
this.showCustomDateRangeSheet = false;
|
this.showCustomDateRangeSheet = false;
|
||||||
} else if (this.analysisType === statisticsConstants.allAnalysisTypes.TrendAnalysis) {
|
} else if (this.analysisType === statisticsConstants.allAnalysisTypes.TrendAnalysis) {
|
||||||
const chartDateType = getDateTypeByDateRange(getYearMonthFirstUnixTime(startTime), getYearMonthLastUnixTime(endTime), this.firstDayOfWeek, datetimeConstants.allDateRangeScenes.TrendAnalysis);
|
const chartDateType = getDateTypeByDateRange(getYearMonthFirstUnixTime(startTime), getYearMonthLastUnixTime(endTime), this.firstDayOfWeek, DateRangeScene.TrendAnalysis);
|
||||||
|
|
||||||
this.statisticsStore.updateTransactionStatisticsFilter({
|
this.statisticsStore.updateTransactionStatisticsFilter({
|
||||||
trendChartDateType: chartDateType,
|
trendChartDateType: chartDateType,
|
||||||
@@ -766,7 +766,7 @@ export default {
|
|||||||
let changed = false;
|
let changed = false;
|
||||||
|
|
||||||
if (this.analysisType === statisticsConstants.allAnalysisTypes.CategoricalAnalysis) {
|
if (this.analysisType === statisticsConstants.allAnalysisTypes.CategoricalAnalysis) {
|
||||||
const newDateRange = getShiftedDateRangeAndDateType(query.categoricalChartStartTime, query.categoricalChartEndTime, scale, this.firstDayOfWeek, datetimeConstants.allDateRangeScenes.Normal);
|
const newDateRange = getShiftedDateRangeAndDateType(query.categoricalChartStartTime, query.categoricalChartEndTime, scale, this.firstDayOfWeek, DateRangeScene.Normal);
|
||||||
|
|
||||||
changed = this.statisticsStore.updateTransactionStatisticsFilter({
|
changed = this.statisticsStore.updateTransactionStatisticsFilter({
|
||||||
categoricalChartDateType: newDateRange.dateType,
|
categoricalChartDateType: newDateRange.dateType,
|
||||||
@@ -774,7 +774,7 @@ export default {
|
|||||||
categoricalChartEndTime: newDateRange.maxTime
|
categoricalChartEndTime: newDateRange.maxTime
|
||||||
});
|
});
|
||||||
} else if (this.analysisType === statisticsConstants.allAnalysisTypes.TrendAnalysis) {
|
} else if (this.analysisType === statisticsConstants.allAnalysisTypes.TrendAnalysis) {
|
||||||
const newDateRange = getShiftedDateRangeAndDateType(getYearMonthFirstUnixTime(query.trendChartStartYearMonth), getYearMonthLastUnixTime(query.trendChartEndYearMonth), scale, this.firstDayOfWeek, datetimeConstants.allDateRangeScenes.TrendAnalysis);
|
const newDateRange = getShiftedDateRangeAndDateType(getYearMonthFirstUnixTime(query.trendChartStartYearMonth), getYearMonthLastUnixTime(query.trendChartEndYearMonth), scale, this.firstDayOfWeek, DateRangeScene.TrendAnalysis);
|
||||||
|
|
||||||
changed = this.statisticsStore.updateTransactionStatisticsFilter({
|
changed = this.statisticsStore.updateTransactionStatisticsFilter({
|
||||||
trendChartDateType: newDateRange.dateType,
|
trendChartDateType: newDateRange.dateType,
|
||||||
|
|||||||
@@ -528,10 +528,10 @@ import { useTransactionCategoriesStore } from '@/stores/transactionCategory.js';
|
|||||||
import { useTransactionTagsStore } from '@/stores/transactionTag.js';
|
import { useTransactionTagsStore } from '@/stores/transactionTag.js';
|
||||||
import { useTransactionsStore } from '@/stores/transaction.js';
|
import { useTransactionsStore } from '@/stores/transaction.js';
|
||||||
|
|
||||||
|
import { DateRangeScene, DateRange } from '@/core/datetime.ts';
|
||||||
import { AccountType } from '@/core/account.ts';
|
import { AccountType } from '@/core/account.ts';
|
||||||
import { TransactionType } from '@/core/transaction.ts';
|
import { TransactionType } from '@/core/transaction.ts';
|
||||||
import numeralConstants from '@/consts/numeral.js';
|
import numeralConstants from '@/consts/numeral.js';
|
||||||
import datetimeConstants from '@/consts/datetime.js';
|
|
||||||
import { getNameByKeyValue } from '@/lib/common.ts';
|
import { getNameByKeyValue } from '@/lib/common.ts';
|
||||||
import {
|
import {
|
||||||
getCurrentUnixTime,
|
getCurrentUnixTime,
|
||||||
@@ -737,10 +737,10 @@ export default {
|
|||||||
return this.transactionTagsStore.allAvailableTagsCount;
|
return this.transactionTagsStore.allAvailableTagsCount;
|
||||||
},
|
},
|
||||||
allDateRanges() {
|
allDateRanges() {
|
||||||
return datetimeConstants.allDateRanges;
|
return DateRange.all();
|
||||||
},
|
},
|
||||||
allDateRangesArray() {
|
allDateRangesArray() {
|
||||||
return this.$locale.getAllDateRanges(datetimeConstants.allDateRangeScenes.Normal, true, !!this.accountsStore.getAccountStatementDate(this.query.accountIds));
|
return this.$locale.getAllDateRanges(DateRangeScene.Normal, true, !!this.accountsStore.getAccountStatementDate(this.query.accountIds));
|
||||||
},
|
},
|
||||||
showTotalAmountInTransactionListPage() {
|
showTotalAmountInTransactionListPage() {
|
||||||
return this.settingsStore.appSettings.showTotalAmountInTransactionListPage;
|
return this.settingsStore.appSettings.showTotalAmountInTransactionListPage;
|
||||||
@@ -756,7 +756,7 @@ export default {
|
|||||||
let dateRange = getDateRangeByDateType(query.dateType ? parseInt(query.dateType) : undefined, self.firstDayOfWeek);
|
let dateRange = getDateRangeByDateType(query.dateType ? parseInt(query.dateType) : undefined, self.firstDayOfWeek);
|
||||||
|
|
||||||
if (!dateRange &&
|
if (!dateRange &&
|
||||||
(datetimeConstants.allBillingCycleDateRangesMap[query.dateType] || query.dateType === datetimeConstants.allDateRanges.Custom.type.toString()) &&
|
(DateRange.isBillingCycle(query.dateType) || query.dateType === DateRange.Custom.type.toString()) &&
|
||||||
parseInt(query.maxTime) > 0 && parseInt(query.minTime) > 0) {
|
parseInt(query.maxTime) > 0 && parseInt(query.minTime) > 0) {
|
||||||
dateRange = {
|
dateRange = {
|
||||||
dateType: parseInt(query.dateType),
|
dateType: parseInt(query.dateType),
|
||||||
@@ -885,7 +885,7 @@ export default {
|
|||||||
|
|
||||||
let dateRange = null;
|
let dateRange = null;
|
||||||
|
|
||||||
if (datetimeConstants.allBillingCycleDateRangesMap[dateType]) {
|
if (DateRange.isBillingCycle(dateType)) {
|
||||||
dateRange = getDateRangeByBillingCycleDateType(dateType, this.firstDayOfWeek, this.accountsStore.getAccountStatementDate(this.query.accountIds));
|
dateRange = getDateRangeByBillingCycleDateType(dateType, this.firstDayOfWeek, this.accountsStore.getAccountStatementDate(this.query.accountIds));
|
||||||
} else {
|
} else {
|
||||||
dateRange = getDateRangeByDateType(dateType, this.firstDayOfWeek);
|
dateRange = getDateRangeByDateType(dateType, this.firstDayOfWeek);
|
||||||
@@ -912,10 +912,10 @@ export default {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let dateType = getDateTypeByBillingCycleDateRange(minTime, maxTime, this.firstDayOfWeek, datetimeConstants.allDateRangeScenes.Normal, this.accountsStore.getAccountStatementDate(this.query.accountIds));
|
let dateType = getDateTypeByBillingCycleDateRange(minTime, maxTime, this.firstDayOfWeek, DateRangeScene.Normal, this.accountsStore.getAccountStatementDate(this.query.accountIds));
|
||||||
|
|
||||||
if (!dateType) {
|
if (!dateType) {
|
||||||
dateType = getDateTypeByDateRange(minTime, maxTime, this.firstDayOfWeek, datetimeConstants.allDateRangeScenes.Normal);
|
dateType = getDateTypeByDateRange(minTime, maxTime, this.firstDayOfWeek, DateRangeScene.Normal);
|
||||||
}
|
}
|
||||||
|
|
||||||
const changed = this.transactionsStore.updateTransactionListFilter({
|
const changed = this.transactionsStore.updateTransactionListFilter({
|
||||||
@@ -1124,12 +1124,12 @@ export default {
|
|||||||
|
|
||||||
let newDateRange = null;
|
let newDateRange = null;
|
||||||
|
|
||||||
if (datetimeConstants.allBillingCycleDateRangesMap[this.query.dateType] || this.query.dateType === this.allDateRanges.Custom.type) {
|
if (DateRange.isBillingCycle(this.query.dateType) || this.query.dateType === this.allDateRanges.Custom.type) {
|
||||||
newDateRange = getShiftedDateRangeAndDateTypeForBillingCycle(minTime, maxTime, scale, this.firstDayOfWeek, datetimeConstants.allDateRangeScenes.Normal, this.accountsStore.getAccountStatementDate(this.query.accountIds));
|
newDateRange = getShiftedDateRangeAndDateTypeForBillingCycle(minTime, maxTime, scale, this.firstDayOfWeek, DateRangeScene.Normal, this.accountsStore.getAccountStatementDate(this.query.accountIds));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!newDateRange) {
|
if (!newDateRange) {
|
||||||
newDateRange = getShiftedDateRangeAndDateType(minTime, maxTime, scale, this.firstDayOfWeek, datetimeConstants.allDateRangeScenes.Normal);
|
newDateRange = getShiftedDateRangeAndDateType(minTime, maxTime, scale, this.firstDayOfWeek, DateRangeScene.Normal);
|
||||||
}
|
}
|
||||||
|
|
||||||
const changed = this.transactionsStore.updateTransactionListFilter({
|
const changed = this.transactionsStore.updateTransactionListFilter({
|
||||||
|
|||||||
Reference in New Issue
Block a user