diff --git a/src/components/mobile/DateTimeSelectionSheet.vue b/src/components/mobile/DateTimeSelectionSheet.vue
index c3460e4b..9eb26196 100644
--- a/src/components/mobile/DateTimeSelectionSheet.vue
+++ b/src/components/mobile/DateTimeSelectionSheet.vue
@@ -35,7 +35,73 @@
@@ -49,32 +115,39 @@
diff --git a/src/core/datetime.ts b/src/core/datetime.ts
index f655d9f8..38ce0d57 100644
--- a/src/core/datetime.ts
+++ b/src/core/datetime.ts
@@ -62,11 +62,6 @@ export interface PresetDateRange {
readonly value: Date[];
}
-export interface LocalizedMeridiemIndicator {
- readonly values: string[];
- readonly displayValues: string[];
-}
-
export interface LocalizedDateTimeFormat extends TypeAndDisplayName {
readonly type: number;
readonly format: string;
diff --git a/src/lib/datetime.ts b/src/lib/datetime.ts
index 22e90a37..1c9dbff6 100644
--- a/src/lib/datetime.ts
+++ b/src/lib/datetime.ts
@@ -920,47 +920,13 @@ export function getFullMonthDateRange(minTime: number, maxTime: number, firstDay
return dateRange;
}
-export function getTimeValues(date: Date, is24Hour: boolean, isMeridiemIndicatorFirst: boolean): string[] {
- const hourMinuteSeconds = [
- getTwoDigitsString(is24Hour ? date.getHours() : getHourIn12HourFormat(date.getHours())),
- getTwoDigitsString(date.getMinutes()),
- getTwoDigitsString(date.getSeconds())
- ];
-
- if (is24Hour) {
- return hourMinuteSeconds;
- } else if (/*!is24Hour && */isMeridiemIndicatorFirst) {
- return [getAMOrPM(date.getHours())].concat(hourMinuteSeconds);
- } else /* !is24Hour && !isMeridiemIndicatorFirst */ {
- return hourMinuteSeconds.concat([getAMOrPM(date.getHours())]);
- }
-}
-
-export function getCombinedDateAndTimeValues(date: Date, timeValues: string[], is24Hour: boolean, isMeridiemIndicatorFirst: boolean): Date {
+export function getCombinedDateAndTimeValues(date: Date, hour: string, minute: string, second: string, meridiemIndicator: string, is24Hour: boolean): Date {
const newDateTime = new Date(date.valueOf());
- let hours = 0;
- let minutes = 0;
- let seconds = 0;
-
- if (is24Hour) {
- hours = parseInt(timeValues[0]);
- minutes = parseInt(timeValues[1]);
- seconds = parseInt(timeValues[2]);
- } else {
- let meridiemIndicator;
-
- if (/*!is24Hour && */isMeridiemIndicatorFirst) {
- meridiemIndicator = timeValues[0];
- hours = parseInt(timeValues[1]);
- minutes = parseInt(timeValues[2]);
- seconds = parseInt(timeValues[3]);
- } else /* !is24Hour && !isMeridiemIndicatorFirst */ {
- hours = parseInt(timeValues[0]);
- minutes = parseInt(timeValues[1]);
- seconds = parseInt(timeValues[2]);
- meridiemIndicator = timeValues[3];
- }
+ let hours = parseInt(hour);
+ let minutes = parseInt(minute);
+ let seconds = parseInt(second);
+ if (!is24Hour) {
if (hours === 12) {
hours = 0;
}
diff --git a/src/locales/helpers.ts b/src/locales/helpers.ts
index 7851cbef..5b3c5999 100644
--- a/src/locales/helpers.ts
+++ b/src/locales/helpers.ts
@@ -2,14 +2,13 @@ import { useI18n as useVueI18n } from 'vue-i18n';
import moment from 'moment-timezone';
import 'moment-timezone/moment-timezone-utils';
-import type { PartialRecord, TypeAndName, TypeAndDisplayName, LocalizedSwitchOption } from '@/core/base.ts';
+import type { PartialRecord, NameValue, TypeAndName, TypeAndDisplayName, LocalizedSwitchOption } from '@/core/base.ts';
import { type LanguageInfo, type LanguageOption, ALL_LANGUAGES, DEFAULT_LANGUAGE } from '@/locales/index.ts';
import {
type DateFormat,
type TimeFormat,
- type LocalizedMeridiemIndicator,
type LocalizedDateTimeFormat,
type LocalizedDateRange,
type LocalizedRecentMonthDateRange,
@@ -756,22 +755,20 @@ export function useI18n() {
return allCurrencies;
}
- function getAllMeridiemIndicators(): LocalizedMeridiemIndicator {
+ function getAllMeridiemIndicators(): NameValue[] {
const allMeridiemIndicators = MeridiemIndicator.values();
- const meridiemIndicatorNames = [];
const localizedMeridiemIndicatorNames = [];
for (let i = 0; i < allMeridiemIndicators.length; i++) {
const indicator = allMeridiemIndicators[i];
- meridiemIndicatorNames.push(indicator.name);
- localizedMeridiemIndicatorNames.push(t(`datetime.${indicator.name}.content`));
+ localizedMeridiemIndicatorNames.push({
+ name: t(`datetime.${indicator.name}.content`),
+ value: indicator.name
+ });
}
- return {
- values: meridiemIndicatorNames,
- displayValues: localizedMeridiemIndicatorNames
- };
+ return localizedMeridiemIndicatorNames;
}
function getAllLongMonthNames(): string[] {