epoch-charting
Version:
A general purpose real-time charting library for building beautiful, smooth, and high performance visualizations.
25 lines (24 loc) • 1.11 kB
text/coffeescript
# Gets the width of the first node, or sets the width of all the nodes
# in a d3 selection.
# @param value [Number, String] (optional) Width to set for all the nodes in the selection.
# @return The selection if setting the width of the nodes, or the width
# in pixels of the first node in the selection.
d3.selection::width = (value) ->
if value? and Epoch.isString(value)
@style('width', value)
else if value? and Epoch.isNumber(value)
@style('width', "#{value}px")
else
+Epoch.Util.getComputedStyle(@node(), null).width.replace('px', '')
# Gets the height of the first node, or sets the height of all the nodes
# in a d3 selection.
# @param value (optional) Height to set for all the nodes in the selection.
# @return The selection if setting the height of the nodes, or the height
# in pixels of the first node in the selection.
d3.selection::height = (value) ->
if value? and Epoch.isString(value)
@style('height', value)
else if value? and Epoch.isNumber(value)
@style('height', "#{value}px")
else
+Epoch.Util.getComputedStyle(@node(), null).height.replace('px', '')