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
+ * Concrete row chart implementation.
3
+ *
4
+ * Examples:
5
+ * - {@link http://dc-js.github.com/dc.js/ Nasdaq 100 Index}
6
+ * @class rowChart
7
+ * @memberof dc
8
+ * @mixes dc.capMixin
9
+ * @mixes dc.marginMixin
10
+ * @mixes dc.colorMixin
11
+ * @mixes dc.baseMixin
12
+ * @example
13
+ * // create a row chart under #chart-container1 element using the default global chart group
14
+ * var chart1 = dc.rowChart('#chart-container1');
15
+ * // create a row chart under #chart-container2 element using chart group A
16
+ * var chart2 = dc.rowChart('#chart-container2', 'chartGroupA');
17
+ * @param {String|node|d3.selection} parent - Any valid
18
+ * {@link https://github.com/mbostock/d3/wiki/Selections#selecting-elements d3 single selector} specifying
19
+ * a dom block element such as a div; or a dom element or d3 selection.
20
+ * @param {String} [chartGroup] - The name of the chart group this chart instance should be placed in.
21
+ * Interaction with a chart will only trigger events and redraws within the chart's group.
22
+ * @return {dc.rowChart}
23
+ */
24
+ dc.rowChart = function (parent, chartGroup) {
25
+
26
+ var _g;
27
+
28
+ var _labelOffsetX = 10;
29
+ var _labelOffsetY = 15;
30
+ var _hasLabelOffsetY = false;
31
+ var _dyOffset = '0.35em'; // this helps center labels https://github.com/mbostock/d3/wiki/SVG-Shapes#svg_text
32
+ var _titleLabelOffsetX = 2;
33
+
34
+ var _gap = 5;
35
+
36
+ var _fixedBarHeight = false;
37
+ var _rowCssClass = 'row';
38
+ var _titleRowCssClass = 'titlerow';
39
+ var _renderTitleLabel = false;
40
+
41
+ var _chart = dc.capMixin(dc.marginMixin(dc.colorMixin(dc.baseMixin({}))));
42
+
43
+ var _x;
44
+
45
+ var _elasticX;
46
+
47
+ var _xAxis = d3.svg.axis().orient('bottom');
48
+
49
+ var _rowData;
50
+
51
+ _chart.rowsCap = _chart.cap;
52
+
53
+ function calculateAxisScale () {
54
+ if (!_x || _elasticX) {
55
+ var extent = d3.extent(_rowData, _chart.cappedValueAccessor);
56
+ if (extent[0] > 0) {
57
+ extent[0] = 0;
58
+ }
59
+ _x = d3.scale.linear().domain(extent)
60
+ .range([0, _chart.effectiveWidth()]);
61
+ }
62
+ _xAxis.scale(_x);
63
+ }
64
+
65
+ function drawAxis () {
66
+ var axisG = _g.select('g.axis');
67
+
68
+ calculateAxisScale();
69
+
70
+ if (axisG.empty()) {
71
+ axisG = _g.append('g').attr('class', 'axis');
72
+ }
73
+ axisG.attr('transform', 'translate(0, ' + _chart.effectiveHeight() + ')');
74
+
75
+ dc.transition(axisG, _chart.transitionDuration())
76
+ .call(_xAxis);
77
+ }
78
+
79
+ _chart._doRender = function () {
80
+ _chart.resetSvg();
81
+
82
+ _g = _chart.svg()
83
+ .append('g')
84
+ .attr('transform', 'translate(' + _chart.margins().left + ',' + _chart.margins().top + ')');
85
+
86
+ drawChart();
87
+
88
+ return _chart;
89
+ };
90
+
91
+ _chart.title(function (d) {
92
+ return _chart.cappedKeyAccessor(d) + ': ' + _chart.cappedValueAccessor(d);
93
+ });
94
+
95
+ _chart.label(_chart.cappedKeyAccessor);
96
+
97
+ /**
98
+ * Gets or sets the x scale. The x scale can be any d3
99
+ * {@link https://github.com/mbostock/d3/wiki/Quantitative-Scales quantitive scale}
100
+ * @method x
101
+ * @memberof dc.rowChart
102
+ * @instance
103
+ * @see {@link https://github.com/mbostock/d3/wiki/Quantitative-Scales quantitive scale}
104
+ * @param {d3.scale} [scale]
105
+ * @return {d3.scale}
106
+ * @return {dc.rowChart}
107
+ */
108
+ _chart.x = function (scale) {
109
+ if (!arguments.length) {
110
+ return _x;
111
+ }
112
+ _x = scale;
113
+ return _chart;
114
+ };
115
+
116
+ function drawGridLines () {
117
+ _g.selectAll('g.tick')
118
+ .select('line.grid-line')
119
+ .remove();
120
+
121
+ _g.selectAll('g.tick')
122
+ .append('line')
123
+ .attr('class', 'grid-line')
124
+ .attr('x1', 0)
125
+ .attr('y1', 0)
126
+ .attr('x2', 0)
127
+ .attr('y2', function () {
128
+ return -_chart.effectiveHeight();
129
+ });
130
+ }
131
+
132
+ function drawChart () {
133
+ _rowData = _chart.data();
134
+
135
+ drawAxis();
136
+ drawGridLines();
137
+
138
+ var rows = _g.selectAll('g.' + _rowCssClass)
139
+ .data(_rowData);
140
+
141
+ createElements(rows);
142
+ removeElements(rows);
143
+ updateElements(rows);
144
+ }
145
+
146
+ function createElements (rows) {
147
+ var rowEnter = rows.enter()
148
+ .append('g')
149
+ .attr('class', function (d, i) {
150
+ return _rowCssClass + ' _' + i;
151
+ });
152
+
153
+ rowEnter.append('rect').attr('width', 0);
154
+
155
+ createLabels(rowEnter);
156
+ updateLabels(rows);
157
+ }
158
+
159
+ function removeElements (rows) {
160
+ rows.exit().remove();
161
+ }
162
+
163
+ function rootValue () {
164
+ var root = _x(0);
165
+ return (root === -Infinity || root !== root) ? _x(1) : root;
166
+ }
167
+
168
+ function updateElements (rows) {
169
+ var n = _rowData.length;
170
+
171
+ var height;
172
+ if (!_fixedBarHeight) {
173
+ height = (_chart.effectiveHeight() - (n + 1) * _gap) / n;
174
+ } else {
175
+ height = _fixedBarHeight;
176
+ }
177
+
178
+ // vertically align label in center unless they override the value via property setter
179
+ if (!_hasLabelOffsetY) {
180
+ _labelOffsetY = height / 2;
181
+ }
182
+
183
+ var rect = rows.attr('transform', function (d, i) {
184
+ return 'translate(0,' + ((i + 1) * _gap + i * height) + ')';
185
+ }).select('rect')
186
+ .attr('height', height)
187
+ .attr('fill', _chart.getColor)
188
+ .on('click', onClick)
189
+ .classed('deselected', function (d) {
190
+ return (_chart.hasFilter()) ? !isSelectedRow(d) : false;
191
+ })
192
+ .classed('selected', function (d) {
193
+ return (_chart.hasFilter()) ? isSelectedRow(d) : false;
194
+ });
195
+
196
+ dc.transition(rect, _chart.transitionDuration())
197
+ .attr('width', function (d) {
198
+ return Math.abs(rootValue() - _x(_chart.valueAccessor()(d)));
199
+ })
200
+ .attr('transform', translateX);
201
+
202
+ createTitles(rows);
203
+ updateLabels(rows);
204
+ }
205
+
206
+ function createTitles (rows) {
207
+ if (_chart.renderTitle()) {
208
+ rows.selectAll('title').remove();
209
+ rows.append('title').text(_chart.title());
210
+ }
211
+ }
212
+
213
+ function createLabels (rowEnter) {
214
+ if (_chart.renderLabel()) {
215
+ rowEnter.append('text')
216
+ .on('click', onClick);
217
+ }
218
+ if (_chart.renderTitleLabel()) {
219
+ rowEnter.append('text')
220
+ .attr('class', _titleRowCssClass)
221
+ .on('click', onClick);
222
+ }
223
+ }
224
+
225
+ function updateLabels (rows) {
226
+ if (_chart.renderLabel()) {
227
+ var lab = rows.select('text')
228
+ .attr('x', _labelOffsetX)
229
+ .attr('y', _labelOffsetY)
230
+ .attr('dy', _dyOffset)
231
+ .on('click', onClick)
232
+ .attr('class', function (d, i) {
233
+ return _rowCssClass + ' _' + i;
234
+ })
235
+ .text(function (d) {
236
+ return _chart.label()(d);
237
+ });
238
+ dc.transition(lab, _chart.transitionDuration())
239
+ .attr('transform', translateX);
240
+ }
241
+ if (_chart.renderTitleLabel()) {
242
+ var titlelab = rows.select('.' + _titleRowCssClass)
243
+ .attr('x', _chart.effectiveWidth() - _titleLabelOffsetX)
244
+ .attr('y', _labelOffsetY)
245
+ .attr('dy', _dyOffset)
246
+ .attr('text-anchor', 'end')
247
+ .on('click', onClick)
248
+ .attr('class', function (d, i) {
249
+ return _titleRowCssClass + ' _' + i ;
250
+ })
251
+ .text(function (d) {
252
+ return _chart.title()(d);
253
+ });
254
+ dc.transition(titlelab, _chart.transitionDuration())
255
+ .attr('transform', translateX);
256
+ }
257
+ }
258
+
259
+ /**
260
+ * Turn on/off Title label rendering (values) using SVG style of text-anchor 'end'
261
+ * @method renderTitleLabel
262
+ * @memberof dc.rowChart
263
+ * @instance
264
+ * @param {Boolean} [renderTitleLabel=false]
265
+ * @return {Boolean}
266
+ * @return {dc.rowChart}
267
+ */
268
+ _chart.renderTitleLabel = function (renderTitleLabel) {
269
+ if (!arguments.length) {
270
+ return _renderTitleLabel;
271
+ }
272
+ _renderTitleLabel = renderTitleLabel;
273
+ return _chart;
274
+ };
275
+
276
+ function onClick (d) {
277
+ _chart.onClick(d);
278
+ }
279
+
280
+ function translateX (d) {
281
+ var x = _x(_chart.cappedValueAccessor(d)),
282
+ x0 = rootValue(),
283
+ s = x > x0 ? x0 : x;
284
+ return 'translate(' + s + ',0)';
285
+ }
286
+
287
+ _chart._doRedraw = function () {
288
+ drawChart();
289
+ return _chart;
290
+ };
291
+
292
+ /**
293
+ * Get the x axis for the row chart instance. Note: not settable for row charts.
294
+ * See the {@link https://github.com/mbostock/d3/wiki/SVG-Axes#wiki-axis d3 axis object}
295
+ * documention for more information.
296
+ * @method xAxis
297
+ * @memberof dc.rowChart
298
+ * @instance
299
+ * @see {@link https://github.com/mbostock/d3/wiki/SVG-Axes#wiki-axis d3.svg.axis}
300
+ * @example
301
+ * // customize x axis tick format
302
+ * chart.xAxis().tickFormat(function (v) {return v + '%';});
303
+ * // customize x axis tick values
304
+ * chart.xAxis().tickValues([0, 100, 200, 300]);
305
+ * @return {d3.svg.axis}
306
+ */
307
+ _chart.xAxis = function () {
308
+ return _xAxis;
309
+ };
310
+
311
+ /**
312
+ * Get or set the fixed bar height. Default is [false] which will auto-scale bars.
313
+ * For example, if you want to fix the height for a specific number of bars (useful in TopN charts)
314
+ * you could fix height as follows (where count = total number of bars in your TopN and gap is
315
+ * your vertical gap space).
316
+ * @method fixedBarHeight
317
+ * @memberof dc.rowChart
318
+ * @instance
319
+ * @example
320
+ * chart.fixedBarHeight( chartheight - (count + 1) * gap / count);
321
+ * @param {Boolean|Number} [fixedBarHeight=false]
322
+ * @return {Boolean|Number}
323
+ * @return {dc.rowChart}
324
+ */
325
+ _chart.fixedBarHeight = function (fixedBarHeight) {
326
+ if (!arguments.length) {
327
+ return _fixedBarHeight;
328
+ }
329
+ _fixedBarHeight = fixedBarHeight;
330
+ return _chart;
331
+ };
332
+
333
+ /**
334
+ * Get or set the vertical gap space between rows on a particular row chart instance
335
+ * @method gap
336
+ * @memberof dc.rowChart
337
+ * @instance
338
+ * @param {Number} [gap=5]
339
+ * @return {Number}
340
+ * @return {dc.rowChart}
341
+ */
342
+ _chart.gap = function (gap) {
343
+ if (!arguments.length) {
344
+ return _gap;
345
+ }
346
+ _gap = gap;
347
+ return _chart;
348
+ };
349
+
350
+ /**
351
+ * Get or set the elasticity on x axis. If this attribute is set to true, then the x axis will rescle to auto-fit the
352
+ * data range when filtered.
353
+ * @method elasticX
354
+ * @memberof dc.rowChart
355
+ * @instance
356
+ * @param {Boolean} [elasticX]
357
+ * @return {Boolean}
358
+ * @return {dc.rowChart}
359
+ */
360
+ _chart.elasticX = function (elasticX) {
361
+ if (!arguments.length) {
362
+ return _elasticX;
363
+ }
364
+ _elasticX = elasticX;
365
+ return _chart;
366
+ };
367
+
368
+ /**
369
+ * Get or set the x offset (horizontal space to the top left corner of a row) for labels on a particular row chart.
370
+ * @method labelOffsetX
371
+ * @memberof dc.rowChart
372
+ * @instance
373
+ * @param {Number} [labelOffsetX=10]
374
+ * @return {Number}
375
+ * @return {dc.rowChart}
376
+ */
377
+ _chart.labelOffsetX = function (labelOffsetX) {
378
+ if (!arguments.length) {
379
+ return _labelOffsetX;
380
+ }
381
+ _labelOffsetX = labelOffsetX;
382
+ return _chart;
383
+ };
384
+
385
+ /**
386
+ * Get or set the y offset (vertical space to the top left corner of a row) for labels on a particular row chart.
387
+ * @method labelOffsetY
388
+ * @memberof dc.rowChart
389
+ * @instance
390
+ * @param {Number} [labelOffsety=15]
391
+ * @return {Number}
392
+ * @return {dc.rowChart}
393
+ */
394
+ _chart.labelOffsetY = function (labelOffsety) {
395
+ if (!arguments.length) {
396
+ return _labelOffsetY;
397
+ }
398
+ _labelOffsetY = labelOffsety;
399
+ _hasLabelOffsetY = true;
400
+ return _chart;
401
+ };
402
+
403
+ /**
404
+ * Get of set the x offset (horizontal space between right edge of row and right edge or text.
405
+ * @method titleLabelOffsetX
406
+ * @memberof dc.rowChart
407
+ * @instance
408
+ * @param {Number} [titleLabelOffsetX=2]
409
+ * @return {Number}
410
+ * @return {dc.rowChart}
411
+ */
412
+ _chart.titleLabelOffsetX = function (titleLabelOffsetX) {
413
+ if (!arguments.length) {
414
+ return _titleLabelOffsetX;
415
+ }
416
+ _titleLabelOffsetX = titleLabelOffsetX;
417
+ return _chart;
418
+ };
419
+
420
+ function isSelectedRow (d) {
421
+ return _chart.hasFilter(_chart.cappedKeyAccessor(d));
422
+ }
423
+
424
+ return _chart.anchor(parent, chartGroup);
425
+ };
@@ -0,0 +1,338 @@
1
+ /**
2
+ * A scatter plot chart
3
+ *
4
+ * Examples:
5
+ * - {@link http://dc-js.github.io/dc.js/examples/scatter.html Scatter Chart}
6
+ * - {@link http://dc-js.github.io/dc.js/examples/multi-scatter.html Multi-Scatter Chart}
7
+ * @class scatterPlot
8
+ * @memberof dc
9
+ * @mixes dc.coordinateGridMixin
10
+ * @example
11
+ * // create a scatter plot under #chart-container1 element using the default global chart group
12
+ * var chart1 = dc.scatterPlot('#chart-container1');
13
+ * // create a scatter plot under #chart-container2 element using chart group A
14
+ * var chart2 = dc.scatterPlot('#chart-container2', 'chartGroupA');
15
+ * // create a sub-chart under a composite parent chart
16
+ * var chart3 = dc.scatterPlot(compositeChart);
17
+ * @param {String|node|d3.selection} parent - Any valid
18
+ * {@link https://github.com/mbostock/d3/wiki/Selections#selecting-elements d3 single selector} specifying
19
+ * a dom block element such as a div; or a dom element or d3 selection.
20
+ * @param {String} [chartGroup] - The name of the chart group this chart instance should be placed in.
21
+ * Interaction with a chart will only trigger events and redraws within the chart's group.
22
+ * @return {dc.scatterPlot}
23
+ */
24
+ dc.scatterPlot = function (parent, chartGroup) {
25
+ var _chart = dc.coordinateGridMixin({});
26
+ var _symbol = d3.svg.symbol();
27
+
28
+ var _existenceAccessor = function (d) { return d.value; };
29
+
30
+ var originalKeyAccessor = _chart.keyAccessor();
31
+ _chart.keyAccessor(function (d) { return originalKeyAccessor(d)[0]; });
32
+ _chart.valueAccessor(function (d) { return originalKeyAccessor(d)[1]; });
33
+ _chart.colorAccessor(function () { return _chart._groupName; });
34
+
35
+ var _locator = function (d) {
36
+ return 'translate(' + _chart.x()(_chart.keyAccessor()(d)) + ',' +
37
+ _chart.y()(_chart.valueAccessor()(d)) + ')';
38
+ };
39
+
40
+ var _highlightedSize = 7;
41
+ var _symbolSize = 5;
42
+ var _excludedSize = 3;
43
+ var _excludedColor = null;
44
+ var _excludedOpacity = 1.0;
45
+ var _emptySize = 0;
46
+ var _filtered = [];
47
+
48
+ _symbol.size(function (d, i) {
49
+ if (!_existenceAccessor(d)) {
50
+ return _emptySize;
51
+ } else if (_filtered[i]) {
52
+ return Math.pow(_symbolSize, 2);
53
+ } else {
54
+ return Math.pow(_excludedSize, 2);
55
+ }
56
+ });
57
+
58
+ dc.override(_chart, '_filter', function (filter) {
59
+ if (!arguments.length) {
60
+ return _chart.__filter();
61
+ }
62
+
63
+ return _chart.__filter(dc.filters.RangedTwoDimensionalFilter(filter));
64
+ });
65
+
66
+ _chart.plotData = function () {
67
+ var symbols = _chart.chartBodyG().selectAll('path.symbol')
68
+ .data(_chart.data());
69
+
70
+ symbols
71
+ .enter()
72
+ .append('path')
73
+ .attr('class', 'symbol')
74
+ .attr('opacity', 0)
75
+ .attr('fill', _chart.getColor)
76
+ .attr('transform', _locator);
77
+
78
+ symbols.each(function (d, i) {
79
+ _filtered[i] = !_chart.filter() || _chart.filter().isFiltered([d.key[0], d.key[1]]);
80
+ });
81
+
82
+ dc.transition(symbols, _chart.transitionDuration())
83
+ .attr('opacity', function (d, i) {
84
+ return !_existenceAccessor(d) ? 0 :
85
+ _filtered[i] ? 1 : _chart.excludedOpacity();
86
+ })
87
+ .attr('fill', function (d, i) {
88
+ return _chart.excludedColor() && !_filtered[i] ?
89
+ _chart.excludedColor() :
90
+ _chart.getColor(d);
91
+ })
92
+ .attr('transform', _locator)
93
+ .attr('d', _symbol);
94
+
95
+ dc.transition(symbols.exit(), _chart.transitionDuration())
96
+ .attr('opacity', 0).remove();
97
+ };
98
+
99
+ /**
100
+ * Get or set the existence accessor. If a point exists, it is drawn with
101
+ * {@link dc.scatterPlot#symbolSize symbolSize} radius and
102
+ * opacity 1; if it does not exist, it is drawn with
103
+ * {@link dc.scatterPlot#emptySize emptySize} radius and opacity 0. By default,
104
+ * the existence accessor checks if the reduced value is truthy.
105
+ * @method existenceAccessor
106
+ * @memberof dc.scatterPlot
107
+ * @instance
108
+ * @see {@link dc.scatterPlot#symbolSize symbolSize}
109
+ * @see {@link dc.scatterPlot#emptySize emptySize}
110
+ * @example
111
+ * // default accessor
112
+ * chart.existenceAccessor(function (d) { return d.value; });
113
+ * @param {Function} [accessor]
114
+ * @return {Function}
115
+ * @return {dc.scatterPlot}
116
+ */
117
+ _chart.existenceAccessor = function (accessor) {
118
+ if (!arguments.length) {
119
+ return _existenceAccessor;
120
+ }
121
+ _existenceAccessor = accessor;
122
+ return this;
123
+ };
124
+
125
+ /**
126
+ * Get or set the symbol type used for each point. By default the symbol is a circle.
127
+ * Type can be a constant or an accessor.
128
+ * @method symbol
129
+ * @memberof dc.scatterPlot
130
+ * @instance
131
+ * @see {@link https://github.com/mbostock/d3/wiki/SVG-Shapes#symbol_type d3.svg.symbol().type()}
132
+ * @example
133
+ * // Circle type
134
+ * chart.symbol('circle');
135
+ * // Square type
136
+ * chart.symbol('square');
137
+ * @param {String|Function} [type='circle']
138
+ * @return {String|Function}
139
+ * @return {dc.scatterPlot}
140
+ */
141
+ _chart.symbol = function (type) {
142
+ if (!arguments.length) {
143
+ return _symbol.type();
144
+ }
145
+ _symbol.type(type);
146
+ return _chart;
147
+ };
148
+
149
+ /**
150
+ * Set or get radius for symbols.
151
+ * @method symbolSize
152
+ * @memberof dc.scatterPlot
153
+ * @instance
154
+ * @see {@link https://github.com/mbostock/d3/wiki/SVG-Shapes#symbol_size d3.svg.symbol().size()}
155
+ * @param {Number} [symbolSize=3]
156
+ * @return {Number}
157
+ * @return {dc.scatterPlot}
158
+ */
159
+ _chart.symbolSize = function (symbolSize) {
160
+ if (!arguments.length) {
161
+ return _symbolSize;
162
+ }
163
+ _symbolSize = symbolSize;
164
+ return _chart;
165
+ };
166
+
167
+ /**
168
+ * Set or get radius for highlighted symbols.
169
+ * @method highlightedSize
170
+ * @memberof dc.scatterPlot
171
+ * @instance
172
+ * @see {@link https://github.com/mbostock/d3/wiki/SVG-Shapes#symbol_size d3.svg.symbol().size()}
173
+ * @param {Number} [highlightedSize=5]
174
+ * @return {Number}
175
+ * @return {dc.scatterPlot}
176
+ */
177
+ _chart.highlightedSize = function (highlightedSize) {
178
+ if (!arguments.length) {
179
+ return _highlightedSize;
180
+ }
181
+ _highlightedSize = highlightedSize;
182
+ return _chart;
183
+ };
184
+
185
+ /**
186
+ * Set or get size for symbols excluded from this chart's filter. If null, no
187
+ * special size is applied for symbols based on their filter status
188
+ * @method excludedSize
189
+ * @memberof dc.scatterPlot
190
+ * @instance
191
+ * @see {@link https://github.com/mbostock/d3/wiki/SVG-Shapes#symbol_size d3.svg.symbol().size()}
192
+ * @param {Number} [excludedSize=null]
193
+ * @return {Number}
194
+ * @return {dc.scatterPlot}
195
+ */
196
+ _chart.excludedSize = function (excludedSize) {
197
+ if (!arguments.length) {
198
+ return _excludedSize;
199
+ }
200
+ _excludedSize = excludedSize;
201
+ return _chart;
202
+ };
203
+
204
+ /**
205
+ * Set or get color for symbols excluded from this chart's filter. If null, no
206
+ * special color is applied for symbols based on their filter status
207
+ * @method excludedColor
208
+ * @memberof dc.scatterPlot
209
+ * @instance
210
+ * @see {@link https://github.com/mbostock/d3/wiki/SVG-Shapes#symbol_size d3.svg.symbol().size()}
211
+ * @param {Number} [excludedColor=null]
212
+ * @return {Number}
213
+ * @return {dc.scatterPlot}
214
+ */
215
+ _chart.excludedColor = function (excludedColor) {
216
+ if (!arguments.length) {
217
+ return _excludedColor;
218
+ }
219
+ _excludedColor = excludedColor;
220
+ return _chart;
221
+ };
222
+
223
+ /**
224
+ * Set or get opacity for symbols excluded from this chart's filter.
225
+ * @method excludedOpacity
226
+ * @memberof dc.scatterPlot
227
+ * @instance
228
+ * @see {@link https://github.com/mbostock/d3/wiki/SVG-Shapes#symbol_size d3.svg.symbol().size()}
229
+ * @param {Number} [excludedOpacity=1.0]
230
+ * @return {Number}
231
+ * @return {dc.scatterPlot}
232
+ */
233
+ _chart.excludedOpacity = function (excludedOpacity) {
234
+ if (!arguments.length) {
235
+ return _excludedOpacity;
236
+ }
237
+ _excludedOpacity = excludedOpacity;
238
+ return _chart;
239
+ };
240
+
241
+ /**
242
+ * Set or get radius for symbols when the group is empty.
243
+ * @method emptySize
244
+ * @memberof dc.scatterPlot
245
+ * @instance
246
+ * @see {@link https://github.com/mbostock/d3/wiki/SVG-Shapes#symbol_size d3.svg.symbol().size()}
247
+ * @param {Number} [emptySize=0]
248
+ * @return {Number}
249
+ * @return {dc.scatterPlot}
250
+ */
251
+ _chart.hiddenSize = _chart.emptySize = function (emptySize) {
252
+ if (!arguments.length) {
253
+ return _emptySize;
254
+ }
255
+ _emptySize = emptySize;
256
+ return _chart;
257
+ };
258
+
259
+ _chart.legendables = function () {
260
+ return [{chart: _chart, name: _chart._groupName, color: _chart.getColor()}];
261
+ };
262
+
263
+ _chart.legendHighlight = function (d) {
264
+ resizeSymbolsWhere(function (symbol) {
265
+ return symbol.attr('fill') === d.color;
266
+ }, _highlightedSize);
267
+ _chart.selectAll('.chart-body path.symbol').filter(function () {
268
+ return d3.select(this).attr('fill') !== d.color;
269
+ }).classed('fadeout', true);
270
+ };
271
+
272
+ _chart.legendReset = function (d) {
273
+ resizeSymbolsWhere(function (symbol) {
274
+ return symbol.attr('fill') === d.color;
275
+ }, _symbolSize);
276
+ _chart.selectAll('.chart-body path.symbol').filter(function () {
277
+ return d3.select(this).attr('fill') !== d.color;
278
+ }).classed('fadeout', false);
279
+ };
280
+
281
+ function resizeSymbolsWhere (condition, size) {
282
+ var symbols = _chart.selectAll('.chart-body path.symbol').filter(function () {
283
+ return condition(d3.select(this));
284
+ });
285
+ var oldSize = _symbol.size();
286
+ _symbol.size(Math.pow(size, 2));
287
+ dc.transition(symbols, _chart.transitionDuration()).attr('d', _symbol);
288
+ _symbol.size(oldSize);
289
+ }
290
+
291
+ _chart.setHandlePaths = function () {
292
+ // no handle paths for poly-brushes
293
+ };
294
+
295
+ _chart.extendBrush = function () {
296
+ var extent = _chart.brush().extent();
297
+ if (_chart.round()) {
298
+ extent[0] = extent[0].map(_chart.round());
299
+ extent[1] = extent[1].map(_chart.round());
300
+
301
+ _chart.g().select('.brush')
302
+ .call(_chart.brush().extent(extent));
303
+ }
304
+ return extent;
305
+ };
306
+
307
+ _chart.brushIsEmpty = function (extent) {
308
+ return _chart.brush().empty() || !extent || extent[0][0] >= extent[1][0] || extent[0][1] >= extent[1][1];
309
+ };
310
+
311
+ _chart._brushing = function () {
312
+ var extent = _chart.extendBrush();
313
+
314
+ _chart.redrawBrush(_chart.g());
315
+
316
+ if (_chart.brushIsEmpty(extent)) {
317
+ dc.events.trigger(function () {
318
+ _chart.filter(null);
319
+ _chart.redrawGroup();
320
+ });
321
+
322
+ } else {
323
+ var ranged2DFilter = dc.filters.RangedTwoDimensionalFilter(extent);
324
+ dc.events.trigger(function () {
325
+ _chart.filter(null);
326
+ _chart.filter(ranged2DFilter);
327
+ _chart.redrawGroup();
328
+ }, dc.constants.EVENT_DELAY);
329
+
330
+ }
331
+ };
332
+
333
+ _chart.setBrushY = function (gBrush) {
334
+ gBrush.call(_chart.brush().y(_chart.y()));
335
+ };
336
+
337
+ return _chart.anchor(parent, chartGroup);
338
+ };