mdarray-sol 0.1.0-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (683) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +35 -0
  3. data/LICENSE.txt~ +73 -0
  4. data/README.md +140 -0
  5. data/README.md~ +290 -0
  6. data/Rakefile +80 -0
  7. data/config.rb +223 -0
  8. data/doc/Nashorn.html +1406 -0
  9. data/doc/Sol.html +692 -0
  10. data/doc/Sol/BarChart.html +181 -0
  11. data/doc/Sol/BaseChart.html +799 -0
  12. data/doc/Sol/Bootstrap.html +1134 -0
  13. data/doc/Sol/Bridge.html +448 -0
  14. data/doc/Sol/Chart.html +1162 -0
  15. data/doc/Sol/CoordinateChart.html +673 -0
  16. data/doc/Sol/DCFX.html +807 -0
  17. data/doc/Sol/Dashboard.html +1967 -0
  18. data/doc/Sol/ExecMessages.html +332 -0
  19. data/doc/Sol/GuiCommunication.html +230 -0
  20. data/doc/Sol/Interval.html +1213 -0
  21. data/doc/Sol/JS.html +448 -0
  22. data/doc/Sol/LineChart.html +344 -0
  23. data/doc/Sol/LinearScale.html +334 -0
  24. data/doc/Sol/Margins.html +219 -0
  25. data/doc/Sol/OrdinalScale.html +263 -0
  26. data/doc/Sol/ReadBuffer.html +302 -0
  27. data/doc/Sol/Scale.html +462 -0
  28. data/doc/Sol/Stack.html +199 -0
  29. data/doc/Sol/TimeScale.html +396 -0
  30. data/doc/_index.html +362 -0
  31. data/doc/class_list.html +58 -0
  32. data/doc/css/common.css +1 -0
  33. data/doc/css/full_list.css +57 -0
  34. data/doc/css/style.css +339 -0
  35. data/doc/file.README.html +95 -0
  36. data/doc/file_list.html +60 -0
  37. data/doc/frames.html +26 -0
  38. data/doc/index.html +95 -0
  39. data/doc/js/app.js +219 -0
  40. data/doc/js/full_list.js +181 -0
  41. data/doc/js/jquery.js +4 -0
  42. data/doc/method_list.html +849 -0
  43. data/doc/top-level-namespace.html +135 -0
  44. data/examples/bar_chart/bar_chart.rb +268 -0
  45. data/examples/bar_plot.rb +96 -0
  46. data/examples/charts/area.rb +25 -0
  47. data/examples/charts/area_script.rb +69 -0
  48. data/examples/charts/env.rb +8 -0
  49. data/examples/charts/monthly-move.csv +6725 -0
  50. data/examples/charts/morley.csv +101 -0
  51. data/examples/charts/morley2.csv +81 -0
  52. data/examples/charts/morley3.csv +121 -0
  53. data/examples/d3_tutorial.rb +98 -0
  54. data/examples/sc_plot.rb +57 -0
  55. data/examples/scatterplot/axes.rb +111 -0
  56. data/examples/scatterplot/scatterplot.rb +221 -0
  57. data/examples/us_states/map.rb +90 -0
  58. data/examples/us_states/us-ag-productivity2004.csv +49 -0
  59. data/examples/us_states/us-cities.csv +51 -0
  60. data/examples/util/linear_scale.rb +83 -0
  61. data/examples/util/ordinal_scale.rb +72 -0
  62. data/init.rb +39 -0
  63. data/lib/jx/array_handler.js +70 -0
  64. data/lib/jx/callback.rb +255 -0
  65. data/lib/jx/hash_handler.js +87 -0
  66. data/lib/jx/irbobject.rb +121 -0
  67. data/lib/jx/js.rb +442 -0
  68. data/lib/jx/js_array.rb +31 -0
  69. data/lib/jx/js_hash.rb +76 -0
  70. data/lib/jx/js_init.rb +62 -0
  71. data/lib/jx/jsarray.rb +66 -0
  72. data/lib/jx/jsfunction.rb +73 -0
  73. data/lib/jx/jsobject.rb +188 -0
  74. data/lib/jx/jsstyle_sheet.rb +231 -0
  75. data/lib/jx/jsundefined.rb +46 -0
  76. data/lib/jx/proxy_array.rb +62 -0
  77. data/lib/jx/rbobject.rb +80 -0
  78. data/lib/jx/ruby_proxy.js +176 -0
  79. data/lib/jx/ruby_rich.js +70 -0
  80. data/lib/jx/sol.rb +109 -0
  81. data/lib/mdarray-sol.rb +34 -0
  82. data/lib/mdarray/jsmdarray.rb +39 -0
  83. data/lib/ruby_rich/bootstrap.rb +230 -0
  84. data/lib/ruby_rich/config.html +22 -0
  85. data/lib/ruby_rich/dashboard.rb +299 -0
  86. data/lib/ruby_rich/ruby_rich.rb +120 -0
  87. data/lib/sol/bar_chart.rb +35 -0
  88. data/lib/sol/base_chart.rb +148 -0
  89. data/lib/sol/chart.rb +138 -0
  90. data/lib/sol/coordinate_chart.rb +128 -0
  91. data/lib/sol/interval.rb +156 -0
  92. data/lib/sol/line_chart.rb +58 -0
  93. data/lib/sol/margins.rb +52 -0
  94. data/lib/sol/scale.rb +212 -0
  95. data/lib/sol/stack.rb +44 -0
  96. data/node_modules/bootstrap/Gruntfile.js +533 -0
  97. data/node_modules/bootstrap/dist/js/bootstrap.js +2363 -0
  98. data/node_modules/bootstrap/dist/js/bootstrap.min.js +7 -0
  99. data/node_modules/bootstrap/dist/js/npm.js +13 -0
  100. data/node_modules/bootstrap/grunt/bs-commonjs-generator.js +30 -0
  101. data/node_modules/bootstrap/grunt/bs-glyphicons-data-generator.js +42 -0
  102. data/node_modules/bootstrap/grunt/bs-lessdoc-parser.js +237 -0
  103. data/node_modules/bootstrap/grunt/bs-raw-files-generator.js +44 -0
  104. data/node_modules/bootstrap/js/affix.js +162 -0
  105. data/node_modules/bootstrap/js/alert.js +94 -0
  106. data/node_modules/bootstrap/js/button.js +120 -0
  107. data/node_modules/bootstrap/js/carousel.js +237 -0
  108. data/node_modules/bootstrap/js/collapse.js +211 -0
  109. data/node_modules/bootstrap/js/dropdown.js +165 -0
  110. data/node_modules/bootstrap/js/modal.js +337 -0
  111. data/node_modules/bootstrap/js/popover.js +108 -0
  112. data/node_modules/bootstrap/js/scrollspy.js +172 -0
  113. data/node_modules/bootstrap/js/tab.js +155 -0
  114. data/node_modules/bootstrap/js/tooltip.js +514 -0
  115. data/node_modules/bootstrap/js/transition.js +59 -0
  116. data/node_modules/chai/chai.js +6142 -0
  117. data/node_modules/chai/index.js +1 -0
  118. data/node_modules/chai/karma.conf.js +28 -0
  119. data/node_modules/chai/karma.sauce.js +41 -0
  120. data/node_modules/chai/lib/chai.js +93 -0
  121. data/node_modules/chai/lib/chai/assertion.js +131 -0
  122. data/node_modules/chai/lib/chai/config.js +55 -0
  123. data/node_modules/chai/lib/chai/core/assertions.js +1860 -0
  124. data/node_modules/chai/lib/chai/interface/assert.js +1645 -0
  125. data/node_modules/chai/lib/chai/interface/expect.js +34 -0
  126. data/node_modules/chai/lib/chai/interface/should.js +201 -0
  127. data/node_modules/chai/lib/chai/utils/addChainableMethod.js +112 -0
  128. data/node_modules/chai/lib/chai/utils/addMethod.js +44 -0
  129. data/node_modules/chai/lib/chai/utils/addProperty.js +48 -0
  130. data/node_modules/chai/lib/chai/utils/expectTypes.js +42 -0
  131. data/node_modules/chai/lib/chai/utils/flag.js +33 -0
  132. data/node_modules/chai/lib/chai/utils/getActual.js +20 -0
  133. data/node_modules/chai/lib/chai/utils/getEnumerableProperties.js +26 -0
  134. data/node_modules/chai/lib/chai/utils/getMessage.js +51 -0
  135. data/node_modules/chai/lib/chai/utils/getName.js +22 -0
  136. data/node_modules/chai/lib/chai/utils/getPathInfo.js +111 -0
  137. data/node_modules/chai/lib/chai/utils/getPathValue.js +43 -0
  138. data/node_modules/chai/lib/chai/utils/getProperties.js +36 -0
  139. data/node_modules/chai/lib/chai/utils/hasProperty.js +64 -0
  140. data/node_modules/chai/lib/chai/utils/index.js +130 -0
  141. data/node_modules/chai/lib/chai/utils/inspect.js +335 -0
  142. data/node_modules/chai/lib/chai/utils/objDisplay.js +50 -0
  143. data/node_modules/chai/lib/chai/utils/overwriteChainableMethod.js +54 -0
  144. data/node_modules/chai/lib/chai/utils/overwriteMethod.js +52 -0
  145. data/node_modules/chai/lib/chai/utils/overwriteProperty.js +55 -0
  146. data/node_modules/chai/lib/chai/utils/test.js +28 -0
  147. data/node_modules/chai/lib/chai/utils/transferFlags.js +45 -0
  148. data/node_modules/chai/node_modules/assertion-error/index.js +116 -0
  149. data/node_modules/chai/node_modules/deep-eql/index.js +1 -0
  150. data/node_modules/chai/node_modules/deep-eql/karma.conf.js +20 -0
  151. data/node_modules/chai/node_modules/deep-eql/lib/eql.js +257 -0
  152. data/node_modules/chai/node_modules/deep-eql/node_modules/type-detect/index.js +1 -0
  153. data/node_modules/chai/node_modules/deep-eql/node_modules/type-detect/lib/type.js +142 -0
  154. data/node_modules/chai/node_modules/type-detect/index.js +1 -0
  155. data/node_modules/chai/node_modules/type-detect/lib/type.js +134 -0
  156. data/node_modules/chai/sauce.browsers.js +128 -0
  157. data/node_modules/dc/Gruntfile.js +437 -0
  158. data/node_modules/dc/dc.js +10477 -0
  159. data/node_modules/dc/dc.min.js +23 -0
  160. data/node_modules/dc/docs/coverage.js +203 -0
  161. data/node_modules/dc/grunt/format-file-list.js +33 -0
  162. data/node_modules/dc/index.js +5 -0
  163. data/node_modules/dc/node_modules/crossfilter2/crossfilter.js +1401 -0
  164. data/node_modules/dc/node_modules/crossfilter2/crossfilter.min.js +1 -0
  165. data/node_modules/dc/node_modules/crossfilter2/index.js +1 -0
  166. data/node_modules/dc/node_modules/crossfilter2/src/array.js +46 -0
  167. data/node_modules/dc/node_modules/crossfilter2/src/bisect.js +44 -0
  168. data/node_modules/dc/node_modules/crossfilter2/src/crossfilter.js +872 -0
  169. data/node_modules/dc/node_modules/crossfilter2/src/filter.js +19 -0
  170. data/node_modules/dc/node_modules/crossfilter2/src/heap.js +44 -0
  171. data/node_modules/dc/node_modules/crossfilter2/src/heapselect.js +36 -0
  172. data/node_modules/dc/node_modules/crossfilter2/src/identity.js +3 -0
  173. data/node_modules/dc/node_modules/crossfilter2/src/insertionsort.js +18 -0
  174. data/node_modules/dc/node_modules/crossfilter2/src/null.js +3 -0
  175. data/node_modules/dc/node_modules/crossfilter2/src/permute.js +8 -0
  176. data/node_modules/dc/node_modules/crossfilter2/src/quicksort.js +283 -0
  177. data/node_modules/dc/node_modules/crossfilter2/src/reduce.js +19 -0
  178. data/node_modules/dc/node_modules/crossfilter2/src/zero.js +3 -0
  179. data/node_modules/dc/node_modules/d3/d3.js +9554 -0
  180. data/node_modules/dc/node_modules/d3/d3.min.js +5 -0
  181. data/node_modules/dc/node_modules/d3/package.js +13 -0
  182. data/node_modules/dc/node_modules/d3/src/arrays/ascending.js +5 -0
  183. data/node_modules/dc/node_modules/d3/src/arrays/bisect.js +36 -0
  184. data/node_modules/dc/node_modules/d3/src/arrays/descending.js +3 -0
  185. data/node_modules/dc/node_modules/d3/src/arrays/deviation.js +6 -0
  186. data/node_modules/dc/node_modules/d3/src/arrays/entries.js +5 -0
  187. data/node_modules/dc/node_modules/d3/src/arrays/extent.js +21 -0
  188. data/node_modules/dc/node_modules/d3/src/arrays/index.js +25 -0
  189. data/node_modules/dc/node_modules/d3/src/arrays/keys.js +5 -0
  190. data/node_modules/dc/node_modules/d3/src/arrays/map.js +84 -0
  191. data/node_modules/dc/node_modules/d3/src/arrays/max.js +14 -0
  192. data/node_modules/dc/node_modules/d3/src/arrays/mean.js +15 -0
  193. data/node_modules/dc/node_modules/d3/src/arrays/median.js +16 -0
  194. data/node_modules/dc/node_modules/d3/src/arrays/merge.js +21 -0
  195. data/node_modules/dc/node_modules/d3/src/arrays/min.js +14 -0
  196. data/node_modules/dc/node_modules/d3/src/arrays/nest.js +97 -0
  197. data/node_modules/dc/node_modules/d3/src/arrays/pairs.js +5 -0
  198. data/node_modules/dc/node_modules/d3/src/arrays/permute.js +5 -0
  199. data/node_modules/dc/node_modules/d3/src/arrays/quantile.js +8 -0
  200. data/node_modules/dc/node_modules/d3/src/arrays/range.js +26 -0
  201. data/node_modules/dc/node_modules/d3/src/arrays/set.js +27 -0
  202. data/node_modules/dc/node_modules/d3/src/arrays/shuffle.js +9 -0
  203. data/node_modules/dc/node_modules/d3/src/arrays/sum.js +14 -0
  204. data/node_modules/dc/node_modules/d3/src/arrays/transpose.js +15 -0
  205. data/node_modules/dc/node_modules/d3/src/arrays/values.js +5 -0
  206. data/node_modules/dc/node_modules/d3/src/arrays/variance.js +29 -0
  207. data/node_modules/dc/node_modules/d3/src/arrays/zip.js +5 -0
  208. data/node_modules/dc/node_modules/d3/src/behavior/behavior.js +1 -0
  209. data/node_modules/dc/node_modules/d3/src/behavior/drag.js +88 -0
  210. data/node_modules/dc/node_modules/d3/src/behavior/index.js +3 -0
  211. data/node_modules/dc/node_modules/d3/src/behavior/zoom.js +348 -0
  212. data/node_modules/dc/node_modules/d3/src/color/color.js +7 -0
  213. data/node_modules/dc/node_modules/d3/src/color/hcl.js +34 -0
  214. data/node_modules/dc/node_modules/d3/src/color/hsl.js +56 -0
  215. data/node_modules/dc/node_modules/d3/src/color/index.js +6 -0
  216. data/node_modules/dc/node_modules/d3/src/color/lab.js +60 -0
  217. data/node_modules/dc/node_modules/d3/src/color/rgb.js +301 -0
  218. data/node_modules/dc/node_modules/d3/src/color/xyz.js +7 -0
  219. data/node_modules/dc/node_modules/d3/src/compat/array.js +15 -0
  220. data/node_modules/dc/node_modules/d3/src/compat/date.js +3 -0
  221. data/node_modules/dc/node_modules/d3/src/compat/index.js +3 -0
  222. data/node_modules/dc/node_modules/d3/src/compat/style.js +23 -0
  223. data/node_modules/dc/node_modules/d3/src/core/array.js +2 -0
  224. data/node_modules/dc/node_modules/d3/src/core/class.js +8 -0
  225. data/node_modules/dc/node_modules/d3/src/core/document.js +15 -0
  226. data/node_modules/dc/node_modules/d3/src/core/functor.js +5 -0
  227. data/node_modules/dc/node_modules/d3/src/core/identity.js +3 -0
  228. data/node_modules/dc/node_modules/d3/src/core/index.js +3 -0
  229. data/node_modules/dc/node_modules/d3/src/core/noop.js +1 -0
  230. data/node_modules/dc/node_modules/d3/src/core/ns.js +18 -0
  231. data/node_modules/dc/node_modules/d3/src/core/rebind.js +16 -0
  232. data/node_modules/dc/node_modules/d3/src/core/source.js +3 -0
  233. data/node_modules/dc/node_modules/d3/src/core/subclass.js +11 -0
  234. data/node_modules/dc/node_modules/d3/src/core/target.js +3 -0
  235. data/node_modules/dc/node_modules/d3/src/core/true.js +3 -0
  236. data/node_modules/dc/node_modules/d3/src/core/vendor.js +10 -0
  237. data/node_modules/dc/node_modules/d3/src/core/zero.js +3 -0
  238. data/node_modules/dc/node_modules/d3/src/d3.js +23 -0
  239. data/node_modules/dc/node_modules/d3/src/dsv/csv.js +3 -0
  240. data/node_modules/dc/node_modules/d3/src/dsv/dsv.js +136 -0
  241. data/node_modules/dc/node_modules/d3/src/dsv/index.js +3 -0
  242. data/node_modules/dc/node_modules/d3/src/dsv/tsv.js +3 -0
  243. data/node_modules/dc/node_modules/d3/src/end.js +4 -0
  244. data/node_modules/dc/node_modules/d3/src/event/dispatch.js +69 -0
  245. data/node_modules/dc/node_modules/d3/src/event/drag.js +36 -0
  246. data/node_modules/dc/node_modules/d3/src/event/event.js +50 -0
  247. data/node_modules/dc/node_modules/d3/src/event/index.js +6 -0
  248. data/node_modules/dc/node_modules/d3/src/event/mouse.js +39 -0
  249. data/node_modules/dc/node_modules/d3/src/event/timer.js +82 -0
  250. data/node_modules/dc/node_modules/d3/src/event/touch.js +11 -0
  251. data/node_modules/dc/node_modules/d3/src/event/touches.js +12 -0
  252. data/node_modules/dc/node_modules/d3/src/format/collapse.js +3 -0
  253. data/node_modules/dc/node_modules/d3/src/format/format.js +3 -0
  254. data/node_modules/dc/node_modules/d3/src/format/formatPrefix.js +24 -0
  255. data/node_modules/dc/node_modules/d3/src/format/index.js +4 -0
  256. data/node_modules/dc/node_modules/d3/src/format/precision.js +3 -0
  257. data/node_modules/dc/node_modules/d3/src/format/requote.js +5 -0
  258. data/node_modules/dc/node_modules/d3/src/format/round.js +5 -0
  259. data/node_modules/dc/node_modules/d3/src/geo/albers-usa.js +129 -0
  260. data/node_modules/dc/node_modules/d3/src/geo/albers.js +11 -0
  261. data/node_modules/dc/node_modules/d3/src/geo/area.js +69 -0
  262. data/node_modules/dc/node_modules/d3/src/geo/azimuthal-equal-area.js +12 -0
  263. data/node_modules/dc/node_modules/d3/src/geo/azimuthal-equidistant.js +13 -0
  264. data/node_modules/dc/node_modules/d3/src/geo/azimuthal.js +25 -0
  265. data/node_modules/dc/node_modules/d3/src/geo/bounds.js +168 -0
  266. data/node_modules/dc/node_modules/d3/src/geo/cartesian.js +47 -0
  267. data/node_modules/dc/node_modules/d3/src/geo/centroid.js +149 -0
  268. data/node_modules/dc/node_modules/d3/src/geo/circle.js +81 -0
  269. data/node_modules/dc/node_modules/d3/src/geo/clip-antimeridian.js +95 -0
  270. data/node_modules/dc/node_modules/d3/src/geo/clip-circle.js +178 -0
  271. data/node_modules/dc/node_modules/d3/src/geo/clip-extent.js +196 -0
  272. data/node_modules/dc/node_modules/d3/src/geo/clip-polygon.js +104 -0
  273. data/node_modules/dc/node_modules/d3/src/geo/clip.js +149 -0
  274. data/node_modules/dc/node_modules/d3/src/geo/compose.js +12 -0
  275. data/node_modules/dc/node_modules/d3/src/geo/conic-conformal.js +39 -0
  276. data/node_modules/dc/node_modules/d3/src/geo/conic-equal-area.js +33 -0
  277. data/node_modules/dc/node_modules/d3/src/geo/conic-equidistant.js +36 -0
  278. data/node_modules/dc/node_modules/d3/src/geo/conic.js +16 -0
  279. data/node_modules/dc/node_modules/d3/src/geo/distance.js +13 -0
  280. data/node_modules/dc/node_modules/d3/src/geo/equirectangular.js +10 -0
  281. data/node_modules/dc/node_modules/d3/src/geo/geo.js +1 -0
  282. data/node_modules/dc/node_modules/d3/src/geo/gnomonic.js +12 -0
  283. data/node_modules/dc/node_modules/d3/src/geo/graticule.js +103 -0
  284. data/node_modules/dc/node_modules/d3/src/geo/greatArc.js +42 -0
  285. data/node_modules/dc/node_modules/d3/src/geo/index.js +33 -0
  286. data/node_modules/dc/node_modules/d3/src/geo/interpolate.js +38 -0
  287. data/node_modules/dc/node_modules/d3/src/geo/length.js +44 -0
  288. data/node_modules/dc/node_modules/d3/src/geo/mercator.js +48 -0
  289. data/node_modules/dc/node_modules/d3/src/geo/orthographic.js +12 -0
  290. data/node_modules/dc/node_modules/d3/src/geo/path-area.js +41 -0
  291. data/node_modules/dc/node_modules/d3/src/geo/path-bounds.js +21 -0
  292. data/node_modules/dc/node_modules/d3/src/geo/path-buffer.js +59 -0
  293. data/node_modules/dc/node_modules/d3/src/geo/path-centroid.js +78 -0
  294. data/node_modules/dc/node_modules/d3/src/geo/path-context.js +49 -0
  295. data/node_modules/dc/node_modules/d3/src/geo/path.js +87 -0
  296. data/node_modules/dc/node_modules/d3/src/geo/point-in-polygon.js +71 -0
  297. data/node_modules/dc/node_modules/d3/src/geo/projection.js +121 -0
  298. data/node_modules/dc/node_modules/d3/src/geo/resample.js +109 -0
  299. data/node_modules/dc/node_modules/d3/src/geo/rotation.js +79 -0
  300. data/node_modules/dc/node_modules/d3/src/geo/spherical.js +13 -0
  301. data/node_modules/dc/node_modules/d3/src/geo/stereographic.js +12 -0
  302. data/node_modules/dc/node_modules/d3/src/geo/stream.js +71 -0
  303. data/node_modules/dc/node_modules/d3/src/geo/transform.js +36 -0
  304. data/node_modules/dc/node_modules/d3/src/geo/transverse-mercator.js +31 -0
  305. data/node_modules/dc/node_modules/d3/src/geom/clip-line.js +66 -0
  306. data/node_modules/dc/node_modules/d3/src/geom/delaunay.js +6 -0
  307. data/node_modules/dc/node_modules/d3/src/geom/geom.js +1 -0
  308. data/node_modules/dc/node_modules/d3/src/geom/hull.js +91 -0
  309. data/node_modules/dc/node_modules/d3/src/geom/index.js +6 -0
  310. data/node_modules/dc/node_modules/d3/src/geom/point.js +7 -0
  311. data/node_modules/dc/node_modules/d3/src/geom/polygon.js +105 -0
  312. data/node_modules/dc/node_modules/d3/src/geom/quadtree.js +243 -0
  313. data/node_modules/dc/node_modules/d3/src/geom/voronoi.js +110 -0
  314. data/node_modules/dc/node_modules/d3/src/geom/voronoi/beach.js +186 -0
  315. data/node_modules/dc/node_modules/d3/src/geom/voronoi/cell.js +64 -0
  316. data/node_modules/dc/node_modules/d3/src/geom/voronoi/circle.js +73 -0
  317. data/node_modules/dc/node_modules/d3/src/geom/voronoi/clip.js +80 -0
  318. data/node_modules/dc/node_modules/d3/src/geom/voronoi/edge.js +50 -0
  319. data/node_modules/dc/node_modules/d3/src/geom/voronoi/index.js +59 -0
  320. data/node_modules/dc/node_modules/d3/src/geom/voronoi/red-black.js +235 -0
  321. data/node_modules/dc/node_modules/d3/src/interpolate/array.js +19 -0
  322. data/node_modules/dc/node_modules/d3/src/interpolate/ease.js +111 -0
  323. data/node_modules/dc/node_modules/d3/src/interpolate/hcl.js +20 -0
  324. data/node_modules/dc/node_modules/d3/src/interpolate/hsl.js +20 -0
  325. data/node_modules/dc/node_modules/d3/src/interpolate/index.js +14 -0
  326. data/node_modules/dc/node_modules/d3/src/interpolate/interpolate.js +26 -0
  327. data/node_modules/dc/node_modules/d3/src/interpolate/lab.js +17 -0
  328. data/node_modules/dc/node_modules/d3/src/interpolate/number.js +6 -0
  329. data/node_modules/dc/node_modules/d3/src/interpolate/object.js +25 -0
  330. data/node_modules/dc/node_modules/d3/src/interpolate/rgb.js +20 -0
  331. data/node_modules/dc/node_modules/d3/src/interpolate/round.js +6 -0
  332. data/node_modules/dc/node_modules/d3/src/interpolate/string.js +54 -0
  333. data/node_modules/dc/node_modules/d3/src/interpolate/transform.js +59 -0
  334. data/node_modules/dc/node_modules/d3/src/interpolate/uninterpolate.js +9 -0
  335. data/node_modules/dc/node_modules/d3/src/interpolate/zoom.js +53 -0
  336. data/node_modules/dc/node_modules/d3/src/layout/bundle.js +59 -0
  337. data/node_modules/dc/node_modules/d3/src/layout/chord.js +157 -0
  338. data/node_modules/dc/node_modules/d3/src/layout/cluster.js +92 -0
  339. data/node_modules/dc/node_modules/d3/src/layout/force.js +372 -0
  340. data/node_modules/dc/node_modules/d3/src/layout/hierarchy.js +136 -0
  341. data/node_modules/dc/node_modules/d3/src/layout/histogram.js +110 -0
  342. data/node_modules/dc/node_modules/d3/src/layout/index.js +13 -0
  343. data/node_modules/dc/node_modules/d3/src/layout/layout.js +1 -0
  344. data/node_modules/dc/node_modules/d3/src/layout/pack.js +211 -0
  345. data/node_modules/dc/node_modules/d3/src/layout/partition.js +51 -0
  346. data/node_modules/dc/node_modules/d3/src/layout/pie.js +78 -0
  347. data/node_modules/dc/node_modules/d3/src/layout/stack.js +247 -0
  348. data/node_modules/dc/node_modules/d3/src/layout/tree.js +240 -0
  349. data/node_modules/dc/node_modules/d3/src/layout/treemap.js +229 -0
  350. data/node_modules/dc/node_modules/d3/src/locale/ca-ES.js +16 -0
  351. data/node_modules/dc/node_modules/d3/src/locale/de-CH.js +16 -0
  352. data/node_modules/dc/node_modules/d3/src/locale/de-DE.js +16 -0
  353. data/node_modules/dc/node_modules/d3/src/locale/en-CA.js +16 -0
  354. data/node_modules/dc/node_modules/d3/src/locale/en-GB.js +16 -0
  355. data/node_modules/dc/node_modules/d3/src/locale/en-US.js +16 -0
  356. data/node_modules/dc/node_modules/d3/src/locale/es-ES.js +16 -0
  357. data/node_modules/dc/node_modules/d3/src/locale/fi-FI.js +16 -0
  358. data/node_modules/dc/node_modules/d3/src/locale/fr-CA.js +16 -0
  359. data/node_modules/dc/node_modules/d3/src/locale/fr-FR.js +16 -0
  360. data/node_modules/dc/node_modules/d3/src/locale/he-IL.js +16 -0
  361. data/node_modules/dc/node_modules/d3/src/locale/hu-HU.js +16 -0
  362. data/node_modules/dc/node_modules/d3/src/locale/it-IT.js +16 -0
  363. data/node_modules/dc/node_modules/d3/src/locale/ja-JP.js +16 -0
  364. data/node_modules/dc/node_modules/d3/src/locale/ko-KR.js +16 -0
  365. data/node_modules/dc/node_modules/d3/src/locale/locale.js +9 -0
  366. data/node_modules/dc/node_modules/d3/src/locale/mk-MK.js +16 -0
  367. data/node_modules/dc/node_modules/d3/src/locale/nl-NL.js +16 -0
  368. data/node_modules/dc/node_modules/d3/src/locale/number-format.js +155 -0
  369. data/node_modules/dc/node_modules/d3/src/locale/pl-PL.js +16 -0
  370. data/node_modules/dc/node_modules/d3/src/locale/pt-BR.js +16 -0
  371. data/node_modules/dc/node_modules/d3/src/locale/ru-RU.js +16 -0
  372. data/node_modules/dc/node_modules/d3/src/locale/sv-SE.js +16 -0
  373. data/node_modules/dc/node_modules/d3/src/locale/time-format.js +370 -0
  374. data/node_modules/dc/node_modules/d3/src/locale/time-scale.js +0 -0
  375. data/node_modules/dc/node_modules/d3/src/locale/zh-CN.js +16 -0
  376. data/node_modules/dc/node_modules/d3/src/math/abs.js +1 -0
  377. data/node_modules/dc/node_modules/d3/src/math/adder.js +34 -0
  378. data/node_modules/dc/node_modules/d3/src/math/index.js +2 -0
  379. data/node_modules/dc/node_modules/d3/src/math/number.js +7 -0
  380. data/node_modules/dc/node_modules/d3/src/math/random.js +34 -0
  381. data/node_modules/dc/node_modules/d3/src/math/transform.js +64 -0
  382. data/node_modules/dc/node_modules/d3/src/math/trigonometry.js +44 -0
  383. data/node_modules/dc/node_modules/d3/src/scale/bilinear.js +7 -0
  384. data/node_modules/dc/node_modules/d3/src/scale/category.js +58 -0
  385. data/node_modules/dc/node_modules/d3/src/scale/identity.js +33 -0
  386. data/node_modules/dc/node_modules/d3/src/scale/index.js +11 -0
  387. data/node_modules/dc/node_modules/d3/src/scale/linear.js +160 -0
  388. data/node_modules/dc/node_modules/d3/src/scale/log.js +92 -0
  389. data/node_modules/dc/node_modules/d3/src/scale/nice.js +30 -0
  390. data/node_modules/dc/node_modules/d3/src/scale/ordinal.js +102 -0
  391. data/node_modules/dc/node_modules/d3/src/scale/polylinear.js +24 -0
  392. data/node_modules/dc/node_modules/d3/src/scale/pow.js +57 -0
  393. data/node_modules/dc/node_modules/d3/src/scale/quantile.js +55 -0
  394. data/node_modules/dc/node_modules/d3/src/scale/quantize.js +44 -0
  395. data/node_modules/dc/node_modules/d3/src/scale/scale.js +10 -0
  396. data/node_modules/dc/node_modules/d3/src/scale/sqrt.js +6 -0
  397. data/node_modules/dc/node_modules/d3/src/scale/threshold.js +36 -0
  398. data/node_modules/dc/node_modules/d3/src/selection/append.js +28 -0
  399. data/node_modules/dc/node_modules/d3/src/selection/attr.js +62 -0
  400. data/node_modules/dc/node_modules/d3/src/selection/call.js +8 -0
  401. data/node_modules/dc/node_modules/d3/src/selection/classed.js +76 -0
  402. data/node_modules/dc/node_modules/d3/src/selection/data.js +117 -0
  403. data/node_modules/dc/node_modules/d3/src/selection/datum.js +7 -0
  404. data/node_modules/dc/node_modules/d3/src/selection/each.js +16 -0
  405. data/node_modules/dc/node_modules/d3/src/selection/empty.js +5 -0
  406. data/node_modules/dc/node_modules/d3/src/selection/enter-insert.js +20 -0
  407. data/node_modules/dc/node_modules/d3/src/selection/enter-select.js +27 -0
  408. data/node_modules/dc/node_modules/d3/src/selection/enter.js +21 -0
  409. data/node_modules/dc/node_modules/d3/src/selection/filter.js +28 -0
  410. data/node_modules/dc/node_modules/d3/src/selection/html.js +10 -0
  411. data/node_modules/dc/node_modules/d3/src/selection/index.js +1 -0
  412. data/node_modules/dc/node_modules/d3/src/selection/insert.js +9 -0
  413. data/node_modules/dc/node_modules/d3/src/selection/interrupt.js +27 -0
  414. data/node_modules/dc/node_modules/d3/src/selection/node.js +11 -0
  415. data/node_modules/dc/node_modules/d3/src/selection/on.js +106 -0
  416. data/node_modules/dc/node_modules/d3/src/selection/order.js +13 -0
  417. data/node_modules/dc/node_modules/d3/src/selection/property.js +43 -0
  418. data/node_modules/dc/node_modules/d3/src/selection/remove.js +13 -0
  419. data/node_modules/dc/node_modules/d3/src/selection/select.js +32 -0
  420. data/node_modules/dc/node_modules/d3/src/selection/selectAll.js +27 -0
  421. data/node_modules/dc/node_modules/d3/src/selection/selection.js +81 -0
  422. data/node_modules/dc/node_modules/d3/src/selection/size.js +7 -0
  423. data/node_modules/dc/node_modules/d3/src/selection/sort.js +15 -0
  424. data/node_modules/dc/node_modules/d3/src/selection/style.js +59 -0
  425. data/node_modules/dc/node_modules/d3/src/selection/text.js +10 -0
  426. data/node_modules/dc/node_modules/d3/src/selection/transition.js +21 -0
  427. data/node_modules/dc/node_modules/d3/src/start.js +2 -0
  428. data/node_modules/dc/node_modules/d3/src/svg/arc.js +292 -0
  429. data/node_modules/dc/node_modules/d3/src/svg/area-radial.js +14 -0
  430. data/node_modules/dc/node_modules/d3/src/svg/area.js +121 -0
  431. data/node_modules/dc/node_modules/d3/src/svg/axis.js +160 -0
  432. data/node_modules/dc/node_modules/d3/src/svg/brush.js +429 -0
  433. data/node_modules/dc/node_modules/d3/src/svg/chord.js +90 -0
  434. data/node_modules/dc/node_modules/d3/src/svg/diagonal-radial.js +27 -0
  435. data/node_modules/dc/node_modules/d3/src/svg/diagonal.js +43 -0
  436. data/node_modules/dc/node_modules/d3/src/svg/index.js +12 -0
  437. data/node_modules/dc/node_modules/d3/src/svg/line-radial.js +27 -0
  438. data/node_modules/dc/node_modules/d3/src/svg/line.js +432 -0
  439. data/node_modules/dc/node_modules/d3/src/svg/svg.js +1 -0
  440. data/node_modules/dc/node_modules/d3/src/svg/symbol.js +105 -0
  441. data/node_modules/dc/node_modules/d3/src/time/day.js +21 -0
  442. data/node_modules/dc/node_modules/d3/src/time/format-iso.js +19 -0
  443. data/node_modules/dc/node_modules/d3/src/time/format-utc.js +3 -0
  444. data/node_modules/dc/node_modules/d3/src/time/format.js +4 -0
  445. data/node_modules/dc/node_modules/d3/src/time/hour.js +14 -0
  446. data/node_modules/dc/node_modules/d3/src/time/index.js +14 -0
  447. data/node_modules/dc/node_modules/d3/src/time/interval.js +71 -0
  448. data/node_modules/dc/node_modules/d3/src/time/minute.js +13 -0
  449. data/node_modules/dc/node_modules/d3/src/time/month.js +16 -0
  450. data/node_modules/dc/node_modules/d3/src/time/scale-utc.js +25 -0
  451. data/node_modules/dc/node_modules/d3/src/time/scale.js +155 -0
  452. data/node_modules/dc/node_modules/d3/src/time/second.js +13 -0
  453. data/node_modules/dc/node_modules/d3/src/time/time.js +33 -0
  454. data/node_modules/dc/node_modules/d3/src/time/week.js +31 -0
  455. data/node_modules/dc/node_modules/d3/src/time/year.js +16 -0
  456. data/node_modules/dc/node_modules/d3/src/transition/attr.js +58 -0
  457. data/node_modules/dc/node_modules/d3/src/transition/delay.js +10 -0
  458. data/node_modules/dc/node_modules/d3/src/transition/duration.js +10 -0
  459. data/node_modules/dc/node_modules/d3/src/transition/each.js +26 -0
  460. data/node_modules/dc/node_modules/d3/src/transition/ease.js +10 -0
  461. data/node_modules/dc/node_modules/d3/src/transition/filter.js +22 -0
  462. data/node_modules/dc/node_modules/d3/src/transition/index.js +1 -0
  463. data/node_modules/dc/node_modules/d3/src/transition/remove.js +9 -0
  464. data/node_modules/dc/node_modules/d3/src/transition/select.js +28 -0
  465. data/node_modules/dc/node_modules/d3/src/transition/selectAll.js +31 -0
  466. data/node_modules/dc/node_modules/d3/src/transition/style.js +53 -0
  467. data/node_modules/dc/node_modules/d3/src/transition/subtransition.js +25 -0
  468. data/node_modules/dc/node_modules/d3/src/transition/text.js +11 -0
  469. data/node_modules/dc/node_modules/d3/src/transition/transition.js +161 -0
  470. data/node_modules/dc/node_modules/d3/src/transition/tween.js +17 -0
  471. data/node_modules/dc/node_modules/d3/src/xhr/html.js +12 -0
  472. data/node_modules/dc/node_modules/d3/src/xhr/index.js +5 -0
  473. data/node_modules/dc/node_modules/d3/src/xhr/json.js +9 -0
  474. data/node_modules/dc/node_modules/d3/src/xhr/text.js +5 -0
  475. data/node_modules/dc/node_modules/d3/src/xhr/xhr.js +126 -0
  476. data/node_modules/dc/node_modules/d3/src/xhr/xml.js +5 -0
  477. data/node_modules/dc/regression/inject-serializer.js +6 -0
  478. data/node_modules/dc/regression/stock-regression-test.js +140 -0
  479. data/node_modules/dc/spec/bar-chart-spec.js +1230 -0
  480. data/node_modules/dc/spec/base-mixin-spec.js +611 -0
  481. data/node_modules/dc/spec/biggish-data-spec.js +136 -0
  482. data/node_modules/dc/spec/box-plot-spec.js +211 -0
  483. data/node_modules/dc/spec/bubble-chart-spec.js +450 -0
  484. data/node_modules/dc/spec/bubble-overlay-spec.js +102 -0
  485. data/node_modules/dc/spec/color-spec.js +89 -0
  486. data/node_modules/dc/spec/composite-chart-spec.js +691 -0
  487. data/node_modules/dc/spec/coordinate-grid-chart-spec.js +962 -0
  488. data/node_modules/dc/spec/core-spec.js +301 -0
  489. data/node_modules/dc/spec/data-addition-spec.js +122 -0
  490. data/node_modules/dc/spec/data-count-spec.js +180 -0
  491. data/node_modules/dc/spec/data-grid-spec.js +124 -0
  492. data/node_modules/dc/spec/data-table-spec.js +251 -0
  493. data/node_modules/dc/spec/event-spec.js +41 -0
  494. data/node_modules/dc/spec/filter-dates-spec.js +92 -0
  495. data/node_modules/dc/spec/filters-spec.js +140 -0
  496. data/node_modules/dc/spec/geo-choropleth-chart-spec.js +225 -0
  497. data/node_modules/dc/spec/heatmap-spec.js +363 -0
  498. data/node_modules/dc/spec/helpers/custom_matchers.js +213 -0
  499. data/node_modules/dc/spec/helpers/fixtures.js +81 -0
  500. data/node_modules/dc/spec/helpers/geoFixtures.js +113 -0
  501. data/node_modules/dc/spec/helpers/load-jsreporter.js +37 -0
  502. data/node_modules/dc/spec/helpers/spec-helper.js +53 -0
  503. data/node_modules/dc/spec/legend-spec.js +266 -0
  504. data/node_modules/dc/spec/line-chart-spec.js +709 -0
  505. data/node_modules/dc/spec/logger-spec.js +80 -0
  506. data/node_modules/dc/spec/number-display-spec.js +168 -0
  507. data/node_modules/dc/spec/pie-chart-spec.js +677 -0
  508. data/node_modules/dc/spec/row-chart-spec.js +362 -0
  509. data/node_modules/dc/spec/scatter-plot-spec.js +336 -0
  510. data/node_modules/dc/spec/series-chart-spec.js +133 -0
  511. data/node_modules/dc/spec/utils-spec.js +110 -0
  512. data/node_modules/dc/src/banner.js +2 -0
  513. data/node_modules/dc/src/bar-chart.js +374 -0
  514. data/node_modules/dc/src/base-mixin.js +1478 -0
  515. data/node_modules/dc/src/box-plot.js +240 -0
  516. data/node_modules/dc/src/bubble-chart.js +177 -0
  517. data/node_modules/dc/src/bubble-mixin.js +244 -0
  518. data/node_modules/dc/src/bubble-overlay.js +207 -0
  519. data/node_modules/dc/src/cap-mixin.js +151 -0
  520. data/node_modules/dc/src/color-mixin.js +172 -0
  521. data/node_modules/dc/src/composite-chart.js +544 -0
  522. data/node_modules/dc/src/coordinate-grid-mixin.js +1300 -0
  523. data/node_modules/dc/src/core.js +425 -0
  524. data/node_modules/dc/src/d3.box.js +317 -0
  525. data/node_modules/dc/src/data-count.js +110 -0
  526. data/node_modules/dc/src/data-grid.js +243 -0
  527. data/node_modules/dc/src/data-table.js +419 -0
  528. data/node_modules/dc/src/errors.js +28 -0
  529. data/node_modules/dc/src/events.js +37 -0
  530. data/node_modules/dc/src/filters.js +124 -0
  531. data/node_modules/dc/src/footer.js +35 -0
  532. data/node_modules/dc/src/geo-choropleth-chart.js +279 -0
  533. data/node_modules/dc/src/heatmap.js +378 -0
  534. data/node_modules/dc/src/legend.js +277 -0
  535. data/node_modules/dc/src/line-chart.js +504 -0
  536. data/node_modules/dc/src/logger.js +40 -0
  537. data/node_modules/dc/src/margin-mixin.js +44 -0
  538. data/node_modules/dc/src/number-display.js +141 -0
  539. data/node_modules/dc/src/pie-chart.js +571 -0
  540. data/node_modules/dc/src/row-chart.js +425 -0
  541. data/node_modules/dc/src/scatter-plot.js +338 -0
  542. data/node_modules/dc/src/series-chart.js +192 -0
  543. data/node_modules/dc/src/stack-mixin.js +319 -0
  544. data/node_modules/dc/src/utils.js +290 -0
  545. data/node_modules/dc/web/docs/html/scripts/docstrap.lib.js +11 -0
  546. data/node_modules/dc/web/docs/html/scripts/fulltext-search-ui.js +89 -0
  547. data/node_modules/dc/web/docs/html/scripts/fulltext-search.js +36 -0
  548. data/node_modules/dc/web/docs/html/scripts/lunr.min.js +7 -0
  549. data/node_modules/dc/web/docs/html/scripts/prettify/jquery.min.js +6 -0
  550. data/node_modules/dc/web/docs/html/scripts/prettify/lang-css.js +21 -0
  551. data/node_modules/dc/web/docs/html/scripts/prettify/prettify.js +496 -0
  552. data/node_modules/dc/web/docs/html/scripts/sunlight.js +1157 -0
  553. data/node_modules/dc/web/docs/html/scripts/toc.js +203 -0
  554. data/node_modules/dc/web/ep/list.js +106 -0
  555. data/node_modules/dc/web/examples/lysenko-interval-tree.js +447 -0
  556. data/node_modules/dc/web/highlighter/shAutoloader.js +17 -0
  557. data/node_modules/dc/web/highlighter/shBrushJScript.js +52 -0
  558. data/node_modules/dc/web/highlighter/shBrushXml.js +69 -0
  559. data/node_modules/dc/web/highlighter/shCore.js +17 -0
  560. data/node_modules/dc/web/js/colorbrewer.js +1 -0
  561. data/node_modules/dc/web/js/crossfilter.js +1401 -0
  562. data/node_modules/dc/web/js/d3.js +9554 -0
  563. data/node_modules/dc/web/js/dc.js +10477 -0
  564. data/node_modules/dc/web/js/dc.min.js +23 -0
  565. data/node_modules/dc/web/js/env-data.js +218 -0
  566. data/node_modules/dc/web/js/jasmine-jsreporter.js +394 -0
  567. data/node_modules/dc/web/stock.js +685 -0
  568. data/node_modules/dc/web/transitions/transition-test.js +45 -0
  569. data/node_modules/jquery/dist/jquery.js +9814 -0
  570. data/node_modules/jquery/dist/jquery.min.js +4 -0
  571. data/node_modules/jquery/external/sizzle/dist/sizzle.js +2143 -0
  572. data/node_modules/jquery/external/sizzle/dist/sizzle.min.js +3 -0
  573. data/node_modules/jquery/src/ajax.js +845 -0
  574. data/node_modules/jquery/src/ajax/jsonp.js +100 -0
  575. data/node_modules/jquery/src/ajax/load.js +83 -0
  576. data/node_modules/jquery/src/ajax/parseJSON.js +13 -0
  577. data/node_modules/jquery/src/ajax/parseXML.js +27 -0
  578. data/node_modules/jquery/src/ajax/script.js +68 -0
  579. data/node_modules/jquery/src/ajax/var/location.js +3 -0
  580. data/node_modules/jquery/src/ajax/var/nonce.js +5 -0
  581. data/node_modules/jquery/src/ajax/var/rquery.js +3 -0
  582. data/node_modules/jquery/src/ajax/xhr.js +167 -0
  583. data/node_modules/jquery/src/attributes.js +11 -0
  584. data/node_modules/jquery/src/attributes/attr.js +142 -0
  585. data/node_modules/jquery/src/attributes/classes.js +177 -0
  586. data/node_modules/jquery/src/attributes/prop.js +125 -0
  587. data/node_modules/jquery/src/attributes/support.js +36 -0
  588. data/node_modules/jquery/src/attributes/val.js +177 -0
  589. data/node_modules/jquery/src/callbacks.js +232 -0
  590. data/node_modules/jquery/src/core.js +494 -0
  591. data/node_modules/jquery/src/core/access.js +65 -0
  592. data/node_modules/jquery/src/core/init.js +134 -0
  593. data/node_modules/jquery/src/core/parseHTML.js +41 -0
  594. data/node_modules/jquery/src/core/ready.js +103 -0
  595. data/node_modules/jquery/src/core/var/rsingleTag.js +5 -0
  596. data/node_modules/jquery/src/css.js +502 -0
  597. data/node_modules/jquery/src/css/addGetHookIf.js +24 -0
  598. data/node_modules/jquery/src/css/adjustCSS.js +65 -0
  599. data/node_modules/jquery/src/css/curCSS.js +60 -0
  600. data/node_modules/jquery/src/css/defaultDisplay.js +72 -0
  601. data/node_modules/jquery/src/css/hiddenVisibleSelectors.js +18 -0
  602. data/node_modules/jquery/src/css/showHide.js +48 -0
  603. data/node_modules/jquery/src/css/support.js +121 -0
  604. data/node_modules/jquery/src/css/var/cssExpand.js +3 -0
  605. data/node_modules/jquery/src/css/var/getStyles.js +15 -0
  606. data/node_modules/jquery/src/css/var/isHidden.js +16 -0
  607. data/node_modules/jquery/src/css/var/rmargin.js +3 -0
  608. data/node_modules/jquery/src/css/var/rnumnonpx.js +5 -0
  609. data/node_modules/jquery/src/css/var/swap.js +24 -0
  610. data/node_modules/jquery/src/data.js +187 -0
  611. data/node_modules/jquery/src/data/Data.js +200 -0
  612. data/node_modules/jquery/src/data/var/acceptData.js +18 -0
  613. data/node_modules/jquery/src/data/var/dataPriv.js +5 -0
  614. data/node_modules/jquery/src/data/var/dataUser.js +5 -0
  615. data/node_modules/jquery/src/deferred.js +158 -0
  616. data/node_modules/jquery/src/deprecated.js +32 -0
  617. data/node_modules/jquery/src/dimensions.js +54 -0
  618. data/node_modules/jquery/src/effects.js +629 -0
  619. data/node_modules/jquery/src/effects/Tween.js +121 -0
  620. data/node_modules/jquery/src/effects/animatedSelector.js +13 -0
  621. data/node_modules/jquery/src/event.js +711 -0
  622. data/node_modules/jquery/src/event/ajax.js +20 -0
  623. data/node_modules/jquery/src/event/alias.js +27 -0
  624. data/node_modules/jquery/src/event/focusin.js +53 -0
  625. data/node_modules/jquery/src/event/support.js +9 -0
  626. data/node_modules/jquery/src/event/trigger.js +183 -0
  627. data/node_modules/jquery/src/exports/amd.js +24 -0
  628. data/node_modules/jquery/src/exports/global.js +26 -0
  629. data/node_modules/jquery/src/intro.js +44 -0
  630. data/node_modules/jquery/src/jquery.js +37 -0
  631. data/node_modules/jquery/src/manipulation.js +481 -0
  632. data/node_modules/jquery/src/manipulation/_evalUrl.js +20 -0
  633. data/node_modules/jquery/src/manipulation/buildFragment.js +102 -0
  634. data/node_modules/jquery/src/manipulation/getAll.js +21 -0
  635. data/node_modules/jquery/src/manipulation/setGlobalEval.js +20 -0
  636. data/node_modules/jquery/src/manipulation/support.js +33 -0
  637. data/node_modules/jquery/src/manipulation/var/rcheckableType.js +3 -0
  638. data/node_modules/jquery/src/manipulation/var/rscriptType.js +3 -0
  639. data/node_modules/jquery/src/manipulation/var/rtagName.js +3 -0
  640. data/node_modules/jquery/src/manipulation/wrapMap.js +27 -0
  641. data/node_modules/jquery/src/offset.js +218 -0
  642. data/node_modules/jquery/src/outro.js +2 -0
  643. data/node_modules/jquery/src/queue.js +143 -0
  644. data/node_modules/jquery/src/queue/delay.js +22 -0
  645. data/node_modules/jquery/src/selector-native.js +211 -0
  646. data/node_modules/jquery/src/selector-sizzle.js +14 -0
  647. data/node_modules/jquery/src/selector.js +1 -0
  648. data/node_modules/jquery/src/serialize.js +125 -0
  649. data/node_modules/jquery/src/traversing.js +175 -0
  650. data/node_modules/jquery/src/traversing/findFilter.js +100 -0
  651. data/node_modules/jquery/src/traversing/var/dir.js +20 -0
  652. data/node_modules/jquery/src/traversing/var/rneedsContext.js +6 -0
  653. data/node_modules/jquery/src/traversing/var/siblings.js +15 -0
  654. data/node_modules/jquery/src/var/arr.js +3 -0
  655. data/node_modules/jquery/src/var/class2type.js +5 -0
  656. data/node_modules/jquery/src/var/concat.js +5 -0
  657. data/node_modules/jquery/src/var/document.js +3 -0
  658. data/node_modules/jquery/src/var/documentElement.js +5 -0
  659. data/node_modules/jquery/src/var/hasOwn.js +5 -0
  660. data/node_modules/jquery/src/var/indexOf.js +5 -0
  661. data/node_modules/jquery/src/var/pnum.js +3 -0
  662. data/node_modules/jquery/src/var/push.js +5 -0
  663. data/node_modules/jquery/src/var/rcssNum.js +7 -0
  664. data/node_modules/jquery/src/var/rnotwhite.js +3 -0
  665. data/node_modules/jquery/src/var/slice.js +5 -0
  666. data/node_modules/jquery/src/var/support.js +5 -0
  667. data/node_modules/jquery/src/var/toString.js +5 -0
  668. data/node_modules/jquery/src/wrap.js +79 -0
  669. data/target/mdarray_sol.jar +0 -0
  670. data/test/jx/test_complete.rb +35 -0
  671. data/test/jx/test_js.rb +543 -0
  672. data/test/jx/test_proxy_array.rb +239 -0
  673. data/test/jx/test_proxy_hash.rb +160 -0
  674. data/test/jx/test_proxy_lambda.rb +80 -0
  675. data/test/jx/test_rb_js_compat.rb +135 -0
  676. data/test/jx/test_style_sheets.rb +90 -0
  677. data/test/mdarray/test_mdarray.rb +75 -0
  678. data/util/cacert.pem +4095 -0
  679. data/util/download.rb +256 -0
  680. data/vendor/jxbrowser-6.8.jar +0 -0
  681. data/vendor/licence.jar +0 -0
  682. data/version.rb +2 -0
  683. metadata +817 -0
