Packages

A simple Elixir charting library that generates easy-to-customize charts.

Current section

Files

Jump to
uncharted lib live_chart progress_chart base_chart_impl.ex
Raw

lib/live_chart/progress_chart/base_chart_impl.ex

defimpl LiveChart.ProgressChart, for: LiveChart.BaseChart do
alias LiveChart.BaseChart
alias LiveChart.ProgressChart.Dataset
def progress(%BaseChart{dataset: nil}), do: 0
def progress(%BaseChart{dataset: %Dataset{} = dataset}) do
round(100 * dataset.current_value / dataset.to_value)
end
def data(%BaseChart{dataset: nil}), do: %{}
def data(%BaseChart{dataset: dataset}), do: dataset
end
defimpl LiveChart.ProgressChart, for: LiveChart.ProgressChart.Dataset do
alias LiveChart.ProgressChart.Dataset
def data(%Dataset{} = data), do: data
def progress(%Dataset{to_value: to_value, current_value: current_value}) do
round(100 * current_value / to_value)
end
end