mirror of
https://github.com/mayswind/ezbookkeeping.git
synced 2026-05-17 00:12:11 +08:00
migrate settings store to composition API and typescript
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
import { WeekDay } from './datetime.ts';
|
||||
import { TimezoneTypeForStatistics } from './timezone.ts';
|
||||
import { CurrencySortingType } from './currency.ts';
|
||||
import {
|
||||
CategoricalChartType,
|
||||
TrendChartType,
|
||||
ChartDataType,
|
||||
ChartSortingType,
|
||||
DEFAULT_CATEGORICAL_CHART_DATA_RANGE,
|
||||
DEFAULT_TREND_CHART_DATA_RANGE
|
||||
} from './statistics.ts';
|
||||
import { DEFAULT_CURRENCY_CODE } from '@/consts/currency.ts';
|
||||
|
||||
export type ApplicationSettingKey = string;
|
||||
export type ApplicationSettingValue = string | number | boolean | Record<string, ApplicationSettingSubValue>;
|
||||
export type ApplicationSettingSubValue = string | number | boolean | Record<string, boolean> | Record<string, number>;
|
||||
|
||||
export interface BaseApplicationSetting {
|
||||
[key: ApplicationSettingKey]: ApplicationSettingValue;
|
||||
}
|
||||
|
||||
export interface ApplicationSettings extends BaseApplicationSetting {
|
||||
theme: string;
|
||||
fontSize: number;
|
||||
timeZone: string;
|
||||
debug: boolean;
|
||||
applicationLock: boolean;
|
||||
applicationLockWebAuthn: boolean;
|
||||
autoUpdateExchangeRatesData: boolean;
|
||||
autoSaveTransactionDraft: string;
|
||||
autoGetCurrentGeoLocation: boolean;
|
||||
showAmountInHomePage: boolean;
|
||||
timezoneUsedForStatisticsInHomePage: number;
|
||||
itemsCountInTransactionListPage: number;
|
||||
showTotalAmountInTransactionListPage: boolean;
|
||||
showTagInTransactionListPage: boolean;
|
||||
showAccountBalance: boolean;
|
||||
currencySortByInExchangeRatesPage: number;
|
||||
statistics: {
|
||||
defaultChartDataType: number;
|
||||
defaultTimezoneType: number;
|
||||
defaultAccountFilter: Record<string, boolean>;
|
||||
defaultTransactionCategoryFilter: Record<string, boolean>;
|
||||
defaultSortingType: number;
|
||||
defaultCategoricalChartType: number;
|
||||
defaultCategoricalChartDataRangeType: number;
|
||||
defaultTrendChartType: number;
|
||||
defaultTrendChartDataRangeType: number;
|
||||
};
|
||||
animate: boolean;
|
||||
}
|
||||
|
||||
export interface LocaleDefaultSettings {
|
||||
currency: string;
|
||||
firstDayOfWeek: number;
|
||||
}
|
||||
|
||||
export const DEFAULT_APPLICATION_SETTINGS: ApplicationSettings = {
|
||||
theme: 'auto',
|
||||
fontSize: 1,
|
||||
timeZone: '',
|
||||
debug: false,
|
||||
applicationLock: false,
|
||||
applicationLockWebAuthn: false,
|
||||
autoUpdateExchangeRatesData: true,
|
||||
autoSaveTransactionDraft: 'disabled',
|
||||
autoGetCurrentGeoLocation: false,
|
||||
showAmountInHomePage: true,
|
||||
timezoneUsedForStatisticsInHomePage: TimezoneTypeForStatistics.Default.type,
|
||||
itemsCountInTransactionListPage: 15,
|
||||
showTotalAmountInTransactionListPage: true,
|
||||
showTagInTransactionListPage: true,
|
||||
showAccountBalance: true,
|
||||
currencySortByInExchangeRatesPage: CurrencySortingType.Default.type,
|
||||
statistics: {
|
||||
defaultChartDataType: ChartDataType.Default.type,
|
||||
defaultTimezoneType: TimezoneTypeForStatistics.Default.type,
|
||||
defaultAccountFilter: {},
|
||||
defaultTransactionCategoryFilter: {},
|
||||
defaultSortingType: ChartSortingType.Default.type,
|
||||
defaultCategoricalChartType: CategoricalChartType.Default.type,
|
||||
defaultCategoricalChartDataRangeType: DEFAULT_CATEGORICAL_CHART_DATA_RANGE.type,
|
||||
defaultTrendChartType: TrendChartType.Default.type,
|
||||
defaultTrendChartDataRangeType: DEFAULT_TREND_CHART_DATA_RANGE.type,
|
||||
},
|
||||
animate: true
|
||||
};
|
||||
|
||||
export const DEFAULT_LOCALE_SETTINGS: LocaleDefaultSettings = {
|
||||
currency: DEFAULT_CURRENCY_CODE,
|
||||
firstDayOfWeek: WeekDay.DefaultFirstDay.type
|
||||
};
|
||||
Reference in New Issue
Block a user