migrated to vue wtf
This commit is contained in:
36
src/ui/TrackUnit/trackUnit.ts
Normal file
36
src/ui/TrackUnit/trackUnit.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
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 Readonly<Record<TrackUnitStickingType, IconName | null>>;
|
||||
|
||||
export const TrackUnitTypeClassMap = {
|
||||
"Normal": [],
|
||||
"GhostNote": ["Ghost"],
|
||||
"Accent": ["Accent"],
|
||||
"GhostNoteAccent": ["Ghost", "Accent"],
|
||||
} as const satisfies Readonly<Record<TrackUnitType, Readonly<string[]>>>;
|
||||
|
||||
export function getClasses(options: { on: boolean, stickingType: TrackUnitStickingType, type: TrackUnitType, highlightable?: boolean }) {
|
||||
const classes = ["track-unit"];
|
||||
if (options.on) {
|
||||
classes.push("on");
|
||||
}
|
||||
if (StickingTypeIconMap[options.stickingType]) {
|
||||
classes.push("icon-visible");
|
||||
}
|
||||
if (options.type) {
|
||||
classes.push(...TrackUnitTypeClassMap[options.type]);
|
||||
}
|
||||
if (options.highlightable) {
|
||||
classes.push("highlightable");
|
||||
}
|
||||
return classes;
|
||||
}
|
||||
Reference in New Issue
Block a user