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,425 @@
1
+ /**
2
+ * The entire dc.js library is scoped under the **dc** name space. It does not introduce
3
+ * anything else into the global name space.
4
+ *
5
+ * Most `dc` functions are designed to allow function chaining, meaning they return the current chart
6
+ * instance whenever it is appropriate. The getter forms of functions do not participate in function
7
+ * chaining because they return values that are not the chart, although some,
8
+ * such as {@link dc.baseMixin#svg .svg} and {@link dc.coordinateGridMixin#xAxis .xAxis},
9
+ * return values that are themselves chainable d3 objects.
10
+ * @namespace dc
11
+ * @version <%= conf.pkg.version %>
12
+ * @example
13
+ * // Example chaining
14
+ * chart.width(300)
15
+ * .height(300)
16
+ * .filter('sunday');
17
+ */
18
+ /*jshint -W079*/
19
+ var dc = {
20
+ version: '<%= conf.pkg.version %>',
21
+ constants: {
22
+ CHART_CLASS: 'dc-chart',
23
+ DEBUG_GROUP_CLASS: 'debug',
24
+ STACK_CLASS: 'stack',
25
+ DESELECTED_CLASS: 'deselected',
26
+ SELECTED_CLASS: 'selected',
27
+ NODE_INDEX_NAME: '__index__',
28
+ GROUP_INDEX_NAME: '__group_index__',
29
+ DEFAULT_CHART_GROUP: '__default_chart_group__',
30
+ EVENT_DELAY: 40,
31
+ NEGLIGIBLE_NUMBER: 1e-10
32
+ },
33
+ _renderlet: null
34
+ };
35
+ /*jshint +W079*/
36
+
37
+ /**
38
+ * The dc.chartRegistry object maintains sets of all instantiated dc.js charts under named groups
39
+ * and the default group.
40
+ *
41
+ * A chart group often corresponds to a crossfilter instance. It specifies
42
+ * the set of charts which should be updated when a filter changes on one of the charts or when the
43
+ * global functions {@link dc.filterAll dc.filterAll}, {@link dc.refocusAll dc.refocusAll},
44
+ * {@link dc.renderAll dc.renderAll}, {@link dc.redrawAll dc.redrawAll}, or chart functions
45
+ * {@link dc.baseMixin#renderGroup baseMixin.renderGroup},
46
+ * {@link dc.baseMixin#redrawGroup baseMixin.redrawGroup} are called.
47
+ *
48
+ * @namespace chartRegistry
49
+ * @memberof dc
50
+ * @type {{has, register, deregister, clear, list}}
51
+ */
52
+ dc.chartRegistry = (function () {
53
+ // chartGroup:string => charts:array
54
+ var _chartMap = {};
55
+
56
+ function initializeChartGroup (group) {
57
+ if (!group) {
58
+ group = dc.constants.DEFAULT_CHART_GROUP;
59
+ }
60
+
61
+ if (!_chartMap[group]) {
62
+ _chartMap[group] = [];
63
+ }
64
+
65
+ return group;
66
+ }
67
+
68
+ return {
69
+ /**
70
+ * Determine if a given chart instance resides in any group in the registry.
71
+ * @method has
72
+ * @memberof dc.chartRegistry
73
+ * @param {Object} chart dc.js chart instance
74
+ * @returns {Boolean}
75
+ */
76
+ has: function (chart) {
77
+ for (var e in _chartMap) {
78
+ if (_chartMap[e].indexOf(chart) >= 0) {
79
+ return true;
80
+ }
81
+ }
82
+ return false;
83
+ },
84
+
85
+ /**
86
+ * Add given chart instance to the given group, creating the group if necessary.
87
+ * If no group is provided, the default group `dc.constants.DEFAULT_CHART_GROUP` will be used.
88
+ * @method register
89
+ * @memberof dc.chartRegistry
90
+ * @param {Object} chart dc.js chart instance
91
+ * @param {String} [group] Group name
92
+ */
93
+ register: function (chart, group) {
94
+ group = initializeChartGroup(group);
95
+ _chartMap[group].push(chart);
96
+ },
97
+
98
+ /**
99
+ * Remove given chart instance from the given group, creating the group if necessary.
100
+ * If no group is provided, the default group `dc.constants.DEFAULT_CHART_GROUP` will be used.
101
+ * @method deregister
102
+ * @memberof dc.chartRegistry
103
+ * @param {Object} chart dc.js chart instance
104
+ * @param {String} [group] Group name
105
+ */
106
+ deregister: function (chart, group) {
107
+ group = initializeChartGroup(group);
108
+ for (var i = 0; i < _chartMap[group].length; i++) {
109
+ if (_chartMap[group][i].anchorName() === chart.anchorName()) {
110
+ _chartMap[group].splice(i, 1);
111
+ break;
112
+ }
113
+ }
114
+ },
115
+
116
+ /**
117
+ * Clear given group if one is provided, otherwise clears all groups.
118
+ * @method clear
119
+ * @memberof dc.chartRegistry
120
+ * @param {String} group Group name
121
+ */
122
+ clear: function (group) {
123
+ if (group) {
124
+ delete _chartMap[group];
125
+ } else {
126
+ _chartMap = {};
127
+ }
128
+ },
129
+
130
+ /**
131
+ * Get an array of each chart instance in the given group.
132
+ * If no group is provided, the charts in the default group are returned.
133
+ * @method list
134
+ * @memberof dc.chartRegistry
135
+ * @param {String} [group] Group name
136
+ * @returns {Array<Object>}
137
+ */
138
+ list: function (group) {
139
+ group = initializeChartGroup(group);
140
+ return _chartMap[group];
141
+ }
142
+ };
143
+ })();
144
+
145
+ /**
146
+ * Add given chart instance to the given group, creating the group if necessary.
147
+ * If no group is provided, the default group `dc.constants.DEFAULT_CHART_GROUP` will be used.
148
+ * @memberof dc
149
+ * @method registerChart
150
+ * @param {Object} chart dc.js chart instance
151
+ * @param {String} [group] Group name
152
+ */
153
+ dc.registerChart = function (chart, group) {
154
+ dc.chartRegistry.register(chart, group);
155
+ };
156
+
157
+ /**
158
+ * Remove given chart instance from the given group, creating the group if necessary.
159
+ * If no group is provided, the default group `dc.constants.DEFAULT_CHART_GROUP` will be used.
160
+ * @memberof dc
161
+ * @method deregisterChart
162
+ * @param {Object} chart dc.js chart instance
163
+ * @param {String} [group] Group name
164
+ */
165
+ dc.deregisterChart = function (chart, group) {
166
+ dc.chartRegistry.deregister(chart, group);
167
+ };
168
+
169
+ /**
170
+ * Determine if a given chart instance resides in any group in the registry.
171
+ * @memberof dc
172
+ * @method hasChart
173
+ * @param {Object} chart dc.js chart instance
174
+ * @returns {Boolean}
175
+ */
176
+ dc.hasChart = function (chart) {
177
+ return dc.chartRegistry.has(chart);
178
+ };
179
+
180
+ /**
181
+ * Clear given group if one is provided, otherwise clears all groups.
182
+ * @memberof dc
183
+ * @method deregisterAllCharts
184
+ * @param {String} group Group name
185
+ */
186
+ dc.deregisterAllCharts = function (group) {
187
+ dc.chartRegistry.clear(group);
188
+ };
189
+
190
+ /**
191
+ * Clear all filters on all charts within the given chart group. If the chart group is not given then
192
+ * only charts that belong to the default chart group will be reset.
193
+ * @memberof dc
194
+ * @method filterAll
195
+ * @param {String} [group]
196
+ */
197
+ dc.filterAll = function (group) {
198
+ var charts = dc.chartRegistry.list(group);
199
+ for (var i = 0; i < charts.length; ++i) {
200
+ charts[i].filterAll();
201
+ }
202
+ };
203
+
204
+ /**
205
+ * Reset zoom level / focus on all charts that belong to the given chart group. If the chart group is
206
+ * not given then only charts that belong to the default chart group will be reset.
207
+ * @memberof dc
208
+ * @method refocusAll
209
+ * @param {String} [group]
210
+ */
211
+ dc.refocusAll = function (group) {
212
+ var charts = dc.chartRegistry.list(group);
213
+ for (var i = 0; i < charts.length; ++i) {
214
+ if (charts[i].focus) {
215
+ charts[i].focus();
216
+ }
217
+ }
218
+ };
219
+
220
+ /**
221
+ * Re-render all charts belong to the given chart group. If the chart group is not given then only
222
+ * charts that belong to the default chart group will be re-rendered.
223
+ * @memberof dc
224
+ * @method renderAll
225
+ * @param {String} [group]
226
+ */
227
+ dc.renderAll = function (group) {
228
+ var charts = dc.chartRegistry.list(group);
229
+ for (var i = 0; i < charts.length; ++i) {
230
+ charts[i].render();
231
+ }
232
+
233
+ if (dc._renderlet !== null) {
234
+ dc._renderlet(group);
235
+ }
236
+ };
237
+
238
+ /**
239
+ * Redraw all charts belong to the given chart group. If the chart group is not given then only charts
240
+ * that belong to the default chart group will be re-drawn. Redraw is different from re-render since
241
+ * when redrawing dc tries to update the graphic incrementally, using transitions, instead of starting
242
+ * from scratch.
243
+ * @memberof dc
244
+ * @method redrawAll
245
+ * @param {String} [group]
246
+ */
247
+ dc.redrawAll = function (group) {
248
+ var charts = dc.chartRegistry.list(group);
249
+ for (var i = 0; i < charts.length; ++i) {
250
+ charts[i].redraw();
251
+ }
252
+
253
+ if (dc._renderlet !== null) {
254
+ dc._renderlet(group);
255
+ }
256
+ };
257
+
258
+ /**
259
+ * If this boolean is set truthy, all transitions will be disabled, and changes to the charts will happen
260
+ * immediately
261
+ * @memberof dc
262
+ * @method disableTransitions
263
+ * @type {Boolean}
264
+ * @default false
265
+ */
266
+ dc.disableTransitions = false;
267
+
268
+ dc.transition = function (selections, duration, callback, name) {
269
+ if (duration <= 0 || duration === undefined || dc.disableTransitions) {
270
+ return selections;
271
+ }
272
+
273
+ var s = selections
274
+ .transition(name)
275
+ .duration(duration);
276
+
277
+ if (typeof(callback) === 'function') {
278
+ callback(s);
279
+ }
280
+
281
+ return s;
282
+ };
283
+
284
+ /* somewhat silly, but to avoid duplicating logic */
285
+ dc.optionalTransition = function (enable, duration, callback, name) {
286
+ if (enable) {
287
+ return function (selection) {
288
+ return dc.transition(selection, duration, callback, name);
289
+ };
290
+ } else {
291
+ return function (selection) {
292
+ return selection;
293
+ };
294
+ }
295
+ };
296
+
297
+ // See http://stackoverflow.com/a/20773846
298
+ dc.afterTransition = function (transition, callback) {
299
+ if (transition.empty() || !transition.duration) {
300
+ callback.call(transition);
301
+ } else {
302
+ var n = 0;
303
+ transition
304
+ .each(function () { ++n; })
305
+ .each('end', function () {
306
+ if (!--n) {
307
+ callback.call(transition);
308
+ }
309
+ });
310
+ }
311
+ };
312
+
313
+ /**
314
+ * @namespace units
315
+ * @memberof dc
316
+ * @type {{}}
317
+ */
318
+ dc.units = {};
319
+
320
+ /**
321
+ * The default value for {@link dc.coordinateGridMixin#xUnits .xUnits} for the
322
+ * {@link dc.coordinateGridMixin Coordinate Grid Chart} and should
323
+ * be used when the x values are a sequence of integers.
324
+ * It is a function that counts the number of integers in the range supplied in its start and end parameters.
325
+ * @method integers
326
+ * @memberof dc.units
327
+ * @see {@link dc.coordinateGridMixin#xUnits coordinateGridMixin.xUnits}
328
+ * @example
329
+ * chart.xUnits(dc.units.integers) // already the default
330
+ * @param {Number} start
331
+ * @param {Number} end
332
+ * @return {Number}
333
+ */
334
+ dc.units.integers = function (start, end) {
335
+ return Math.abs(end - start);
336
+ };
337
+
338
+ /**
339
+ * This argument can be passed to the {@link dc.coordinateGridMixin#xUnits .xUnits} function of the to
340
+ * specify ordinal units for the x axis. Usually this parameter is used in combination with passing
341
+ * {@link https://github.com/mbostock/d3/wiki/Ordinal-Scales d3.scale.ordinal} to
342
+ * {@link dc.coordinateGridMixin#x .x}.
343
+ * It just returns the domain passed to it, which for ordinal charts is an array of all values.
344
+ * @method ordinal
345
+ * @memberof dc.units
346
+ * @see {@link https://github.com/mbostock/d3/wiki/Ordinal-Scales d3.scale.ordinal}
347
+ * @see {@link dc.coordinateGridMixin#xUnits coordinateGridMixin.xUnits}
348
+ * @see {@link dc.coordinateGridMixin#x coordinateGridMixin.x}
349
+ * @example
350
+ * chart.xUnits(dc.units.ordinal)
351
+ * .x(d3.scale.ordinal())
352
+ * @param {*} start
353
+ * @param {*} end
354
+ * @param {Array<String>} domain
355
+ * @return {Array<String>}
356
+ */
357
+ dc.units.ordinal = function (start, end, domain) {
358
+ return domain;
359
+ };
360
+
361
+ /**
362
+ * @namespace fp
363
+ * @memberof dc.units
364
+ * @type {{}}
365
+ */
366
+ dc.units.fp = {};
367
+ /**
368
+ * This function generates an argument for the {@link dc.coordinateGridMixin Coordinate Grid Chart}
369
+ * {@link dc.coordinateGridMixin#xUnits .xUnits} function specifying that the x values are floating-point
370
+ * numbers with the given precision.
371
+ * The returned function determines how many values at the given precision will fit into the range
372
+ * supplied in its start and end parameters.
373
+ * @method precision
374
+ * @memberof dc.units.fp
375
+ * @see {@link dc.coordinateGridMixin#xUnits coordinateGridMixin.xUnits}
376
+ * @example
377
+ * // specify values (and ticks) every 0.1 units
378
+ * chart.xUnits(dc.units.fp.precision(0.1)
379
+ * // there are 500 units between 0.5 and 1 if the precision is 0.001
380
+ * var thousandths = dc.units.fp.precision(0.001);
381
+ * thousandths(0.5, 1.0) // returns 500
382
+ * @param {Number} precision
383
+ * @return {Function} start-end unit function
384
+ */
385
+ dc.units.fp.precision = function (precision) {
386
+ var _f = function (s, e) {
387
+ var d = Math.abs((e - s) / _f.resolution);
388
+ if (dc.utils.isNegligible(d - Math.floor(d))) {
389
+ return Math.floor(d);
390
+ } else {
391
+ return Math.ceil(d);
392
+ }
393
+ };
394
+ _f.resolution = precision;
395
+ return _f;
396
+ };
397
+
398
+ dc.round = {};
399
+ dc.round.floor = function (n) {
400
+ return Math.floor(n);
401
+ };
402
+ dc.round.ceil = function (n) {
403
+ return Math.ceil(n);
404
+ };
405
+ dc.round.round = function (n) {
406
+ return Math.round(n);
407
+ };
408
+
409
+ dc.override = function (obj, functionName, newFunction) {
410
+ var existingFunction = obj[functionName];
411
+ obj['_' + functionName] = existingFunction;
412
+ obj[functionName] = newFunction;
413
+ };
414
+
415
+ dc.renderlet = function (_) {
416
+ if (!arguments.length) {
417
+ return dc._renderlet;
418
+ }
419
+ dc._renderlet = _;
420
+ return dc;
421
+ };
422
+
423
+ dc.instanceOfChart = function (o) {
424
+ return o instanceof Object && o.__dcFlag__ && true;
425
+ };
@@ -0,0 +1,317 @@
1
+ // https://github.com/d3/d3-plugins/blob/master/box/box.js
2
+ (function () {
3
+
4
+ // Inspired by http://informationandvisualization.de/blog/box-plot
5
+ d3.box = function () {
6
+ var width = 1,
7
+ height = 1,
8
+ duration = 0,
9
+ domain = null,
10
+ value = Number,
11
+ whiskers = boxWhiskers,
12
+ quartiles = boxQuartiles,
13
+ tickFormat = null;
14
+
15
+ // For each small multiple…
16
+ function box (g) {
17
+ g.each(function (d, i) {
18
+ d = d.map(value).sort(d3.ascending);
19
+ var g = d3.select(this),
20
+ n = d.length,
21
+ min = d[0],
22
+ max = d[n - 1];
23
+
24
+ // Compute quartiles. Must return exactly 3 elements.
25
+ var quartileData = d.quartiles = quartiles(d);
26
+
27
+ // Compute whiskers. Must return exactly 2 elements, or null.
28
+ var whiskerIndices = whiskers && whiskers.call(this, d, i),
29
+ whiskerData = whiskerIndices && whiskerIndices.map(function (i) { return d[i]; });
30
+
31
+ // Compute outliers. If no whiskers are specified, all data are 'outliers'.
32
+ // We compute the outliers as indices, so that we can join across transitions!
33
+ var outlierIndices = whiskerIndices ?
34
+ d3.range(0, whiskerIndices[0]).concat(d3.range(whiskerIndices[1] + 1, n)) : d3.range(n);
35
+
36
+ // Compute the new x-scale.
37
+ var x1 = d3.scale.linear()
38
+ .domain(domain && domain.call(this, d, i) || [min, max])
39
+ .range([height, 0]);
40
+
41
+ // Retrieve the old x-scale, if this is an update.
42
+ var x0 = this.__chart__ || d3.scale.linear()
43
+ .domain([0, Infinity])
44
+ .range(x1.range());
45
+
46
+ // Stash the new scale.
47
+ this.__chart__ = x1;
48
+
49
+ // Note: the box, median, and box tick elements are fixed in number,
50
+ // so we only have to handle enter and update. In contrast, the outliers
51
+ // and other elements are variable, so we need to exit them! Variable
52
+ // elements also fade in and out.
53
+
54
+ // Update center line: the vertical line spanning the whiskers.
55
+ var center = g.selectAll('line.center')
56
+ .data(whiskerData ? [whiskerData] : []);
57
+
58
+ center.enter().insert('line', 'rect')
59
+ .attr('class', 'center')
60
+ .attr('x1', width / 2)
61
+ .attr('y1', function (d) { return x0(d[0]); })
62
+ .attr('x2', width / 2)
63
+ .attr('y2', function (d) { return x0(d[1]); })
64
+ .style('opacity', 1e-6)
65
+ .transition()
66
+ .duration(duration)
67
+ .style('opacity', 1)
68
+ .attr('y1', function (d) { return x1(d[0]); })
69
+ .attr('y2', function (d) { return x1(d[1]); });
70
+
71
+ center.transition()
72
+ .duration(duration)
73
+ .style('opacity', 1)
74
+ .attr('y1', function (d) { return x1(d[0]); })
75
+ .attr('y2', function (d) { return x1(d[1]); });
76
+
77
+ center.exit().transition()
78
+ .duration(duration)
79
+ .style('opacity', 1e-6)
80
+ .attr('y1', function (d) { return x1(d[0]); })
81
+ .attr('y2', function (d) { return x1(d[1]); })
82
+ .remove();
83
+
84
+ // Update innerquartile box.
85
+ var box = g.selectAll('rect.box')
86
+ .data([quartileData]);
87
+
88
+ box.enter().append('rect')
89
+ .attr('class', 'box')
90
+ .attr('x', 0)
91
+ .attr('y', function (d) { return x0(d[2]); })
92
+ .attr('width', width)
93
+ .attr('height', function (d) { return x0(d[0]) - x0(d[2]); })
94
+ .transition()
95
+ .duration(duration)
96
+ .attr('y', function (d) { return x1(d[2]); })
97
+ .attr('height', function (d) { return x1(d[0]) - x1(d[2]); });
98
+
99
+ box.transition()
100
+ .duration(duration)
101
+ .attr('y', function (d) { return x1(d[2]); })
102
+ .attr('height', function (d) { return x1(d[0]) - x1(d[2]); });
103
+
104
+ // Update median line.
105
+ var medianLine = g.selectAll('line.median')
106
+ .data([quartileData[1]]);
107
+
108
+ medianLine.enter().append('line')
109
+ .attr('class', 'median')
110
+ .attr('x1', 0)
111
+ .attr('y1', x0)
112
+ .attr('x2', width)
113
+ .attr('y2', x0)
114
+ .transition()
115
+ .duration(duration)
116
+ .attr('y1', x1)
117
+ .attr('y2', x1);
118
+
119
+ medianLine.transition()
120
+ .duration(duration)
121
+ .attr('y1', x1)
122
+ .attr('y2', x1);
123
+
124
+ // Update whiskers.
125
+ var whisker = g.selectAll('line.whisker')
126
+ .data(whiskerData || []);
127
+
128
+ whisker.enter().insert('line', 'circle, text')
129
+ .attr('class', 'whisker')
130
+ .attr('x1', 0)
131
+ .attr('y1', x0)
132
+ .attr('x2', width)
133
+ .attr('y2', x0)
134
+ .style('opacity', 1e-6)
135
+ .transition()
136
+ .duration(duration)
137
+ .attr('y1', x1)
138
+ .attr('y2', x1)
139
+ .style('opacity', 1);
140
+
141
+ whisker.transition()
142
+ .duration(duration)
143
+ .attr('y1', x1)
144
+ .attr('y2', x1)
145
+ .style('opacity', 1);
146
+
147
+ whisker.exit().transition()
148
+ .duration(duration)
149
+ .attr('y1', x1)
150
+ .attr('y2', x1)
151
+ .style('opacity', 1e-6)
152
+ .remove();
153
+
154
+ // Update outliers.
155
+ var outlier = g.selectAll('circle.outlier')
156
+ .data(outlierIndices, Number);
157
+
158
+ outlier.enter().insert('circle', 'text')
159
+ .attr('class', 'outlier')
160
+ .attr('r', 5)
161
+ .attr('cx', width / 2)
162
+ .attr('cy', function (i) { return x0(d[i]); })
163
+ .style('opacity', 1e-6)
164
+ .transition()
165
+ .duration(duration)
166
+ .attr('cy', function (i) { return x1(d[i]); })
167
+ .style('opacity', 1);
168
+
169
+ outlier.transition()
170
+ .duration(duration)
171
+ .attr('cy', function (i) { return x1(d[i]); })
172
+ .style('opacity', 1);
173
+
174
+ outlier.exit().transition()
175
+ .duration(duration)
176
+ .attr('cy', function (i) { return x1(d[i]); })
177
+ .style('opacity', 1e-6)
178
+ .remove();
179
+
180
+ // Compute the tick format.
181
+ var format = tickFormat || x1.tickFormat(8);
182
+
183
+ // Update box ticks.
184
+ var boxTick = g.selectAll('text.box')
185
+ .data(quartileData);
186
+
187
+ boxTick.enter().append('text')
188
+ .attr('class', 'box')
189
+ .attr('dy', '.3em')
190
+ .attr('dx', function (d, i) { return i & 1 ? 6 : -6; })
191
+ .attr('x', function (d, i) { return i & 1 ? width : 0; })
192
+ .attr('y', x0)
193
+ .attr('text-anchor', function (d, i) { return i & 1 ? 'start' : 'end'; })
194
+ .text(format)
195
+ .transition()
196
+ .duration(duration)
197
+ .attr('y', x1);
198
+
199
+ boxTick.transition()
200
+ .duration(duration)
201
+ .text(format)
202
+ .attr('y', x1);
203
+
204
+ // Update whisker ticks. These are handled separately from the box
205
+ // ticks because they may or may not exist, and we want don't want
206
+ // to join box ticks pre-transition with whisker ticks post-.
207
+ var whiskerTick = g.selectAll('text.whisker')
208
+ .data(whiskerData || []);
209
+
210
+ whiskerTick.enter().append('text')
211
+ .attr('class', 'whisker')
212
+ .attr('dy', '.3em')
213
+ .attr('dx', 6)
214
+ .attr('x', width)
215
+ .attr('y', x0)
216
+ .text(format)
217
+ .style('opacity', 1e-6)
218
+ .transition()
219
+ .duration(duration)
220
+ .attr('y', x1)
221
+ .style('opacity', 1);
222
+
223
+ whiskerTick.transition()
224
+ .duration(duration)
225
+ .text(format)
226
+ .attr('y', x1)
227
+ .style('opacity', 1);
228
+
229
+ whiskerTick.exit().transition()
230
+ .duration(duration)
231
+ .attr('y', x1)
232
+ .style('opacity', 1e-6)
233
+ .remove();
234
+ });
235
+ d3.timer.flush();
236
+ }
237
+
238
+ box.width = function (x) {
239
+ if (!arguments.length) {
240
+ return width;
241
+ }
242
+ width = x;
243
+ return box;
244
+ };
245
+
246
+ box.height = function (x) {
247
+ if (!arguments.length) {
248
+ return height;
249
+ }
250
+ height = x;
251
+ return box;
252
+ };
253
+
254
+ box.tickFormat = function (x) {
255
+ if (!arguments.length) {
256
+ return tickFormat;
257
+ }
258
+ tickFormat = x;
259
+ return box;
260
+ };
261
+
262
+ box.duration = function (x) {
263
+ if (!arguments.length) {
264
+ return duration;
265
+ }
266
+ duration = x;
267
+ return box;
268
+ };
269
+
270
+ box.domain = function (x) {
271
+ if (!arguments.length) {
272
+ return domain;
273
+ }
274
+ domain = x === null ? x : d3.functor(x);
275
+ return box;
276
+ };
277
+
278
+ box.value = function (x) {
279
+ if (!arguments.length) {
280
+ return value;
281
+ }
282
+ value = x;
283
+ return box;
284
+ };
285
+
286
+ box.whiskers = function (x) {
287
+ if (!arguments.length) {
288
+ return whiskers;
289
+ }
290
+ whiskers = x;
291
+ return box;
292
+ };
293
+
294
+ box.quartiles = function (x) {
295
+ if (!arguments.length) {
296
+ return quartiles;
297
+ }
298
+ quartiles = x;
299
+ return box;
300
+ };
301
+
302
+ return box;
303
+ };
304
+
305
+ function boxWhiskers (d) {
306
+ return [0, d.length - 1];
307
+ }
308
+
309
+ function boxQuartiles (d) {
310
+ return [
311
+ d3.quantile(d, 0.25),
312
+ d3.quantile(d, 0.5),
313
+ d3.quantile(d, 0.75)
314
+ ];
315
+ }
316
+
317
+ })();