# Taken from https://github.com/piotrmurach/tty-spinner/blob/master/lib/tty/spinner/formats.rb

const FORMATS = Dict(
      :classic => Dict(
        :frequency => 10,
        :frames => ["|", "/", "-", "\\"]
      ),
      :spin => Dict(
        :frequency => 10,
        :frames => ["◴", "◷", "◶", "◵"]
      ),
      :spin_2 => Dict(
        :frequency => 10,
        :frames => ["◐" "◓" "◑" "◒"]
      ),
      :spin_3 => Dict(
        :frequency => 10,
        :frames => ["◰", "◳", "◲", "◱"]
      ),
      :spin_4 => Dict(
        :frequency => 10,
        :frames => ["╫, ╪"]
      ),
      :pulse => Dict(
        :frequency => 10,
        :frames => ["⎺", "⎻", "⎼", "⎽", "⎼", "⎻"]
      ),
      :pulse_2 => Dict(
        :frequency => 15,
        :frames => ["▁", "▃", "▅", "▆", "▇", "█", "▇", "▆", "▅", "▃"]
      ),
      :pulse_3 => Dict(
        :frequency => 20,
        :frames => ["▉", "▊", "▋", "▌", "▍", "▎", "▏", "▎", "▍", "▌", "▋", "▊", "▉"]
      ),
      :dots => Dict(
        :frequency => 10,
        :frames => ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"]
      ),
      :dots_2 => Dict(
        :frequency => 10,
        :frames => ["⣾", "⣽", "⣻", "⢿", "⡿", "⣟", "⣯", "⣷"]
      ),
      :dots_3 => Dict(
        :frequency => 10,
        :frames => ["⠋", "⠙", "⠚", "⠞", "⠖", "⠦", "⠴", "⠲", "⠳", "⠓"]
      ),
      :dots_4 => Dict(
        :frequency => 10,
        :frames => ["⠄", "⠆", "⠇", "⠋", "⠙", "⠸", "⠰", "⠠", "⠰", "⠸", "⠙", "⠋", "⠇", "⠆"]
      ),
      :dots_5 => Dict(
        :frequency => 10,
        :frames => ["⠋", "⠙", "⠚", "⠒", "⠂", "⠂", "⠒", "⠲", "⠴", "⠦", "⠖", "⠒", "⠐", "⠐", "⠒", "⠓", "⠋"]
      ),
      :dots_6 => Dict(
        :frequency => 10,
        :frames => ["⠁", "⠉", "⠙", "⠚", "⠒", "⠂", "⠂", "⠒", "⠲", "⠴", "⠤", "⠄", "⠄", "⠤", "⠴", "⠲", "⠒", "⠂", "⠂", "⠒", "⠚", "⠙", "⠉", "⠁"]
      ),
      :dots_7 => Dict(
        :frequency => 10,
        :frames => ["⠈", "⠉", "⠋", "⠓", "⠒", "⠐", "⠐", "⠒", "⠖", "⠦", "⠤", "⠠", "⠠", "⠤", "⠦", "⠖", "⠒", "⠐", "⠐", "⠒", "⠓", "⠋", "⠉", "⠈"]
      ),
      :dots_8 => Dict(
        :frequency => 10,
        :frames => ["⠁", "⠁", "⠉", "⠙", "⠚", "⠒", "⠂", "⠂", "⠒", "⠲", "⠴", "⠤", "⠄", "⠄", "⠤", "⠠", "⠠", "⠤", "⠦", "⠖", "⠒", "⠐", "⠐", "⠒", "⠓", "⠋", "⠉", "⠈", "⠈"]
      ),
      :dots_9 => Dict(
        :frequency => 10,
        :frames => ["⢹", "⢺", "⢼", "⣸", "⣇", "⡧", "⡗", "⡏"]
      ),
      :dots_10 => Dict(
        :frequency => 10,
        :frames => ["⢄", "⢂", "⢁", "⡁", "⡈", "⡐", "⡠"]
      ),
      :dots_11 => Dict(
        :frequency => 10,
        :frames => ["⠁", "⠂", "⠄", "⡀", "⢀", "⠠", "⠐", "⠈"]
      ),
      :arrow => Dict(
        :frequency => 10,
        :frames => ["←", "↖", "↑", "↗", "→", "↘", "↓", "↙"]
      ),
      :arrow_pulse => Dict(
        :frequency => 10,
        :frames => [
          "▹▹▹▹▹",
          "▸▹▹▹▹",
          "▹▸▹▹▹",
          "▹▹▸▹▹",
          "▹▹▹▸▹",
          "▹▹▹▹▸"
        ]
      ),
      :triangle => Dict(
        :frequency => 10,
        :frames => ["◢", "◣", "◤", "◥"]
      ),
      :arc => Dict(
        :frequency => 10,
        :frames => ["◜", "◠", "◝", "◞", "◡", "◟"]
      ),
      :pipe => Dict(
        :frequency => 10,
        :frames => ["┤", "┘", "┴", "└", "├", "┌", "┬", "┐"]
      ),
      :bouncing => Dict(
        :frequency => 10,
        :frames => [
          "[    ]",
          "[   =]",
          "[  ==]",
          "[ ===]",
          "[====]",
          "[=== ]",
          "[==  ]",
          "[=   ]"
        ]
      ),
      :bouncing_ball => Dict(
        :frequency => 10,
        :frames => [
          "( ●    )",
          "(  ●   )",
          "(   ●  )",
          "(    ● )",
          "(     ●)",
          "(    ● )",
          "(   ●  )",
          "(  ●   )",
          "( ●    )",
          "(●     )"
        ]
      ),
      :bounce => Dict(
        :frequency => 10,
        :frames => ["⠁", "⠂", "⠄", "⠂"]
      ),
      :box_bounce => Dict(
        :frequency => 10,
        :frames => ["▌", "▀", "▐", "▄", ""]
      ),
      :box_bounce_2 => Dict(
        :frequency => 10,
        :frames => ["▖", "▘", "▝", "▗"]
      ),
      :star => Dict(
        :frequency => 10,
        :frames => ["✶", "✸", "✹", "✺", "✹", "✷"]
      ),
      :toggle => Dict(
        :frequency => 10,
        :frames => ["■", "□", "▪", "▫"]
      ),
      :balloon => Dict(
        :frequency => 10,
        :frames => ["", ".", "o", "O", "@", "*"]
      ),
      :balloon_2 => Dict(
        :frequency => 10,
        :frames => [".", "o", "O", "°", "O", "o", "."]
      ),
      :flip => Dict(
        :frequency => 10,
        :frames => ["-", "◡", "⊙", "-", "◠"]
      ),
      :burger => Dict(
        :frequency => 6,
        :frames => ["☱", "☲", "☴"]
      ),
      :dance => Dict(
        :frequency => 10,
        :frames => [">))'>", " >))'>", "  >))'>", "   >))'>", "    >))'>", "   <'((<", "  <'((<", " <'((<"]
      ),
      :shark => Dict(
        :frequency => 10,
        :frames => [
          "▐|\\____________▌",
          "▐_|\\___________▌",
          "▐__|\\__________▌",
          "▐___|\\_________▌",
          "▐____|\\________▌",
          "▐_____|\\_______▌",
          "▐______|\\______▌",
          "▐_______|\\_____▌",
          "▐________|\\____▌",
          "▐_________|\\___▌",
          "▐__________|\\__▌",
          "▐___________|\\_▌",
          "▐____________|\\▌",
          "▐____________/|▌",
          "▐___________/|_▌",
          "▐__________/|__▌",
          "▐_________/|___▌",
          "▐________/|____▌",
          "▐_______/|_____▌",
          "▐______/|______▌",
          "▐_____/|_______▌",
          "▐____/|________▌",
          "▐___/|_________▌",
          "▐__/|__________▌",
          "▐_/|___________▌",
          "▐/|____________▌"
        ]
      ),
      :pong => Dict(
        :frequency => 10,
        :frames => [
          "▐⠂       ▌",
          "▐⠈       ▌",
          "▐ ⠂      ▌",
          "▐ ⠠      ▌",
          "▐  ⡀     ▌",
          "▐  ⠠     ▌",
          "▐   ⠂    ▌",
          "▐   ⠈    ▌",
          "▐    ⠂   ▌",
          "▐    ⠠   ▌",
          "▐     ⡀  ▌",
          "▐     ⠠  ▌",
          "▐      ⠂ ▌",
          "▐      ⠈ ▌",
          "▐       ⠂▌",
          "▐       ⠠▌",
          "▐       ⡀▌",
          "▐      ⠠ ▌",
          "▐      ⠂ ▌",
          "▐     ⠈  ▌",
          "▐     ⠂  ▌",
          "▐    ⠠   ▌",
          "▐    ⡀   ▌",
          "▐   ⠠    ▌",
          "▐   ⠂    ▌",
          "▐  ⠈     ▌",
          "▐  ⠂     ▌",
          "▐ ⠠      ▌",
          "▐ ⡀      ▌",
          "▐⠠       ▌"
        ]
    )
)

