| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- export type GpsMarkerStyleId = 'dot' | 'beacon' | 'disc' | 'badge'
- export type GpsMarkerSizePreset = 'small' | 'medium' | 'large'
- export type GpsMarkerAnimationProfile = 'minimal' | 'dynamic-runner' | 'warning-reactive'
- export type GpsMarkerMotionState = 'idle' | 'moving' | 'fast-moving' | 'warning'
- export type GpsMarkerColorPreset =
- | 'mint'
- | 'cyan'
- | 'sky'
- | 'blue'
- | 'violet'
- | 'pink'
- | 'orange'
- | 'yellow'
- export type GpsMarkerLogoMode = 'center-badge'
- export interface GpsMarkerColorPresetEntry {
- colorHex: string
- ringColorHex: string
- indicatorColorHex: string
- }
- export const GPS_MARKER_COLOR_PRESET_MAP: Record<GpsMarkerColorPreset, GpsMarkerColorPresetEntry> = {
- mint: {
- colorHex: '#18b39a',
- ringColorHex: '#ffffff',
- indicatorColorHex: '#9bfff0',
- },
- cyan: {
- colorHex: '#1db7cf',
- ringColorHex: '#ffffff',
- indicatorColorHex: '#b2f7ff',
- },
- sky: {
- colorHex: '#54a3ff',
- ringColorHex: '#ffffff',
- indicatorColorHex: '#d6efff',
- },
- blue: {
- colorHex: '#4568ff',
- ringColorHex: '#ffffff',
- indicatorColorHex: '#bec9ff',
- },
- violet: {
- colorHex: '#8658ff',
- ringColorHex: '#ffffff',
- indicatorColorHex: '#dbcaff',
- },
- pink: {
- colorHex: '#ff5cb5',
- ringColorHex: '#ffffff',
- indicatorColorHex: '#ffd0ea',
- },
- orange: {
- colorHex: '#ff9238',
- ringColorHex: '#ffffff',
- indicatorColorHex: '#ffd7b0',
- },
- yellow: {
- colorHex: '#f3c72b',
- ringColorHex: '#ffffff',
- indicatorColorHex: '#fff1ae',
- },
- }
- export interface GpsMarkerStyleConfig {
- visible: boolean
- style: GpsMarkerStyleId
- size: GpsMarkerSizePreset
- colorPreset: GpsMarkerColorPreset
- colorHex: string
- ringColorHex: string
- indicatorColorHex: string
- showHeadingIndicator: boolean
- animationProfile: GpsMarkerAnimationProfile
- motionState: GpsMarkerMotionState
- motionIntensity: number
- pulseStrength: number
- headingAlpha: number
- effectScale: number
- wakeStrength: number
- warningGlowStrength: number
- indicatorScale: number
- logoScale: number
- logoUrl: string
- logoMode: GpsMarkerLogoMode
- }
- export const DEFAULT_GPS_MARKER_STYLE_CONFIG: GpsMarkerStyleConfig = {
- visible: true,
- style: 'beacon',
- size: 'medium',
- colorPreset: 'cyan',
- colorHex: GPS_MARKER_COLOR_PRESET_MAP.cyan.colorHex,
- ringColorHex: GPS_MARKER_COLOR_PRESET_MAP.cyan.ringColorHex,
- indicatorColorHex: GPS_MARKER_COLOR_PRESET_MAP.cyan.indicatorColorHex,
- showHeadingIndicator: true,
- animationProfile: 'dynamic-runner',
- motionState: 'idle',
- motionIntensity: 0,
- pulseStrength: 1,
- headingAlpha: 1,
- effectScale: 1,
- wakeStrength: 0,
- warningGlowStrength: 0,
- indicatorScale: 1,
- logoScale: 1,
- logoUrl: '',
- logoMode: 'center-badge',
- }
|