diff options
author | Anton Tananaev <anton@traccar.org> | 2024-04-06 09:22:10 -0700 |
---|---|---|
committer | Anton Tananaev <anton@traccar.org> | 2024-04-06 09:22:10 -0700 |
commit | f418231b6b2f5e030a0d2dcc390c314602b1f740 (patch) | |
tree | 10326adf3792bc2697e06bb5f2b8ef2a8f7e55fe /modern/src/common/util/formatter.js | |
parent | b392a4af78e01c8e0f50aad5468e9583675b24be (diff) | |
download | trackermap-web-f418231b6b2f5e030a0d2dcc390c314602b1f740.tar.gz trackermap-web-f418231b6b2f5e030a0d2dcc390c314602b1f740.tar.bz2 trackermap-web-f418231b6b2f5e030a0d2dcc390c314602b1f740.zip |
Move modern to the top
Diffstat (limited to 'modern/src/common/util/formatter.js')
-rw-r--r-- | modern/src/common/util/formatter.js | 143 |
1 files changed, 0 insertions, 143 deletions
diff --git a/modern/src/common/util/formatter.js b/modern/src/common/util/formatter.js deleted file mode 100644 index 7b7fc96d..00000000 --- a/modern/src/common/util/formatter.js +++ /dev/null @@ -1,143 +0,0 @@ -import dayjs from 'dayjs'; -import duration from 'dayjs/plugin/duration'; -import relativeTime from 'dayjs/plugin/relativeTime'; - -import { - altitudeFromMeters, - altitudeUnitString, - distanceFromMeters, - distanceUnitString, - speedFromKnots, - speedUnitString, - volumeFromLiters, - volumeUnitString, -} from './converter'; -import { prefixString } from './stringUtils'; - -dayjs.extend(duration); -dayjs.extend(relativeTime); - -export const formatBoolean = (value, t) => (value ? t('sharedYes') : t('sharedNo')); - -export const formatNumber = (value, precision = 1) => Number(value.toFixed(precision)); - -export const formatPercentage = (value) => `${value}%`; - -export const formatTemperature = (value) => `${value}°C`; - -export const formatVoltage = (value, t) => `${value} ${t('sharedVoltAbbreviation')}`; - -export const formatConsumption = (value, t) => `${value} ${t('sharedLiterPerHourAbbreviation')}`; - -export const formatTime = (value, format, hours12) => { - if (value) { - const d = dayjs(value); - switch (format) { - case 'date': - return d.format('YYYY-MM-DD'); - case 'time': - return d.format(hours12 ? 'hh:mm:ss A' : 'HH:mm:ss'); - case 'minutes': - return d.format(hours12 ? 'YYYY-MM-DD hh:mm A' : 'YYYY-MM-DD HH:mm'); - default: - return d.format(hours12 ? 'YYYY-MM-DD hh:mm:ss A' : 'YYYY-MM-DD HH:mm:ss'); - } - } - return ''; -}; - -export const formatStatus = (value, t) => t(prefixString('deviceStatus', value)); -export const formatAlarm = (value, t) => (value ? t(prefixString('alarm', value)) : ''); - -export const formatCourse = (value) => { - const courseValues = ['\u2191', '\u2197', '\u2192', '\u2198', '\u2193', '\u2199', '\u2190', '\u2196']; - let normalizedValue = (value + 45 / 2) % 360; - if (normalizedValue < 0) { - normalizedValue += 360; - } - return courseValues[Math.floor(normalizedValue / 45)]; -}; - -export const formatDistance = (value, unit, t) => `${distanceFromMeters(value, unit).toFixed(2)} ${distanceUnitString(unit, t)}`; - -export const formatAltitude = (value, unit, t) => `${altitudeFromMeters(value, unit).toFixed(2)} ${altitudeUnitString(unit, t)}`; - -export const formatSpeed = (value, unit, t) => `${speedFromKnots(value, unit).toFixed(2)} ${speedUnitString(unit, t)}`; - -export const formatVolume = (value, unit, t) => `${volumeFromLiters(value, unit).toFixed(2)} ${volumeUnitString(unit, t)}`; - -export const formatNumericHours = (value, t) => { - const hours = Math.floor(value / 3600000); - const minutes = Math.floor((value % 3600000) / 60000); - return `${hours} ${t('sharedHourAbbreviation')} ${minutes} ${t('sharedMinuteAbbreviation')}`; -}; - -export const formatCoordinate = (key, value, unit) => { - let hemisphere; - let degrees; - let minutes; - let seconds; - - if (key === 'latitude') { - hemisphere = value >= 0 ? 'N' : 'S'; - } else { - hemisphere = value >= 0 ? 'E' : 'W'; - } - - switch (unit) { - case 'ddm': - value = Math.abs(value); - degrees = Math.floor(value); - minutes = (value - degrees) * 60; - return `${degrees}° ${minutes.toFixed(6)}' ${hemisphere}`; - case 'dms': - value = Math.abs(value); - degrees = Math.floor(value); - minutes = Math.floor((value - degrees) * 60); - seconds = Math.round((value - degrees - minutes / 60) * 3600); - return `${degrees}° ${minutes}' ${seconds}" ${hemisphere}`; - default: - return `${value.toFixed(6)}°`; - } -}; - -export const getStatusColor = (status) => { - switch (status) { - case 'online': - return 'success'; - case 'offline': - return 'error'; - case 'unknown': - default: - return 'neutral'; - } -}; - -export const getBatteryStatus = (batteryLevel) => { - if (batteryLevel >= 70) { - return 'success'; - } - if (batteryLevel > 30) { - return 'warning'; - } - return 'error'; -}; - -export const formatNotificationTitle = (t, notification, includeId) => { - let title = t(prefixString('event', notification.type)); - if (notification.type === 'alarm') { - const alarmString = notification.attributes.alarms; - if (alarmString) { - const alarms = alarmString.split(','); - if (alarms.length > 1) { - title += ` (${alarms.length})`; - } else { - title += ` ${formatAlarm(alarms[0], t)}`; - } - } - } - if (includeId) { - title += ` [${notification.id}]`; - } - return title; -}; |