UNPKG

@logic-pad/core

Version:
178 lines (177 loc) 4.88 kB
/** * Major rules are frequently referenced in grids to provide additional UI. */ export var MajorRule; (function (MajorRule) { MajorRule["MusicGrid"] = "music"; MajorRule["CompletePattern"] = "complete_pattern"; MajorRule["Underclued"] = "underclued"; MajorRule["WrapAround"] = "wrap_around"; })(MajorRule || (MajorRule = {})); /** * General puzzle types for categorization. One puzzle can have multiple types. */ export var PuzzleType; (function (PuzzleType) { PuzzleType["Logic"] = "logic"; PuzzleType["Underclued"] = "underclued"; PuzzleType["Pattern"] = "pattern"; PuzzleType["Music"] = "music"; })(PuzzleType || (PuzzleType = {})); export var State; (function (State) { /** * Describes the violation of a rule. */ State["Error"] = "error"; /** * Describes that a rule is satisfied and complete in the current grid. */ State["Satisfied"] = "satisfied"; /** * Describes that a rule is not violated, but is not yet complete in the current grid. */ State["Incomplete"] = "incomplete"; /** * Describes that a rule is violated but ignored due to the effect of another rule. */ State["Ignored"] = "ignored"; })(State || (State = {})); // eslint-disable-next-line @typescript-eslint/no-namespace (function (State) { function isSatisfied(state) { return state === State.Satisfied || state === State.Ignored; } State.isSatisfied = isSatisfied; })(State || (State = {})); export var Color; (function (Color) { Color["Dark"] = "dark"; Color["Light"] = "light"; Color["Gray"] = "gray"; })(Color || (Color = {})); export var Comparison; (function (Comparison) { Comparison["Equal"] = "eq"; Comparison["AtLeast"] = "ge"; Comparison["AtMost"] = "le"; })(Comparison || (Comparison = {})); export const COMPARISONS = [ Comparison.Equal, Comparison.AtLeast, Comparison.AtMost, ]; export var Wrapping; (function (Wrapping) { Wrapping["None"] = "none"; Wrapping["Wrap"] = "wrap"; Wrapping["WrapReverse"] = "wrap-reverse"; Wrapping["ReflectReverse"] = "reflect-reverse"; })(Wrapping || (Wrapping = {})); export const WRAPPINGS = [ Wrapping.None, Wrapping.Wrap, Wrapping.WrapReverse, Wrapping.ReflectReverse, ]; export var Direction; (function (Direction) { Direction["Up"] = "up"; Direction["Down"] = "down"; Direction["Left"] = "left"; Direction["Right"] = "right"; })(Direction || (Direction = {})); export const DIRECTIONS = [ Direction.Up, Direction.Down, Direction.Left, Direction.Right, ]; export function directionToggle(...directions) { const result = { up: false, down: false, left: false, right: false, }; for (const direction of directions) { result[direction] = true; } return result; } export var Orientation; (function (Orientation) { Orientation["Up"] = "up"; Orientation["UpRight"] = "up-right"; Orientation["Right"] = "right"; Orientation["DownRight"] = "down-right"; Orientation["Down"] = "down"; Orientation["DownLeft"] = "down-left"; Orientation["Left"] = "left"; Orientation["UpLeft"] = "up-left"; })(Orientation || (Orientation = {})); export const ORIENTATIONS = [ Orientation.Up, Orientation.UpRight, Orientation.Right, Orientation.DownRight, Orientation.Down, Orientation.DownLeft, Orientation.Left, Orientation.UpLeft, ]; export function orientationToggle(...orientations) { const result = { up: false, 'up-right': false, right: false, 'down-right': false, down: false, 'down-left': false, left: false, 'up-left': false, }; for (const orientation of orientations) { result[orientation] = true; } return result; } export var Mode; (function (Mode) { Mode["Create"] = "create"; Mode["Solve"] = "solve"; Mode["Perfection"] = "perfection"; })(Mode || (Mode = {})); export var Instrument; (function (Instrument) { Instrument["Piano"] = "piano"; Instrument["Drum"] = "drum"; Instrument["Violin"] = "violin"; Instrument["Xylophone"] = "xylophone"; Instrument["GuitarAcoustic"] = "guitar-acoustic"; Instrument["GuitarElectric"] = "guitar-electric"; Instrument["Flute"] = "flute"; Instrument["Trumpet"] = "trumpet"; })(Instrument || (Instrument = {})); export const INSTRUMENTS = [ Instrument.Piano, Instrument.Drum, Instrument.Violin, Instrument.Xylophone, Instrument.GuitarAcoustic, Instrument.GuitarElectric, Instrument.Flute, Instrument.Trumpet, ]; export const DRUM_SAMPLES = [ 'snare', 'kick', 'hihat', 'hihat-open', 'crash', 'tom', 'rim', ]; export function isDrumSample(note) { return DRUM_SAMPLES.includes(note); }