116 lines
2.3 KiB
Elixir
116 lines
2.3 KiB
Elixir
defmodule LabelmakerWeb.Constants do
|
|
@defaults %{
|
|
align: "center",
|
|
color: "black",
|
|
font: "Helvetica",
|
|
height: "300",
|
|
label: "",
|
|
label_too_long: false,
|
|
link: "",
|
|
outline: "white",
|
|
size: "72",
|
|
rows: 2,
|
|
width: "400"
|
|
}
|
|
|
|
@form_defaults %{
|
|
sizing: "font",
|
|
preview_background: "r",
|
|
preview_height: @defaults.size,
|
|
preview_text: []
|
|
}
|
|
|
|
@permitted_keys @defaults
|
|
|> Map.merge(@form_defaults)
|
|
|> Map.keys()
|
|
|> Enum.map(&Atom.to_string/1)
|
|
|
|
@alignments [
|
|
"left",
|
|
"center",
|
|
"right"
|
|
]
|
|
|
|
@gravity [
|
|
"west",
|
|
"center",
|
|
"east"
|
|
]
|
|
|
|
@colors [
|
|
"black",
|
|
"blue",
|
|
"brown",
|
|
"gray",
|
|
"green",
|
|
"orange",
|
|
"pink",
|
|
"purple",
|
|
"red",
|
|
"white",
|
|
"yellow"
|
|
]
|
|
|
|
@danger "#FF6B6B"
|
|
|
|
@font_map %{
|
|
"cs" => "Comic-Sans-MS",
|
|
"comic" => "Comic-Sans-MS",
|
|
"comic sans" => "Comic-Sans-MS",
|
|
"comic-sans" => "Comic-Sans-MS",
|
|
"comic-sans-ms" => "Comic-Sans-MS",
|
|
"cr" => "Courier",
|
|
"courier" => "Courier",
|
|
"g" => "Georgia",
|
|
"georgia" => "Georgia",
|
|
"h" => "Helvetica",
|
|
"helvetica" => "Helvetica",
|
|
"i" => "Impact",
|
|
"impact" => "Impact",
|
|
"v" => "Verdana",
|
|
"verdana" => "Verdana"
|
|
}
|
|
|
|
@max_height 1024
|
|
@max_width 1024
|
|
|
|
@max_label_length 1024
|
|
@max_label_error "1024-character maximum"
|
|
|
|
@rows_min 2
|
|
@rows_max 8
|
|
|
|
@sizes 16..128
|
|
|> Enum.to_list()
|
|
|> Enum.take_every(8)
|
|
|> Enum.map(&Integer.to_string/1)
|
|
|
|
@sizing_values ["font", "wxh"]
|
|
|
|
def colors, do: @colors
|
|
def danger, do: @danger
|
|
def defaults, do: @defaults
|
|
|
|
def fonts,
|
|
do:
|
|
@font_map
|
|
|> Map.values()
|
|
|> Enum.uniq()
|
|
|> Enum.map(fn color -> color |> String.replace("-MS", "") |> String.replace("-", " ") end)
|
|
|
|
def font_map, do: @font_map
|
|
def max_height, do: @max_height
|
|
def max_width, do: @max_width
|
|
def max_label_length, do: @max_label_length
|
|
def max_label_error, do: @max_label_error
|
|
def outlines, do: ["none" | @colors]
|
|
def permitted_alignments, do: @alignments
|
|
def permitted_gravity, do: @gravity
|
|
def permitted_keys, do: @permitted_keys
|
|
def form_defaults, do: @form_defaults
|
|
def rows_min, do: @rows_min
|
|
def rows_max, do: @rows_max
|
|
def sizes, do: @sizes
|
|
def sizing_values, do: @sizing_values
|
|
end
|