Variable: CONFIG
const CONFIG: {
CHART: {
CHART_TYPES: {
ALTITUDE: "altitude";
ELEVATION: "elevation";
GPS_TRACK: "gps-track";
HEART_RATE: "heart-rate";
LAP_ZONE: "lap-zone";
POWER: "power";
SPEED: "speed";
};
DEFAULT_CHART: "elevation";
DEFAULT_COLORS: {
PRIMARY: "#667eea";
SECONDARY: "#764ba2";
};
DEFAULT_ZOOM_LEVEL: 1;
MAX_ZOOM_LEVEL: 10;
MIN_ZOOM_LEVEL: 0.1;
};
CONVERSION: {
CELSIUS_TO_FAHRENHEIT_MULTIPLIER: number;
CELSIUS_TO_FAHRENHEIT_OFFSET: 32;
DECIMAL_PLACES: 2;
DECIMAL_PLACES_PRECISE: 4;
INCHES_PER_FOOT: 12;
KG_TO_POUNDS: 2.20462;
METERS_PER_KILOMETER: 1000;
METERS_PER_MILE: 1609.344;
METERS_TO_FEET: 3.28084;
METERS_TO_INCHES: 39.3701;
MILLISECONDS_PER_SECOND: 1000;
MPS_TO_KMH: 3.6;
MPS_TO_MPH: 2.237;
SECONDS_PER_HOUR: 3600;
SECONDS_PER_MINUTE: 60;
};
DEBUG: {
CATEGORIES: {
CHARTS: "charts";
DATA: "data";
FILES: "files";
STATE: "state";
UI: "ui";
};
ENABLED: false;
LOG_LEVELS: {
DEBUG: "debug";
ERROR: "error";
INFO: "info";
WARN: "warn";
};
};
DISTANCE_UNITS: {
FEET: "feet";
KILOMETERS: "kilometers";
METERS: "meters";
MILES: "miles";
};
ERROR: {
CODES: {
FILE_NOT_FOUND: "FILE_NOT_FOUND";
INVALID_INPUT: "INVALID_INPUT";
NETWORK_ERROR: "NETWORK_ERROR";
PARSE_ERROR: "PARSE_ERROR";
PERMISSION_DENIED: "PERMISSION_DENIED";
STATE_ERROR: "STATE_ERROR";
UNKNOWN_ERROR: "UNKNOWN_ERROR";
VALIDATION_ERROR: "VALIDATION_ERROR";
};
MESSAGES: {
FILE_NOT_FOUND: "File not found";
INVALID_INPUT: "Invalid input provided";
NETWORK_ERROR: "Network connection error";
PARSE_ERROR: "Failed to parse file";
PERMISSION_DENIED: "Permission denied";
STATE_ERROR: "Application state error";
UNKNOWN_ERROR: "An unknown error occurred";
VALIDATION_ERROR: "Input validation failed";
};
};
FILE: {
DEFAULT_EXPORT_FORMAT: "gpx";
EXPORT_FORMATS: {
CSV: "csv";
GPX: "gpx";
JSON: "json";
};
IFRAME_PATHS: {
ALT_FIT: "ffv/index.html";
};
MAX_FILE_SIZE: number;
SUPPORTED_EXTENSIONS: readonly [".fit"];
SUPPORTED_MIME_TYPES: readonly ["application/octet-stream"];
};
MAP: {
DEFAULT_CENTER: readonly [0, 0];
DEFAULT_PROVIDER: "openstreetmap";
DEFAULT_ZOOM: 13;
PROVIDERS: {
OPENSTREETMAP: "openstreetmap";
SATELLITE: "satellite";
};
};
PERFORMANCE: {
CATEGORIES: {
CHARTS: "charts";
DATA_PROCESSING: "data-processing";
FILE_OPERATIONS: "file-operations";
STATE_MANAGEMENT: "state-management";
UI_RENDERING: "ui-rendering";
};
ENABLE_MONITORING: false;
MAX_HISTORY_SIZE: 100;
MEMORY_CHECK_INTERVAL: 30000;
SLOW_OPERATION_THRESHOLD: 10;
};
TEMPERATURE_UNITS: {
CELSIUS: "celsius";
FAHRENHEIT: "fahrenheit";
KELVIN: "kelvin";
};
TIME_UNITS: {
HOURS: "hours";
MILLISECONDS: "milliseconds";
MINUTES: "minutes";
SECONDS: "seconds";
};
UI: {
ANIMATION_DURATION: 300;
CSS_CLASSES: {
ACTIVE: "active";
HIDDEN: "hidden";
LOADING: "loading";
SHOW: "show";
THEMED_BTN: "themed-btn";
};
DEBOUNCE_DELAY: 250;
DEFAULT_THEME: "dark";
DOM_IDS: {
ACTIVE_FILE_NAME: "active_file_name";
ACTIVE_FILE_NAME_CONTAINER: "active_file_name_container";
ALT_FIT_IFRAME: "altfit_iframe";
CONTENT_CHART: "content_chart";
CONTENT_DATA: "content_data";
CONTENT_MAP: "content_map";
CONTENT_SUMMARY: "content_summary";
DROP_OVERLAY: "drop_overlay";
NOTIFICATION: "notification";
TAB_CHART: "tab_chart";
TAB_SUMMARY: "tab_summary";
UNLOAD_FILE_BTN: "unload_file_btn";
ZWIFT_IFRAME: "zwift_iframe";
};
HEADER_HEIGHT: 60;
NOTIFICATION_TYPES: {
ERROR: {
ariaLabel: "Error";
duration: 6000;
icon: "β";
type: "error";
};
INFO: {
ariaLabel: "Information";
duration: 4000;
icon: "βΉοΈ";
type: "info";
};
SUCCESS: {
ariaLabel: "Success";
duration: 3000;
icon: "β
";
type: "success";
};
WARNING: {
ariaLabel: "Warning";
duration: 5000;
icon: "β οΈ";
type: "warning";
};
};
SIDEBAR_WIDTH: 250;
SUMMARY_COLUMN_SELECTOR_DELAY: 100;
THEMES: {
DARK: "dark";
LIGHT: "light";
SYSTEM: "system";
};
};
VALIDATION: {
MAX_DISTANCE: 1000000;
MAX_DURATION: 86400;
MAX_SPEED: 200;
MAX_STRING_LENGTH: 1000;
MIN_DISTANCE: 0;
MIN_DURATION: 0;
MIN_SPEED: 0;
MIN_STRING_LENGTH: 1;
};
};
Defined in: utils/config/constants.ts:363
Namespaced constant groups for consumers that prefer grouped access.
Type Declarationβ
CHARTβ
readonly CHART: {
CHART_TYPES: {
ALTITUDE: "altitude";
ELEVATION: "elevation";
GPS_TRACK: "gps-track";
HEART_RATE: "heart-rate";
LAP_ZONE: "lap-zone";
POWER: "power";
SPEED: "speed";
};
DEFAULT_CHART: "elevation";
DEFAULT_COLORS: {
PRIMARY: "#667eea";
SECONDARY: "#764ba2";
};
DEFAULT_ZOOM_LEVEL: 1;
MAX_ZOOM_LEVEL: 10;
MIN_ZOOM_LEVEL: 0.1;
} = CHART_CONSTANTS;
CHART.CHART_TYPESβ
readonly CHART_TYPES: {
ALTITUDE: "altitude";
ELEVATION: "elevation";
GPS_TRACK: "gps-track";
HEART_RATE: "heart-rate";
LAP_ZONE: "lap-zone";
POWER: "power";
SPEED: "speed";
};
CHART.CHART_TYPES.ALTITUDEβ
readonly ALTITUDE: "altitude" = "altitude";
CHART.CHART_TYPES.ELEVATIONβ
readonly ELEVATION: "elevation" = "elevation";
CHART.CHART_TYPES.GPS_TRACKβ
readonly GPS_TRACK: "gps-track" = "gps-track";
CHART.CHART_TYPES.HEART_RATEβ
readonly HEART_RATE: "heart-rate" = "heart-rate";
CHART.CHART_TYPES.LAP_ZONEβ
readonly LAP_ZONE: "lap-zone" = "lap-zone";
CHART.CHART_TYPES.POWERβ
readonly POWER: "power" = "power";
CHART.CHART_TYPES.SPEEDβ
readonly SPEED: "speed" = "speed";
CHART.DEFAULT_CHARTβ
readonly DEFAULT_CHART: "elevation" = "elevation";
CHART.DEFAULT_COLORSβ
readonly DEFAULT_COLORS: {
PRIMARY: "#667eea";
SECONDARY: "#764ba2";
};
CHART.DEFAULT_COLORS.PRIMARYβ
readonly PRIMARY: "#667eea" = "#667eea";
CHART.DEFAULT_COLORS.SECONDARYβ
readonly SECONDARY: "#764ba2" = "#764ba2";
CHART.DEFAULT_ZOOM_LEVELβ
readonly DEFAULT_ZOOM_LEVEL: 1 = 1;
CHART.MAX_ZOOM_LEVELβ
readonly MAX_ZOOM_LEVEL: 10 = 10;
CHART.MIN_ZOOM_LEVELβ
readonly MIN_ZOOM_LEVEL: 0.1 = 0.1;
CONVERSIONβ
readonly CONVERSION: {
CELSIUS_TO_FAHRENHEIT_MULTIPLIER: number;
CELSIUS_TO_FAHRENHEIT_OFFSET: 32;
DECIMAL_PLACES: 2;
DECIMAL_PLACES_PRECISE: 4;
INCHES_PER_FOOT: 12;
KG_TO_POUNDS: 2.20462;
METERS_PER_KILOMETER: 1000;
METERS_PER_MILE: 1609.344;
METERS_TO_FEET: 3.28084;
METERS_TO_INCHES: 39.3701;
MILLISECONDS_PER_SECOND: 1000;
MPS_TO_KMH: 3.6;
MPS_TO_MPH: 2.237;
SECONDS_PER_HOUR: 3600;
SECONDS_PER_MINUTE: 60;
} = CONVERSION_FACTORS;
CONVERSION.CELSIUS_TO_FAHRENHEIT_MULTIPLIERβ
readonly CELSIUS_TO_FAHRENHEIT_MULTIPLIER: number;
CONVERSION.CELSIUS_TO_FAHRENHEIT_OFFSETβ
readonly CELSIUS_TO_FAHRENHEIT_OFFSET: 32 = 32;
CONVERSION.DECIMAL_PLACESβ
readonly DECIMAL_PLACES: 2 = 2;
CONVERSION.DECIMAL_PLACES_PRECISEβ
readonly DECIMAL_PLACES_PRECISE: 4 = 4;
CONVERSION.INCHES_PER_FOOTβ
readonly INCHES_PER_FOOT: 12 = 12;
CONVERSION.KG_TO_POUNDSβ
readonly KG_TO_POUNDS: 2.20462 = 2.204_62;
CONVERSION.METERS_PER_KILOMETERβ
readonly METERS_PER_KILOMETER: 1000 = 1000;
CONVERSION.METERS_PER_MILEβ
readonly METERS_PER_MILE: 1609.344 = 1609.344;
CONVERSION.METERS_TO_FEETβ
readonly METERS_TO_FEET: 3.28084 = 3.280_84;
CONVERSION.METERS_TO_INCHESβ
readonly METERS_TO_INCHES: 39.3701 = 39.3701;
CONVERSION.MILLISECONDS_PER_SECONDβ
readonly MILLISECONDS_PER_SECOND: 1000 = 1000;
CONVERSION.MPS_TO_KMHβ
readonly MPS_TO_KMH: 3.6 = 3.6;
CONVERSION.MPS_TO_MPHβ
readonly MPS_TO_MPH: 2.237 = 2.237;
CONVERSION.SECONDS_PER_HOURβ
readonly SECONDS_PER_HOUR: 3600 = 3600;
CONVERSION.SECONDS_PER_MINUTEβ
readonly SECONDS_PER_MINUTE: 60 = 60;
DEBUGβ
readonly DEBUG: {
CATEGORIES: {
CHARTS: "charts";
DATA: "data";
FILES: "files";
STATE: "state";
UI: "ui";
};
ENABLED: false;
LOG_LEVELS: {
DEBUG: "debug";
ERROR: "error";
INFO: "info";
WARN: "warn";
};
} = DEBUG_CONSTANTS;
DEBUG.CATEGORIESβ
readonly CATEGORIES: {
CHARTS: "charts";
DATA: "data";
FILES: "files";
STATE: "state";
UI: "ui";
};
DEBUG.CATEGORIES.CHARTSβ
readonly CHARTS: "charts" = "charts";
DEBUG.CATEGORIES.DATAβ
readonly DATA: "data" = "data";
DEBUG.CATEGORIES.FILESβ
readonly FILES: "files" = "files";
DEBUG.CATEGORIES.STATEβ
readonly STATE: "state" = "state";
DEBUG.CATEGORIES.UIβ
readonly UI: "ui" = "ui";
DEBUG.ENABLEDβ
readonly ENABLED: false = false;
DEBUG.LOG_LEVELSβ
readonly LOG_LEVELS: {
DEBUG: "debug";
ERROR: "error";
INFO: "info";
WARN: "warn";
};
DEBUG.LOG_LEVELS.DEBUGβ
readonly DEBUG: "debug" = "debug";
DEBUG.LOG_LEVELS.ERRORβ
readonly ERROR: "error" = "error";
DEBUG.LOG_LEVELS.INFOβ
readonly INFO: "info" = "info";
DEBUG.LOG_LEVELS.WARNβ
readonly WARN: "warn" = "warn";
DISTANCE_UNITSβ
DISTANCE_UNITS: {
FEET: "feet";
KILOMETERS: "kilometers";
METERS: "meters";
MILES: "miles";
}
Distance unit definitions with consistent naming.
DISTANCE_UNITS.FEETβ
readonly FEET: "feet" = "feet";
DISTANCE_UNITS.KILOMETERSβ
readonly KILOMETERS: "kilometers" = "kilometers";
DISTANCE_UNITS.METERSβ
readonly METERS: "meters" = "meters";
DISTANCE_UNITS.MILESβ
readonly MILES: "miles" = "miles";
ERRORβ
readonly ERROR: {
CODES: {
FILE_NOT_FOUND: "FILE_NOT_FOUND";
INVALID_INPUT: "INVALID_INPUT";
NETWORK_ERROR: "NETWORK_ERROR";
PARSE_ERROR: "PARSE_ERROR";
PERMISSION_DENIED: "PERMISSION_DENIED";
STATE_ERROR: "STATE_ERROR";
UNKNOWN_ERROR: "UNKNOWN_ERROR";
VALIDATION_ERROR: "VALIDATION_ERROR";
};
MESSAGES: {
FILE_NOT_FOUND: "File not found";
INVALID_INPUT: "Invalid input provided";
NETWORK_ERROR: "Network connection error";
PARSE_ERROR: "Failed to parse file";
PERMISSION_DENIED: "Permission denied";
STATE_ERROR: "Application state error";
UNKNOWN_ERROR: "An unknown error occurred";
VALIDATION_ERROR: "Input validation failed";
};
} = ERROR_CONSTANTS;
ERROR.CODESβ
readonly CODES: {
FILE_NOT_FOUND: "FILE_NOT_FOUND";
INVALID_INPUT: "INVALID_INPUT";
NETWORK_ERROR: "NETWORK_ERROR";
PARSE_ERROR: "PARSE_ERROR";
PERMISSION_DENIED: "PERMISSION_DENIED";
STATE_ERROR: "STATE_ERROR";
UNKNOWN_ERROR: "UNKNOWN_ERROR";
VALIDATION_ERROR: "VALIDATION_ERROR";
};
ERROR.CODES.FILE_NOT_FOUNDβ
readonly FILE_NOT_FOUND: "FILE_NOT_FOUND" = "FILE_NOT_FOUND";
ERROR.CODES.INVALID_INPUTβ
readonly INVALID_INPUT: "INVALID_INPUT" = "INVALID_INPUT";
ERROR.CODES.NETWORK_ERRORβ
readonly NETWORK_ERROR: "NETWORK_ERROR" = "NETWORK_ERROR";
ERROR.CODES.PARSE_ERRORβ
readonly PARSE_ERROR: "PARSE_ERROR" = "PARSE_ERROR";
ERROR.CODES.PERMISSION_DENIEDβ
readonly PERMISSION_DENIED: "PERMISSION_DENIED" = "PERMISSION_DENIED";
ERROR.CODES.STATE_ERRORβ
readonly STATE_ERROR: "STATE_ERROR" = "STATE_ERROR";
ERROR.CODES.UNKNOWN_ERRORβ
readonly UNKNOWN_ERROR: "UNKNOWN_ERROR" = "UNKNOWN_ERROR";
ERROR.CODES.VALIDATION_ERRORβ
readonly VALIDATION_ERROR: "VALIDATION_ERROR" = "VALIDATION_ERROR";
ERROR.MESSAGESβ
readonly MESSAGES: {
FILE_NOT_FOUND: "File not found";
INVALID_INPUT: "Invalid input provided";
NETWORK_ERROR: "Network connection error";
PARSE_ERROR: "Failed to parse file";
PERMISSION_DENIED: "Permission denied";
STATE_ERROR: "Application state error";
UNKNOWN_ERROR: "An unknown error occurred";
VALIDATION_ERROR: "Input validation failed";
};
ERROR.MESSAGES.FILE_NOT_FOUNDβ
readonly FILE_NOT_FOUND: "File not found" = "File not found";
ERROR.MESSAGES.INVALID_INPUTβ
readonly INVALID_INPUT: "Invalid input provided" = "Invalid input provided";
ERROR.MESSAGES.NETWORK_ERRORβ
readonly NETWORK_ERROR: "Network connection error" = "Network connection error";
ERROR.MESSAGES.PARSE_ERRORβ
readonly PARSE_ERROR: "Failed to parse file" = "Failed to parse file";
ERROR.MESSAGES.PERMISSION_DENIEDβ
readonly PERMISSION_DENIED: "Permission denied" = "Permission denied";
ERROR.MESSAGES.STATE_ERRORβ
readonly STATE_ERROR: "Application state error" = "Application state error";
ERROR.MESSAGES.UNKNOWN_ERRORβ
readonly UNKNOWN_ERROR: "An unknown error occurred" = "An unknown error occurred";
ERROR.MESSAGES.VALIDATION_ERRORβ
readonly VALIDATION_ERROR: "Input validation failed" = "Input validation failed";
FILEβ
readonly FILE: {
DEFAULT_EXPORT_FORMAT: "gpx";
EXPORT_FORMATS: {
CSV: "csv";
GPX: "gpx";
JSON: "json";
};
IFRAME_PATHS: {
ALT_FIT: "ffv/index.html";
};
MAX_FILE_SIZE: number;
SUPPORTED_EXTENSIONS: readonly [".fit"];
SUPPORTED_MIME_TYPES: readonly ["application/octet-stream"];
} = FILE_CONSTANTS;
FILE.DEFAULT_EXPORT_FORMATβ
readonly DEFAULT_EXPORT_FORMAT: "gpx" = "gpx";
FILE.EXPORT_FORMATSβ
readonly EXPORT_FORMATS: {
CSV: "csv";
GPX: "gpx";
JSON: "json";
};
FILE.EXPORT_FORMATS.CSVβ
readonly CSV: "csv" = "csv";
FILE.EXPORT_FORMATS.GPXβ
readonly GPX: "gpx" = "gpx";
FILE.EXPORT_FORMATS.JSONβ
readonly JSON: "json" = "json";
FILE.IFRAME_PATHSβ
readonly IFRAME_PATHS: {
ALT_FIT: "ffv/index.html";
};
FILE.IFRAME_PATHS.ALT_FITβ
readonly ALT_FIT: "ffv/index.html" = "ffv/index.html";
FILE.MAX_FILE_SIZEβ
readonly MAX_FILE_SIZE: number;
FILE.SUPPORTED_EXTENSIONSβ
readonly SUPPORTED_EXTENSIONS: readonly [".fit"];
FILE.SUPPORTED_MIME_TYPESβ
readonly SUPPORTED_MIME_TYPES: readonly ["application/octet-stream"];
MAPβ
readonly MAP: {
DEFAULT_CENTER: readonly [0, 0];
DEFAULT_PROVIDER: "openstreetmap";
DEFAULT_ZOOM: 13;
PROVIDERS: {
OPENSTREETMAP: "openstreetmap";
SATELLITE: "satellite";
};
} = MAP_CONSTANTS;
MAP.DEFAULT_CENTERβ
readonly DEFAULT_CENTER: readonly [0, 0];
MAP.DEFAULT_PROVIDERβ
readonly DEFAULT_PROVIDER: "openstreetmap" = "openstreetmap";
MAP.DEFAULT_ZOOMβ
readonly DEFAULT_ZOOM: 13 = 13;
MAP.PROVIDERSβ
readonly PROVIDERS: {
OPENSTREETMAP: "openstreetmap";
SATELLITE: "satellite";
};
MAP.PROVIDERS.OPENSTREETMAPβ
readonly OPENSTREETMAP: "openstreetmap" = "openstreetmap";
MAP.PROVIDERS.SATELLITEβ
readonly SATELLITE: "satellite" = "satellite";
PERFORMANCEβ
readonly PERFORMANCE: {
CATEGORIES: {
CHARTS: "charts";
DATA_PROCESSING: "data-processing";
FILE_OPERATIONS: "file-operations";
STATE_MANAGEMENT: "state-management";
UI_RENDERING: "ui-rendering";
};
ENABLE_MONITORING: false;
MAX_HISTORY_SIZE: 100;
MEMORY_CHECK_INTERVAL: 30000;
SLOW_OPERATION_THRESHOLD: 10;
} = PERFORMANCE_CONSTANTS;
PERFORMANCE.CATEGORIESβ
readonly CATEGORIES: {
CHARTS: "charts";
DATA_PROCESSING: "data-processing";
FILE_OPERATIONS: "file-operations";
STATE_MANAGEMENT: "state-management";
UI_RENDERING: "ui-rendering";
};
PERFORMANCE.CATEGORIES.CHARTSβ
readonly CHARTS: "charts" = "charts";
PERFORMANCE.CATEGORIES.DATA_PROCESSINGβ
readonly DATA_PROCESSING: "data-processing" = "data-processing";
PERFORMANCE.CATEGORIES.FILE_OPERATIONSβ
readonly FILE_OPERATIONS: "file-operations" = "file-operations";
PERFORMANCE.CATEGORIES.STATE_MANAGEMENTβ
readonly STATE_MANAGEMENT: "state-management" = "state-management";
PERFORMANCE.CATEGORIES.UI_RENDERINGβ
readonly UI_RENDERING: "ui-rendering" = "ui-rendering";
PERFORMANCE.ENABLE_MONITORINGβ
readonly ENABLE_MONITORING: false = false;
PERFORMANCE.MAX_HISTORY_SIZEβ
readonly MAX_HISTORY_SIZE: 100 = 100;
PERFORMANCE.MEMORY_CHECK_INTERVALβ
readonly MEMORY_CHECK_INTERVAL: 30000 = 30_000;
PERFORMANCE.SLOW_OPERATION_THRESHOLDβ
readonly SLOW_OPERATION_THRESHOLD: 10 = 10;
TEMPERATURE_UNITSβ
TEMPERATURE_UNITS: {
CELSIUS: "celsius";
FAHRENHEIT: "fahrenheit";
KELVIN: "kelvin";
}
Temperature unit definitions.
TEMPERATURE_UNITS.CELSIUSβ
readonly CELSIUS: "celsius" = "celsius";
TEMPERATURE_UNITS.FAHRENHEITβ
readonly FAHRENHEIT: "fahrenheit" = "fahrenheit";
TEMPERATURE_UNITS.KELVINβ
readonly KELVIN: "kelvin" = "kelvin";
TIME_UNITSβ
TIME_UNITS: {
HOURS: "hours";
MILLISECONDS: "milliseconds";
MINUTES: "minutes";
SECONDS: "seconds";
}
Time unit definitions.
TIME_UNITS.HOURSβ
readonly HOURS: "hours" = "hours";
TIME_UNITS.MILLISECONDSβ
readonly MILLISECONDS: "milliseconds" = "milliseconds";
TIME_UNITS.MINUTESβ
readonly MINUTES: "minutes" = "minutes";
TIME_UNITS.SECONDSβ
readonly SECONDS: "seconds" = "seconds";
UIβ
readonly UI: {
ANIMATION_DURATION: 300;
CSS_CLASSES: {
ACTIVE: "active";
HIDDEN: "hidden";
LOADING: "loading";
SHOW: "show";
THEMED_BTN: "themed-btn";
};
DEBOUNCE_DELAY: 250;
DEFAULT_THEME: "dark";
DOM_IDS: {
ACTIVE_FILE_NAME: "active_file_name";
ACTIVE_FILE_NAME_CONTAINER: "active_file_name_container";
ALT_FIT_IFRAME: "altfit_iframe";
CONTENT_CHART: "content_chart";
CONTENT_DATA: "content_data";
CONTENT_MAP: "content_map";
CONTENT_SUMMARY: "content_summary";
DROP_OVERLAY: "drop_overlay";
NOTIFICATION: "notification";
TAB_CHART: "tab_chart";
TAB_SUMMARY: "tab_summary";
UNLOAD_FILE_BTN: "unload_file_btn";
ZWIFT_IFRAME: "zwift_iframe";
};
HEADER_HEIGHT: 60;
NOTIFICATION_TYPES: {
ERROR: {
ariaLabel: "Error";
duration: 6000;
icon: "β";
type: "error";
};
INFO: {
ariaLabel: "Information";
duration: 4000;
icon: "βΉοΈ";
type: "info";
};
SUCCESS: {
ariaLabel: "Success";
duration: 3000;
icon: "β
";
type: "success";
};
WARNING: {
ariaLabel: "Warning";
duration: 5000;
icon: "β οΈ";
type: "warning";
};
};
SIDEBAR_WIDTH: 250;
SUMMARY_COLUMN_SELECTOR_DELAY: 100;
THEMES: {
DARK: "dark";
LIGHT: "light";
SYSTEM: "system";
};
} = UI_CONSTANTS;
UI.ANIMATION_DURATIONβ
readonly ANIMATION_DURATION: 300 = 300;
UI.CSS_CLASSESβ
readonly CSS_CLASSES: {
ACTIVE: "active";
HIDDEN: "hidden";
LOADING: "loading";
SHOW: "show";
THEMED_BTN: "themed-btn";
};
UI.CSS_CLASSES.ACTIVEβ
readonly ACTIVE: "active" = "active";
UI.CSS_CLASSES.HIDDENβ
readonly HIDDEN: "hidden" = "hidden";
UI.CSS_CLASSES.LOADINGβ
readonly LOADING: "loading" = "loading";
UI.CSS_CLASSES.SHOWβ
readonly SHOW: "show" = "show";
UI.CSS_CLASSES.THEMED_BTNβ
readonly THEMED_BTN: "themed-btn" = "themed-btn";
UI.DEBOUNCE_DELAYβ
readonly DEBOUNCE_DELAY: 250 = 250;
UI.DEFAULT_THEMEβ
readonly DEFAULT_THEME: "dark" = "dark";
UI.DOM_IDSβ
readonly DOM_IDS: {
ACTIVE_FILE_NAME: "active_file_name";
ACTIVE_FILE_NAME_CONTAINER: "active_file_name_container";
ALT_FIT_IFRAME: "altfit_iframe";
CONTENT_CHART: "content_chart";
CONTENT_DATA: "content_data";
CONTENT_MAP: "content_map";
CONTENT_SUMMARY: "content_summary";
DROP_OVERLAY: "drop_overlay";
NOTIFICATION: "notification";
TAB_CHART: "tab_chart";
TAB_SUMMARY: "tab_summary";
UNLOAD_FILE_BTN: "unload_file_btn";
ZWIFT_IFRAME: "zwift_iframe";
};
UI.DOM_IDS.ACTIVE_FILE_NAMEβ
readonly ACTIVE_FILE_NAME: "active_file_name" = "active_file_name";
UI.DOM_IDS.ACTIVE_FILE_NAME_CONTAINERβ
readonly ACTIVE_FILE_NAME_CONTAINER: "active_file_name_container" = "active_file_name_container";
UI.DOM_IDS.ALT_FIT_IFRAMEβ
readonly ALT_FIT_IFRAME: "altfit_iframe" = "altfit_iframe";
UI.DOM_IDS.CONTENT_CHARTβ
readonly CONTENT_CHART: "content_chart" = "content_chart";
UI.DOM_IDS.CONTENT_DATAβ
readonly CONTENT_DATA: "content_data" = "content_data";
UI.DOM_IDS.CONTENT_MAPβ
readonly CONTENT_MAP: "content_map" = "content_map";
UI.DOM_IDS.CONTENT_SUMMARYβ
readonly CONTENT_SUMMARY: "content_summary" = "content_summary";
UI.DOM_IDS.DROP_OVERLAYβ
readonly DROP_OVERLAY: "drop_overlay" = "drop_overlay";
UI.DOM_IDS.NOTIFICATIONβ
readonly NOTIFICATION: "notification" = "notification";
UI.DOM_IDS.TAB_CHARTβ
readonly TAB_CHART: "tab_chart" = "tab_chart";
UI.DOM_IDS.TAB_SUMMARYβ
readonly TAB_SUMMARY: "tab_summary" = "tab_summary";
UI.DOM_IDS.UNLOAD_FILE_BTNβ
readonly UNLOAD_FILE_BTN: "unload_file_btn" = "unload_file_btn";
UI.DOM_IDS.ZWIFT_IFRAMEβ
readonly ZWIFT_IFRAME: "zwift_iframe" = "zwift_iframe";
UI.HEADER_HEIGHTβ
readonly HEADER_HEIGHT: 60 = 60;
UI.NOTIFICATION_TYPESβ
readonly NOTIFICATION_TYPES: {
ERROR: {
ariaLabel: "Error";
duration: 6000;
icon: "β";
type: "error";
};
INFO: {
ariaLabel: "Information";
duration: 4000;
icon: "βΉοΈ";
type: "info";
};
SUCCESS: {
ariaLabel: "Success";
duration: 3000;
icon: "β
";
type: "success";
};
WARNING: {
ariaLabel: "Warning";
duration: 5000;
icon: "β οΈ";
type: "warning";
};
};
UI.NOTIFICATION_TYPES.ERRORβ
readonly ERROR: {
ariaLabel: "Error";
duration: 6000;
icon: "β";
type: "error";
};
UI.NOTIFICATION_TYPES.ERROR.ariaLabelβ
readonly ariaLabel: "Error" = "Error";
UI.NOTIFICATION_TYPES.ERROR.durationβ
readonly duration: 6000 = 6000;
UI.NOTIFICATION_TYPES.ERROR.iconβ
readonly icon: "β" = "β";
UI.NOTIFICATION_TYPES.ERROR.typeβ
readonly type: "error" = "error";
UI.NOTIFICATION_TYPES.INFOβ
readonly INFO: {
ariaLabel: "Information";
duration: 4000;
icon: "βΉοΈ";
type: "info";
};
UI.NOTIFICATION_TYPES.INFO.ariaLabelβ
readonly ariaLabel: "Information" = "Information";
UI.NOTIFICATION_TYPES.INFO.durationβ
readonly duration: 4000 = 4000;
UI.NOTIFICATION_TYPES.INFO.iconβ
readonly icon: "βΉοΈ" = "βΉοΈ";
UI.NOTIFICATION_TYPES.INFO.typeβ
readonly type: "info" = "info";
UI.NOTIFICATION_TYPES.SUCCESSβ
readonly SUCCESS: {
ariaLabel: "Success";
duration: 3000;
icon: "β
";
type: "success";
};
UI.NOTIFICATION_TYPES.SUCCESS.ariaLabelβ
readonly ariaLabel: "Success" = "Success";
UI.NOTIFICATION_TYPES.SUCCESS.durationβ
readonly duration: 3000 = 3000;
UI.NOTIFICATION_TYPES.SUCCESS.iconβ
readonly icon: "β
" = "β
";
UI.NOTIFICATION_TYPES.SUCCESS.typeβ
readonly type: "success" = "success";
UI.NOTIFICATION_TYPES.WARNINGβ
readonly WARNING: {
ariaLabel: "Warning";
duration: 5000;
icon: "β οΈ";
type: "warning";
};
UI.NOTIFICATION_TYPES.WARNING.ariaLabelβ
readonly ariaLabel: "Warning" = "Warning";
UI.NOTIFICATION_TYPES.WARNING.durationβ
readonly duration: 5000 = 5000;
UI.NOTIFICATION_TYPES.WARNING.iconβ
readonly icon: "β οΈ" = "β οΈ";
UI.NOTIFICATION_TYPES.WARNING.typeβ
readonly type: "warning" = "warning";
UI.SIDEBAR_WIDTHβ
readonly SIDEBAR_WIDTH: 250 = 250;
UI.SUMMARY_COLUMN_SELECTOR_DELAYβ
readonly SUMMARY_COLUMN_SELECTOR_DELAY: 100 = 100;
UI.THEMESβ
readonly THEMES: {
DARK: "dark";
LIGHT: "light";
SYSTEM: "system";
};
UI.THEMES.DARKβ
readonly DARK: "dark" = "dark";
UI.THEMES.LIGHTβ
readonly LIGHT: "light" = "light";
UI.THEMES.SYSTEMβ
readonly SYSTEM: "system" = "system";
VALIDATIONβ
readonly VALIDATION: {
MAX_DISTANCE: 1000000;
MAX_DURATION: 86400;
MAX_SPEED: 200;
MAX_STRING_LENGTH: 1000;
MIN_DISTANCE: 0;
MIN_DURATION: 0;
MIN_SPEED: 0;
MIN_STRING_LENGTH: 1;
} = VALIDATION_CONSTANTS;
VALIDATION.MAX_DISTANCEβ
readonly MAX_DISTANCE: 1000000 = 1_000_000;
VALIDATION.MAX_DURATIONβ
readonly MAX_DURATION: 86400 = 86_400;
VALIDATION.MAX_SPEEDβ
readonly MAX_SPEED: 200 = 200;
VALIDATION.MAX_STRING_LENGTHβ
readonly MAX_STRING_LENGTH: 1000 = 1000;
VALIDATION.MIN_DISTANCEβ
readonly MIN_DISTANCE: 0 = 0;
VALIDATION.MIN_DURATIONβ
readonly MIN_DURATION: 0 = 0;
VALIDATION.MIN_SPEEDβ
readonly MIN_SPEED: 0 = 0;
VALIDATION.MIN_STRING_LENGTHβ
readonly MIN_STRING_LENGTH: 1 = 1;