import type { TrackUnitStickingType, TrackUnitType } from "@/Track"; import type { IconName } from "@/ui/Widgets/Icon/icons"; export const TypeClasses = [ "Ghost", "Accent" ] as const; export const StickingTypeIconMap = { none: null, lf: 'lf', lh: 'lh', rf: 'rf', rh: 'rh', } as const satisfies Record; export const TrackUnitTypeClassMap = { "Normal": [], "GhostNote": ["Ghost"], "Accent": ["Accent"], "GhostNoteAccent": ["Ghost", "Accent"], } as const satisfies Record>; export function getClasses(options: { on: boolean, stickingType: TrackUnitStickingType, type: TrackUnitType, highlightable?: boolean }) { const classes = ["track-unit"]; if (options.on) { classes.push("on"); } if (options.stickingType && StickingTypeIconMap[options.stickingType]) { classes.push("icon-visible"); } if (options.type) { classes.push(...TrackUnitTypeClassMap[options.type]); } if (options.highlightable) { classes.push("highlightable"); } return classes; }