export interface Legend { [key: string]: string } export const LEGEND_NULL: Legend = { default: '#F0F0F0' } export const LEGEND_MACHINE: Legend = { '1000': '#707070', // DISCONNECTED '1001': '#8BDA5B', // UP '1002': '#EB3245', // OUTOFSERVICE '1003': '#5630D0', // PM '1004': '#FFFFFF', // NOTONLINE '1005': '#404040', // DOWN '1006': '#F4F226', // NOTAUTO '1007': '#FD9B00', // ALARM '1008': '#4AA7FE', // FULL default: '#F0F0F0' } export const LEGEND_VEHICLE: Legend = { '4000': '#EB3245', // OUTOFSERVICE '4001': '#8BDA5B', // ASSIGNED // '4002': '#cbf266', // ASSIGNED_ACQUIRING // '4003': '#cbf266', // ASSIGNED_DEPOSITING // '4004': '#cbf266', // ASSIGNED_ENROUTE // '4005': '#cbf266', // ASSIGNED_PARKED '4006': '#FD9B00', // NOTASSIGNED '4007': '#32D1C4', // INSTALLED '4008': '#9790EC', // CHARGING '4009': '#4AA7FE', // CHARGED '4010': '#404040', // REMOVED default: '#F0F0F0' } export const LEGEND_UNIT: Legend = { '2000': '#FD9B00', // BANNED '2001': '#404040', // DOWN '2002': '#8BDA5B', // EMPTY '2003': '#FFFFFF', // EMPTY_RESERVED '2004': '#32D1C4', // FULL_RESERVED '2005': '#4AA7FE', // FULL '2006': '#EB3245', // NOTINSERVICE default: '#F0F0F0' } export const LEGEND_CRANE: Legend = { '3000': '#EB3245', // OUTOFSERVICE // '3001': '#404040', // DOWN // '3002': '#8BDA5B', // EMPTY '3003': '#FFFFFF', // IDLE '3004': '#32D1C4', // ACTIVE // '3005': '#4AA7FE', // FULL // '3006': '#EB3245', // NOTINSERVICE default: '#F0F0F0' } export const LEGEND_CARRIER: Legend = { FULL: '#4AA7FE', EMPTY: '#8BDA5B', EMPTYEMPTY: '#019D59', default: '#F0F0F0' } /** * carrier legend(테마) 해석 — carrier 컴포넌트(carrier.ts get legend)와 동일 로직 단일 소스. * parent 에 carrierLegendName 이 지정되면 그 style 을, 아니면 board 전역 carrierLegendTheme, * 둘 다 없으면 LEGEND_CARRIER 기본값. carrier 컴포넌트·스토커 게이지(2D/3D)가 공유한다. */ export function resolveCarrierLegend(component: any): Legend { const carrierLegendName = component?.parent?.state?.carrierLegendName if (carrierLegendName) { return (component.root as any)?.style?.[carrierLegendName] || LEGEND_CARRIER } return (component.root as any)?.carrierLegendTheme || LEGEND_CARRIER } export const LEGEND_CAPACITY: Legend = { '0~20': '#5630D0', '20~80': '#8BDA5B', '80~': '#FD9B00', // 80% 이상 (= 100% 초과도 포함). 'from~' 형식이라 // getValueOnRanges 가 value >= 80 매칭. default: '#F0F0F0' } export const BATTERY_RATE_LEGEND: Legend = { '0~20': '#EB3245', // 0-20%: 빨간색 (위험) '20~40': '#FD9B00', // 20-40%: 주황색 (경고) '40~60': '#F4F226', // 40-60%: 노란색 (주의) '60~100': '#8BDA5B', // 60-100%: 녹색 (정상) default: '#F0F0F0' }