epoch-charting
Version:
A general purpose real-time charting library for building beautiful, smooth, and high performance visualizations.
28 lines (22 loc) • 877 B
text/coffeescript
zeptoModule = ($) ->
# For mapping charts to selected elements
DATA_NAME = 'epoch-chart'
chartMap = {}
chartId = 0
next_cid = -> "#{DATA_NAME}-#{++chartId}"
# Adds an Epoch chart of the given type to the referenced element.
# @param [Object] options Options for the chart.
# @option options [String] type The type of chart to append to the referenced element.
# @return [Object] The chart instance that was associated with the containing element.
$.extend $.fn,
epoch: (options) ->
return chartMap[cid] if (cid = @data(DATA_NAME))?
options.el = @get(0)
klass = Epoch._typeMap[options.type]
unless klass?
Epoch.exception "Unknown chart type '#{options.type}'"
@data DATA_NAME, (cid = next_cid())
chart = new klass options
chartMap[cid] = chart
return chart
zeptoModule(Zepto) if window.Zepto?