@@ -0,0 +1,240 @@
1
+ /**
2
+ * A box plot is a chart that depicts numerical data via their quartile ranges.
3
+ *
4
+ * Examples:
5
+ * - {@link http://dc-js.github.io/dc.js/examples/box-plot-time.html Box plot time example}
6
+ * - {@link http://dc-js.github.io/dc.js/examples/box-plot.html Box plot example}
7
+ * @class boxPlot
8
+ * @memberof dc
9
+ * @mixes dc.coordinateGridMixin
10
+ * @example
11
+ * // create a box plot under #chart-container1 element using the default global chart group
12
+ * var boxPlot1 = dc.boxPlot('#chart-container1');
13
+ * // create a box plot under #chart-container2 element using chart group A
14
+ * var boxPlot2 = dc.boxPlot('#chart-container2', 'chartGroupA');
15
+ * @param {String|node|d3.selection} parent - Any valid
16
+ * {@link https://github.com/mbostock/d3/wiki/Selections#selecting-elements d3 single selector} specifying
17
+ * a dom block element such as a div; or a dom element or d3 selection.
18
+ * @param {String} [chartGroup] - The name of the chart group this chart instance should be placed in.
19
+ * Interaction with a chart will only trigger events and redraws within the chart's group.
20
+ * @return {dc.boxPlot}
21
+ */
22
+ dc.boxPlot = function (parent, chartGroup) {
23
+ var _chart = dc.coordinateGridMixin({});
24
+
25
+ // Returns a function to compute the interquartile range.
26
+ function DEFAULT_WHISKERS_IQR (k) {
27
+ return function (d) {
28
+ var q1 = d.quartiles[0],
29
+ q3 = d.quartiles[2],
30
+ iqr = (q3 - q1) * k,
31
+ i = -1,
32
+ j = d.length;
33
+ do { ++i; } while (d[i] < q1 - iqr);
34
+ do { --j; } while (d[j] > q3 + iqr);
35
+ return [i, j];
36
+ };
37
+ }
38
+
39
+ var _whiskerIqrFactor = 1.5;
40
+ var _whiskersIqr = DEFAULT_WHISKERS_IQR;
41
+ var _whiskers = _whiskersIqr(_whiskerIqrFactor);
42
+
43
+ var _box = d3.box();
44
+ var _tickFormat = null;
45
+
46
+ var _boxWidth = function (innerChartWidth, xUnits) {
47
+ if (_chart.isOrdinal()) {
48
+ return _chart.x().rangeBand();
49
+ } else {
50
+ return innerChartWidth / (1 + _chart.boxPadding()) / xUnits;
51
+ }
52
+ };
53
+
54
+ // default padding to handle min/max whisker text
55
+ _chart.yAxisPadding(12);
56
+
57
+ // default to ordinal
58
+ _chart.x(d3.scale.ordinal());
59
+ _chart.xUnits(dc.units.ordinal);
60
+
61
+ // valueAccessor should return an array of values that can be coerced into numbers
62
+ // or if data is overloaded for a static array of arrays, it should be `Number`.
63
+ // Empty arrays are not included.
64
+ _chart.data(function (group) {
65
+ return group.all().map(function (d) {
66
+ d.map = function (accessor) { return accessor.call(d, d); };
67
+ return d;
68
+ }).filter(function (d) {
69
+ var values = _chart.valueAccessor()(d);
70
+ return values.length !== 0;
71
+ });
72
+ });
73
+
74
+ /**
75
+ * Get or set the spacing between boxes as a fraction of box size. Valid values are within 0-1.
76
+ * See the {@link https://github.com/mbostock/d3/wiki/Ordinal-Scales#wiki-ordinal_rangeBands d3 docs}
77
+ * for a visual description of how the padding is applied.
78
+ * @method boxPadding
79
+ * @memberof dc.boxPlot
80
+ * @instance
81
+ * @see {@link https://github.com/mbostock/d3/wiki/Ordinal-Scales#wiki-ordinal_rangeBands d3.scale.ordinal.rangeBands}
82
+ * @param {Number} [padding=0.8]
83
+ * @return {Number}
84
+ * @return {dc.boxPlot}
85
+ */
86
+ _chart.boxPadding = _chart._rangeBandPadding;
87
+ _chart.boxPadding(0.8);
88
+
89
+ /**
90
+ * Get or set the outer padding on an ordinal box chart. This setting has no effect on non-ordinal charts
91
+ * or on charts with a custom {@link dc.boxPlot#boxWidth .boxWidth}. Will pad the width by
92
+ * `padding * barWidth` on each side of the chart.
93
+ * @method outerPadding
94
+ * @memberof dc.boxPlot
95
+ * @instance
96
+ * @param {Number} [padding=0.5]
97
+ * @return {Number}
98
+ * @return {dc.boxPlot}
99
+ */
100
+ _chart.outerPadding = _chart._outerRangeBandPadding;
101
+ _chart.outerPadding(0.5);
102
+
103
+ /**
104
+ * Get or set the numerical width of the boxplot box. The width may also be a function taking as
105
+ * parameters the chart width excluding the right and left margins, as well as the number of x
106
+ * units.
107
+ * @example
108
+ * // Using numerical parameter
109
+ * chart.boxWidth(10);
110
+ * // Using function
111
+ * chart.boxWidth((innerChartWidth, xUnits) { ... });
112
+ * @method boxWidth
113
+ * @memberof dc.boxPlot
114
+ * @instance
115
+ * @param {Number|Function} [boxWidth=0.5]
116
+ * @return {Number|Function}
117
+ * @return {dc.boxPlot}
118
+ */
119
+ _chart.boxWidth = function (boxWidth) {
120
+ if (!arguments.length) {
121
+ return _boxWidth;
122
+ }
123
+ _boxWidth = d3.functor(boxWidth);
124
+ return _chart;
125
+ };
126
+
127
+ var boxTransform = function (d, i) {
128
+ var xOffset = _chart.x()(_chart.keyAccessor()(d, i));
129
+ return 'translate(' + xOffset + ', 0)';
130
+ };
131
+
132
+ _chart._preprocessData = function () {
133
+ if (_chart.elasticX()) {
134
+ _chart.x().domain([]);
135
+ }
136
+ };
137
+
138
+ _chart.plotData = function () {
139
+ var _calculatedBoxWidth = _boxWidth(_chart.effectiveWidth(), _chart.xUnitCount());
140
+
141
+ _box.whiskers(_whiskers)
142
+ .width(_calculatedBoxWidth)
143
+ .height(_chart.effectiveHeight())
144
+ .value(_chart.valueAccessor())
145
+ .domain(_chart.y().domain())
146
+ .duration(_chart.transitionDuration())
147
+ .tickFormat(_tickFormat);
148
+
149
+ var boxesG = _chart.chartBodyG().selectAll('g.box').data(_chart.data(), function (d) { return d.key; });
150
+
151
+ renderBoxes(boxesG);
152
+ updateBoxes(boxesG);
153
+ removeBoxes(boxesG);
154
+
155
+ _chart.fadeDeselectedArea();
156
+ };
157
+
158
+ function renderBoxes (boxesG) {
159
+ var boxesGEnter = boxesG.enter().append('g');
160
+
161
+ boxesGEnter
162
+ .attr('class', 'box')
163
+ .attr('transform', boxTransform)
164
+ .call(_box)
165
+ .on('click', function (d) {
166
+ _chart.filter(d.key);
167
+ _chart.redrawGroup();
168
+ });
169
+ }
170
+
171
+ function updateBoxes (boxesG) {
172
+ dc.transition(boxesG, _chart.transitionDuration())
173
+ .attr('transform', boxTransform)
174
+ .call(_box)
175
+ .each(function () {
176
+ d3.select(this).select('rect.box').attr('fill', _chart.getColor);
177
+ });
178
+ }
179
+
180
+ function removeBoxes (boxesG) {
181
+ boxesG.exit().remove().call(_box);
182
+ }
183
+
184
+ _chart.fadeDeselectedArea = function () {
185
+ if (_chart.hasFilter()) {
186
+ _chart.g().selectAll('g.box').each(function (d) {
187
+ if (_chart.isSelectedNode(d)) {
188
+ _chart.highlightSelected(this);
189
+ } else {
190
+ _chart.fadeDeselected(this);
191
+ }
192
+ });
193
+ } else {
194
+ _chart.g().selectAll('g.box').each(function () {
195
+ _chart.resetHighlight(this);
196
+ });
197
+ }
198
+ };
199
+
200
+ _chart.isSelectedNode = function (d) {
201
+ return _chart.hasFilter(d.key);
202
+ };
203
+
204
+ _chart.yAxisMin = function () {
205
+ var min = d3.min(_chart.data(), function (e) {
206
+ return d3.min(_chart.valueAccessor()(e));
207
+ });
208
+ return dc.utils.subtract(min, _chart.yAxisPadding());
209
+ };
210
+
211
+ _chart.yAxisMax = function () {
212
+ var max = d3.max(_chart.data(), function (e) {
213
+ return d3.max(_chart.valueAccessor()(e));
214
+ });
215
+ return dc.utils.add(max, _chart.yAxisPadding());
216
+ };
217
+
218
+ /**
219
+ * Set the numerical format of the boxplot median, whiskers and quartile labels. Defaults to
220
+ * integer formatting.
221
+ * @example
222
+ * // format ticks to 2 decimal places
223
+ * chart.tickFormat(d3.format('.2f'));
224
+ * @method tickFormat
225
+ * @memberof dc.boxPlot
226
+ * @instance
227
+ * @param {Function} [tickFormat]
228
+ * @return {Number|Function}
229
+ * @return {dc.boxPlot}
230
+ */
231
+ _chart.tickFormat = function (tickFormat) {
232
+ if (!arguments.length) {
233
+ return _tickFormat;
234
+ }
235
+ _tickFormat = tickFormat;
236
+ return _chart;
237
+ };
238
+
239
+ return _chart.anchor(parent, chartGroup);
240
+ };
@@ -0,0 +1,177 @@
1
+ /**
2
+ * A concrete implementation of a general purpose bubble chart that allows data visualization using the
3
+ * following dimensions:
4
+ * - x axis position
5
+ * - y axis position
6
+ * - bubble radius
7
+ * - color
8
+ *
9
+ * Examples:
10
+ * - {@link http://dc-js.github.com/dc.js/ Nasdaq 100 Index}
11
+ * - {@link http://dc-js.github.com/dc.js/vc/index.html US Venture Capital Landscape 2011}
12
+ * @class bubbleChart
13
+ * @memberof dc
14
+ * @mixes dc.bubbleMixin
15
+ * @mixes dc.coordinateGridMixin
16
+ * @example
17
+ * // create a bubble chart under #chart-container1 element using the default global chart group
18
+ * var bubbleChart1 = dc.bubbleChart('#chart-container1');
19
+ * // create a bubble chart under #chart-container2 element using chart group A
20
+ * var bubbleChart2 = dc.bubbleChart('#chart-container2', 'chartGroupA');
21
+ * @param {String|node|d3.selection} parent - Any valid
22
+ * {@link https://github.com/mbostock/d3/wiki/Selections#selecting-elements d3 single selector} specifying
23
+ * a dom block element such as a div; or a dom element or d3 selection.
24
+ * @param {String} [chartGroup] - The name of the chart group this chart instance should be placed in.
25
+ * Interaction with a chart will only trigger events and redraws within the chart's group.
26
+ * @return {dc.bubbleChart}
27
+ */
28
+ dc.bubbleChart = function (parent, chartGroup) {
29
+ var _chart = dc.bubbleMixin(dc.coordinateGridMixin({}));
30
+
31
+ var _elasticRadius = false;
32
+ var _sortBubbleSize = false;
33
+
34
+ _chart.transitionDuration(750);
35
+
36
+ var bubbleLocator = function (d) {
37
+ return 'translate(' + (bubbleX(d)) + ',' + (bubbleY(d)) + ')';
38
+ };
39
+
40
+ /**
41
+ * Turn on or off the elastic bubble radius feature, or return the value of the flag. If this
42
+ * feature is turned on, then bubble radii will be automatically rescaled to fit the chart better.
43
+ * @method elasticRadius
44
+ * @memberof dc.bubbleChart
45
+ * @instance
46
+ * @param {Boolean} [elasticRadius=false]
47
+ * @return {Boolean}
48
+ * @return {dc.bubbleChart}
49
+ */
50
+ _chart.elasticRadius = function (elasticRadius) {
51
+ if (!arguments.length) {
52
+ return _elasticRadius;
53
+ }
54
+ _elasticRadius = elasticRadius;
55
+ return _chart;
56
+ };
57
+
58
+ /**
59
+ * Turn on or off the bubble sorting feature, or return the value of the flag. If enabled,
60
+ * bubbles will be sorted by their radius, with smaller bubbles in front.
61
+ * @method sortBubbleSize
62
+ * @memberof dc.bubbleChart
63
+ * @instance
64
+ * @param {Boolean} [sortBubbleSize=false]
65
+ * @return {Boolean}
66
+ * @return {dc.bubbleChart}
67
+ */
68
+ _chart.sortBubbleSize = function (sortBubbleSize) {
69
+ if (!arguments.length) {
70
+ return _sortBubbleSize;
71
+ }
72
+ _sortBubbleSize = sortBubbleSize;
73
+ return _chart;
74
+ };
75
+
76
+ _chart.plotData = function () {
77
+ if (_elasticRadius) {
78
+ _chart.r().domain([_chart.rMin(), _chart.rMax()]);
79
+ }
80
+
81
+ _chart.r().range([_chart.MIN_RADIUS, _chart.xAxisLength() * _chart.maxBubbleRelativeSize()]);
82
+
83
+ var data = _chart.data();
84
+ if (_sortBubbleSize) {
85
+ // sort descending so smaller bubbles are on top
86
+ var radiusAccessor = _chart.radiusValueAccessor();
87
+ data.sort(function (a, b) { return d3.descending(radiusAccessor(a), radiusAccessor(b)); });
88
+ }
89
+ var bubbleG = _chart.chartBodyG().selectAll('g.' + _chart.BUBBLE_NODE_CLASS)
90
+ .data(data, function (d) { return d.key; });
91
+ if (_sortBubbleSize) {
92
+ // Call order here to update dom order based on sort
93
+ bubbleG.order();
94
+ }
95
+
96
+ renderNodes(bubbleG);
97
+
98
+ updateNodes(bubbleG);
99
+
100
+ removeNodes(bubbleG);
101
+
102
+ _chart.fadeDeselectedArea();
103
+ };
104
+
105
+ function renderNodes (bubbleG) {
106
+ var bubbleGEnter = bubbleG.enter().append('g');
107
+
108
+ bubbleGEnter
109
+ .attr('class', _chart.BUBBLE_NODE_CLASS)
110
+ .attr('transform', bubbleLocator)
111
+ .append('circle').attr('class', function (d, i) {
112
+ return _chart.BUBBLE_CLASS + ' _' + i;
113
+ })
114
+ .on('click', _chart.onClick)
115
+ .attr('fill', _chart.getColor)
116
+ .attr('r', 0);
117
+ dc.transition(bubbleG, _chart.transitionDuration())
118
+ .selectAll('circle.' + _chart.BUBBLE_CLASS)
119
+ .attr('r', function (d) {
120
+ return _chart.bubbleR(d);
121
+ })
122
+ .attr('opacity', function (d) {
123
+ return (_chart.bubbleR(d) > 0) ? 1 : 0;
124
+ });
125
+
126
+ _chart._doRenderLabel(bubbleGEnter);
127
+
128
+ _chart._doRenderTitles(bubbleGEnter);
129
+ }
130
+
131
+ function updateNodes (bubbleG) {
132
+ dc.transition(bubbleG, _chart.transitionDuration())
133
+ .attr('transform', bubbleLocator)
134
+ .selectAll('circle.' + _chart.BUBBLE_CLASS)
135
+ .attr('fill', _chart.getColor)
136
+ .attr('r', function (d) {
137
+ return _chart.bubbleR(d);
138
+ })
139
+ .attr('opacity', function (d) {
140
+ return (_chart.bubbleR(d) > 0) ? 1 : 0;
141
+ });
142
+
143
+ _chart.doUpdateLabels(bubbleG);
144
+ _chart.doUpdateTitles(bubbleG);
145
+ }
146
+
147
+ function removeNodes (bubbleG) {
148
+ bubbleG.exit().remove();
149
+ }
150
+
151
+ function bubbleX (d) {
152
+ var x = _chart.x()(_chart.keyAccessor()(d));
153
+ if (isNaN(x)) {
154
+ x = 0;
155
+ }
156
+ return x;
157
+ }
158
+
159
+ function bubbleY (d) {
160
+ var y = _chart.y()(_chart.valueAccessor()(d));
161
+ if (isNaN(y)) {
162
+ y = 0;
163
+ }
164
+ return y;
165
+ }
166
+
167
+ _chart.renderBrush = function () {
168
+ // override default x axis brush from parent chart
169
+ };
170
+
171
+ _chart.redrawBrush = function () {
172
+ // override default x axis brush from parent chart
173
+ _chart.fadeDeselectedArea();
174
+ };
175
+
176
+ return _chart.anchor(parent, chartGroup);
177
+ };
@@ -0,0 +1,244 @@
1
+ /**
2
+ * This Mixin provides reusable functionalities for any chart that needs to visualize data using bubbles.
3
+ * @name bubbleMixin
4
+ * @memberof dc
5
+ * @mixin
6
+ * @mixes dc.colorMixin
7
+ * @param {Object} _chart
8
+ * @return {dc.bubbleMixin}
9
+ */
10
+ dc.bubbleMixin = function (_chart) {
11
+ var _maxBubbleRelativeSize = 0.3;
12
+ var _minRadiusWithLabel = 10;
13
+
14
+ _chart.BUBBLE_NODE_CLASS = 'node';
15
+ _chart.BUBBLE_CLASS = 'bubble';
16
+ _chart.MIN_RADIUS = 10;
17
+
18
+ _chart = dc.colorMixin(_chart);
19
+
20
+ _chart.renderLabel(true);
21
+
22
+ _chart.data(function (group) {
23
+ return group.top(Infinity);
24
+ });
25
+
26
+ var _r = d3.scale.linear().domain([0, 100]);
27
+
28
+ var _rValueAccessor = function (d) {
29
+ return d.r;
30
+ };
31
+
32
+ /**
33
+ * Get or set the bubble radius scale. By default the bubble chart uses
34
+ * {@link https://github.com/mbostock/d3/wiki/Quantitative-Scales#linear d3.scale.linear().domain([0, 100])}
35
+ * as its radius scale.
36
+ * @method r
37
+ * @memberof dc.bubbleMixin
38
+ * @instance
39
+ * @see {@link http://github.com/mbostock/d3/wiki/Scales d3.scale}
40
+ * @param {d3.scale} [bubbleRadiusScale=d3.scale.linear().domain([0, 100])]
41
+ * @return {d3.scale}
42
+ * @return {dc.bubbleMixin}
43
+ */
44
+ _chart.r = function (bubbleRadiusScale) {
45
+ if (!arguments.length) {
46
+ return _r;
47
+ }
48
+ _r = bubbleRadiusScale;
49
+ return _chart;
50
+ };
51
+
52
+ /**
53
+ * Get or set the radius value accessor function. If set, the radius value accessor function will
54
+ * be used to retrieve a data value for each bubble. The data retrieved then will be mapped using
55
+ * the r scale to the actual bubble radius. This allows you to encode a data dimension using bubble
56
+ * size.
57
+ * @method radiusValueAccessor
58
+ * @memberof dc.bubbleMixin
59
+ * @instance
60
+ * @param {Function} [radiusValueAccessor]
61
+ * @return {Function}
62
+ * @return {dc.bubbleMixin}
63
+ */
64
+ _chart.radiusValueAccessor = function (radiusValueAccessor) {
65
+ if (!arguments.length) {
66
+ return _rValueAccessor;
67
+ }
68
+ _rValueAccessor = radiusValueAccessor;
69
+ return _chart;
70
+ };
71
+
72
+ _chart.rMin = function () {
73
+ var min = d3.min(_chart.data(), function (e) {
74
+ return _chart.radiusValueAccessor()(e);
75
+ });
76
+ return min;
77
+ };
78
+
79
+ _chart.rMax = function () {
80
+ var max = d3.max(_chart.data(), function (e) {
81
+ return _chart.radiusValueAccessor()(e);
82
+ });
83
+ return max;
84
+ };
85
+
86
+ _chart.bubbleR = function (d) {
87
+ var value = _chart.radiusValueAccessor()(d);
88
+ var r = _chart.r()(value);
89
+ if (isNaN(r) || value <= 0) {
90
+ r = 0;
91
+ }
92
+ return r;
93
+ };
94
+
95
+ var labelFunction = function (d) {
96
+ return _chart.label()(d);
97
+ };
98
+
99
+ var shouldLabel = function (d) {
100
+ return (_chart.bubbleR(d) > _minRadiusWithLabel);
101
+ };
102
+
103
+ var labelOpacity = function (d) {
104
+ return shouldLabel(d) ? 1 : 0;
105
+ };
106
+
107
+ var labelPointerEvent = function (d) {
108
+ return shouldLabel(d) ? 'all' : 'none';
109
+ };
110
+
111
+ _chart._doRenderLabel = function (bubbleGEnter) {
112
+ if (_chart.renderLabel()) {
113
+ var label = bubbleGEnter.select('text');
114
+
115
+ if (label.empty()) {
116
+ label = bubbleGEnter.append('text')
117
+ .attr('text-anchor', 'middle')
118
+ .attr('dy', '.3em')
119
+ .on('click', _chart.onClick);
120
+ }
121
+
122
+ label
123
+ .attr('opacity', 0)
124
+ .attr('pointer-events', labelPointerEvent)
125
+ .text(labelFunction);
126
+ dc.transition(label, _chart.transitionDuration())
127
+ .attr('opacity', labelOpacity);
128
+ }
129
+ };
130
+
131
+ _chart.doUpdateLabels = function (bubbleGEnter) {
132
+ if (_chart.renderLabel()) {
133
+ var labels = bubbleGEnter.selectAll('text')
134
+ .attr('pointer-events', labelPointerEvent)
135
+ .text(labelFunction);
136
+ dc.transition(labels, _chart.transitionDuration())
137
+ .attr('opacity', labelOpacity);
138
+ }
139
+ };
140
+
141
+ var titleFunction = function (d) {
142
+ return _chart.title()(d);
143
+ };
144
+
145
+ _chart._doRenderTitles = function (g) {
146
+ if (_chart.renderTitle()) {
147
+ var title = g.select('title');
148
+
149
+ if (title.empty()) {
150
+ g.append('title').text(titleFunction);
151
+ }
152
+ }
153
+ };
154
+
155
+ _chart.doUpdateTitles = function (g) {
156
+ if (_chart.renderTitle()) {
157
+ g.selectAll('title').text(titleFunction);
158
+ }
159
+ };
160
+
161
+ /**
162
+ * Get or set the minimum radius. This will be used to initialize the radius scale's range.
163
+ * @method minRadius
164
+ * @memberof dc.bubbleMixin
165
+ * @instance
166
+ * @param {Number} [radius=10]
167
+ * @return {Number}
168
+ * @return {dc.bubbleMixin}
169
+ */
170
+ _chart.minRadius = function (radius) {
171
+ if (!arguments.length) {
172
+ return _chart.MIN_RADIUS;
173
+ }
174
+ _chart.MIN_RADIUS = radius;
175
+ return _chart;
176
+ };
177
+
178
+ /**
179
+ * Get or set the minimum radius for label rendering. If a bubble's radius is less than this value
180
+ * then no label will be rendered.
181
+ * @method minRadiusWithLabel
182
+ * @memberof dc.bubbleMixin
183
+ * @instance
184
+ * @param {Number} [radius=10]
185
+ * @return {Number}
186
+ * @return {dc.bubbleMixin}
187
+ */
188
+
189
+ _chart.minRadiusWithLabel = function (radius) {
190
+ if (!arguments.length) {
191
+ return _minRadiusWithLabel;
192
+ }
193
+ _minRadiusWithLabel = radius;
194
+ return _chart;
195
+ };
196
+
197
+ /**
198
+ * Get or set the maximum relative size of a bubble to the length of x axis. This value is useful
199
+ * when the difference in radius between bubbles is too great.
200
+ * @method maxBubbleRelativeSize
201
+ * @memberof dc.bubbleMixin
202
+ * @instance
203
+ * @param {Number} [relativeSize=0.3]
204
+ * @return {Number}
205
+ * @return {dc.bubbleMixin}
206
+ */
207
+ _chart.maxBubbleRelativeSize = function (relativeSize) {
208
+ if (!arguments.length) {
209
+ return _maxBubbleRelativeSize;
210
+ }
211
+ _maxBubbleRelativeSize = relativeSize;
212
+ return _chart;
213
+ };
214
+
215
+ _chart.fadeDeselectedArea = function () {
216
+ if (_chart.hasFilter()) {
217
+ _chart.selectAll('g.' + _chart.BUBBLE_NODE_CLASS).each(function (d) {
218
+ if (_chart.isSelectedNode(d)) {
219
+ _chart.highlightSelected(this);
220
+ } else {
221
+ _chart.fadeDeselected(this);
222
+ }
223
+ });
224
+ } else {
225
+ _chart.selectAll('g.' + _chart.BUBBLE_NODE_CLASS).each(function () {
226
+ _chart.resetHighlight(this);
227
+ });
228
+ }
229
+ };
230
+
231
+ _chart.isSelectedNode = function (d) {
232
+ return _chart.hasFilter(d.key);
233
+ };
234
+
235
+ _chart.onClick = function (d) {
236
+ var filter = d.key;
237
+ dc.events.trigger(function () {
238
+ _chart.filter(filter);
239
+ _chart.redrawGroup();
240
+ });
241
+ };
242
+
243
+ return _chart;
244
+ };