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.
- checksums.yaml +7 -0
- data/LICENSE.txt +35 -0
- data/LICENSE.txt~ +73 -0
- data/README.md +140 -0
- data/README.md~ +290 -0
- data/Rakefile +80 -0
- data/config.rb +223 -0
- data/doc/Nashorn.html +1406 -0
- data/doc/Sol.html +692 -0
- data/doc/Sol/BarChart.html +181 -0
- data/doc/Sol/BaseChart.html +799 -0
- data/doc/Sol/Bootstrap.html +1134 -0
- data/doc/Sol/Bridge.html +448 -0
- data/doc/Sol/Chart.html +1162 -0
- data/doc/Sol/CoordinateChart.html +673 -0
- data/doc/Sol/DCFX.html +807 -0
- data/doc/Sol/Dashboard.html +1967 -0
- data/doc/Sol/ExecMessages.html +332 -0
- data/doc/Sol/GuiCommunication.html +230 -0
- data/doc/Sol/Interval.html +1213 -0
- data/doc/Sol/JS.html +448 -0
- data/doc/Sol/LineChart.html +344 -0
- data/doc/Sol/LinearScale.html +334 -0
- data/doc/Sol/Margins.html +219 -0
- data/doc/Sol/OrdinalScale.html +263 -0
- data/doc/Sol/ReadBuffer.html +302 -0
- data/doc/Sol/Scale.html +462 -0
- data/doc/Sol/Stack.html +199 -0
- data/doc/Sol/TimeScale.html +396 -0
- data/doc/_index.html +362 -0
- data/doc/class_list.html +58 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +57 -0
- data/doc/css/style.css +339 -0
- data/doc/file.README.html +95 -0
- data/doc/file_list.html +60 -0
- data/doc/frames.html +26 -0
- data/doc/index.html +95 -0
- data/doc/js/app.js +219 -0
- data/doc/js/full_list.js +181 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +849 -0
- data/doc/top-level-namespace.html +135 -0
- data/examples/bar_chart/bar_chart.rb +268 -0
- data/examples/bar_plot.rb +96 -0
- data/examples/charts/area.rb +25 -0
- data/examples/charts/area_script.rb +69 -0
- data/examples/charts/env.rb +8 -0
- data/examples/charts/monthly-move.csv +6725 -0
- data/examples/charts/morley.csv +101 -0
- data/examples/charts/morley2.csv +81 -0
- data/examples/charts/morley3.csv +121 -0
- data/examples/d3_tutorial.rb +98 -0
- data/examples/sc_plot.rb +57 -0
- data/examples/scatterplot/axes.rb +111 -0
- data/examples/scatterplot/scatterplot.rb +221 -0
- data/examples/us_states/map.rb +90 -0
- data/examples/us_states/us-ag-productivity2004.csv +49 -0
- data/examples/us_states/us-cities.csv +51 -0
- data/examples/util/linear_scale.rb +83 -0
- data/examples/util/ordinal_scale.rb +72 -0
- data/init.rb +39 -0
- data/lib/jx/array_handler.js +70 -0
- data/lib/jx/callback.rb +255 -0
- data/lib/jx/hash_handler.js +87 -0
- data/lib/jx/irbobject.rb +121 -0
- data/lib/jx/js.rb +442 -0
- data/lib/jx/js_array.rb +31 -0
- data/lib/jx/js_hash.rb +76 -0
- data/lib/jx/js_init.rb +62 -0
- data/lib/jx/jsarray.rb +66 -0
- data/lib/jx/jsfunction.rb +73 -0
- data/lib/jx/jsobject.rb +188 -0
- data/lib/jx/jsstyle_sheet.rb +231 -0
- data/lib/jx/jsundefined.rb +46 -0
- data/lib/jx/proxy_array.rb +62 -0
- data/lib/jx/rbobject.rb +80 -0
- data/lib/jx/ruby_proxy.js +176 -0
- data/lib/jx/ruby_rich.js +70 -0
- data/lib/jx/sol.rb +109 -0
- data/lib/mdarray-sol.rb +34 -0
- data/lib/mdarray/jsmdarray.rb +39 -0
- data/lib/ruby_rich/bootstrap.rb +230 -0
- data/lib/ruby_rich/config.html +22 -0
- data/lib/ruby_rich/dashboard.rb +299 -0
- data/lib/ruby_rich/ruby_rich.rb +120 -0
- data/lib/sol/bar_chart.rb +35 -0
- data/lib/sol/base_chart.rb +148 -0
- data/lib/sol/chart.rb +138 -0
- data/lib/sol/coordinate_chart.rb +128 -0
- data/lib/sol/interval.rb +156 -0
- data/lib/sol/line_chart.rb +58 -0
- data/lib/sol/margins.rb +52 -0
- data/lib/sol/scale.rb +212 -0
- data/lib/sol/stack.rb +44 -0
- data/node_modules/bootstrap/Gruntfile.js +533 -0
- data/node_modules/bootstrap/dist/js/bootstrap.js +2363 -0
- data/node_modules/bootstrap/dist/js/bootstrap.min.js +7 -0
- data/node_modules/bootstrap/dist/js/npm.js +13 -0
- data/node_modules/bootstrap/grunt/bs-commonjs-generator.js +30 -0
- data/node_modules/bootstrap/grunt/bs-glyphicons-data-generator.js +42 -0
- data/node_modules/bootstrap/grunt/bs-lessdoc-parser.js +237 -0
- data/node_modules/bootstrap/grunt/bs-raw-files-generator.js +44 -0
- data/node_modules/bootstrap/js/affix.js +162 -0
- data/node_modules/bootstrap/js/alert.js +94 -0
- data/node_modules/bootstrap/js/button.js +120 -0
- data/node_modules/bootstrap/js/carousel.js +237 -0
- data/node_modules/bootstrap/js/collapse.js +211 -0
- data/node_modules/bootstrap/js/dropdown.js +165 -0
- data/node_modules/bootstrap/js/modal.js +337 -0
- data/node_modules/bootstrap/js/popover.js +108 -0
- data/node_modules/bootstrap/js/scrollspy.js +172 -0
- data/node_modules/bootstrap/js/tab.js +155 -0
- data/node_modules/bootstrap/js/tooltip.js +514 -0
- data/node_modules/bootstrap/js/transition.js +59 -0
- data/node_modules/chai/chai.js +6142 -0
- data/node_modules/chai/index.js +1 -0
- data/node_modules/chai/karma.conf.js +28 -0
- data/node_modules/chai/karma.sauce.js +41 -0
- data/node_modules/chai/lib/chai.js +93 -0
- data/node_modules/chai/lib/chai/assertion.js +131 -0
- data/node_modules/chai/lib/chai/config.js +55 -0
- data/node_modules/chai/lib/chai/core/assertions.js +1860 -0
- data/node_modules/chai/lib/chai/interface/assert.js +1645 -0
- data/node_modules/chai/lib/chai/interface/expect.js +34 -0
- data/node_modules/chai/lib/chai/interface/should.js +201 -0
- data/node_modules/chai/lib/chai/utils/addChainableMethod.js +112 -0
- data/node_modules/chai/lib/chai/utils/addMethod.js +44 -0
- data/node_modules/chai/lib/chai/utils/addProperty.js +48 -0
- data/node_modules/chai/lib/chai/utils/expectTypes.js +42 -0
- data/node_modules/chai/lib/chai/utils/flag.js +33 -0
- data/node_modules/chai/lib/chai/utils/getActual.js +20 -0
- data/node_modules/chai/lib/chai/utils/getEnumerableProperties.js +26 -0
- data/node_modules/chai/lib/chai/utils/getMessage.js +51 -0
- data/node_modules/chai/lib/chai/utils/getName.js +22 -0
- data/node_modules/chai/lib/chai/utils/getPathInfo.js +111 -0
- data/node_modules/chai/lib/chai/utils/getPathValue.js +43 -0
- data/node_modules/chai/lib/chai/utils/getProperties.js +36 -0
- data/node_modules/chai/lib/chai/utils/hasProperty.js +64 -0
- data/node_modules/chai/lib/chai/utils/index.js +130 -0
- data/node_modules/chai/lib/chai/utils/inspect.js +335 -0
- data/node_modules/chai/lib/chai/utils/objDisplay.js +50 -0
- data/node_modules/chai/lib/chai/utils/overwriteChainableMethod.js +54 -0
- data/node_modules/chai/lib/chai/utils/overwriteMethod.js +52 -0
- data/node_modules/chai/lib/chai/utils/overwriteProperty.js +55 -0
- data/node_modules/chai/lib/chai/utils/test.js +28 -0
- data/node_modules/chai/lib/chai/utils/transferFlags.js +45 -0
- data/node_modules/chai/node_modules/assertion-error/index.js +116 -0
- data/node_modules/chai/node_modules/deep-eql/index.js +1 -0
- data/node_modules/chai/node_modules/deep-eql/karma.conf.js +20 -0
- data/node_modules/chai/node_modules/deep-eql/lib/eql.js +257 -0
- data/node_modules/chai/node_modules/deep-eql/node_modules/type-detect/index.js +1 -0
- data/node_modules/chai/node_modules/deep-eql/node_modules/type-detect/lib/type.js +142 -0
- data/node_modules/chai/node_modules/type-detect/index.js +1 -0
- data/node_modules/chai/node_modules/type-detect/lib/type.js +134 -0
- data/node_modules/chai/sauce.browsers.js +128 -0
- data/node_modules/dc/Gruntfile.js +437 -0
- data/node_modules/dc/dc.js +10477 -0
- data/node_modules/dc/dc.min.js +23 -0
- data/node_modules/dc/docs/coverage.js +203 -0
- data/node_modules/dc/grunt/format-file-list.js +33 -0
- data/node_modules/dc/index.js +5 -0
- data/node_modules/dc/node_modules/crossfilter2/crossfilter.js +1401 -0
- data/node_modules/dc/node_modules/crossfilter2/crossfilter.min.js +1 -0
- data/node_modules/dc/node_modules/crossfilter2/index.js +1 -0
- data/node_modules/dc/node_modules/crossfilter2/src/array.js +46 -0
- data/node_modules/dc/node_modules/crossfilter2/src/bisect.js +44 -0
- data/node_modules/dc/node_modules/crossfilter2/src/crossfilter.js +872 -0
- data/node_modules/dc/node_modules/crossfilter2/src/filter.js +19 -0
- data/node_modules/dc/node_modules/crossfilter2/src/heap.js +44 -0
- data/node_modules/dc/node_modules/crossfilter2/src/heapselect.js +36 -0
- data/node_modules/dc/node_modules/crossfilter2/src/identity.js +3 -0
- data/node_modules/dc/node_modules/crossfilter2/src/insertionsort.js +18 -0
- data/node_modules/dc/node_modules/crossfilter2/src/null.js +3 -0
- data/node_modules/dc/node_modules/crossfilter2/src/permute.js +8 -0
- data/node_modules/dc/node_modules/crossfilter2/src/quicksort.js +283 -0
- data/node_modules/dc/node_modules/crossfilter2/src/reduce.js +19 -0
- data/node_modules/dc/node_modules/crossfilter2/src/zero.js +3 -0
- data/node_modules/dc/node_modules/d3/d3.js +9554 -0
- data/node_modules/dc/node_modules/d3/d3.min.js +5 -0
- data/node_modules/dc/node_modules/d3/package.js +13 -0
- data/node_modules/dc/node_modules/d3/src/arrays/ascending.js +5 -0
- data/node_modules/dc/node_modules/d3/src/arrays/bisect.js +36 -0
- data/node_modules/dc/node_modules/d3/src/arrays/descending.js +3 -0
- data/node_modules/dc/node_modules/d3/src/arrays/deviation.js +6 -0
- data/node_modules/dc/node_modules/d3/src/arrays/entries.js +5 -0
- data/node_modules/dc/node_modules/d3/src/arrays/extent.js +21 -0
- data/node_modules/dc/node_modules/d3/src/arrays/index.js +25 -0
- data/node_modules/dc/node_modules/d3/src/arrays/keys.js +5 -0
- data/node_modules/dc/node_modules/d3/src/arrays/map.js +84 -0
- data/node_modules/dc/node_modules/d3/src/arrays/max.js +14 -0
- data/node_modules/dc/node_modules/d3/src/arrays/mean.js +15 -0
- data/node_modules/dc/node_modules/d3/src/arrays/median.js +16 -0
- data/node_modules/dc/node_modules/d3/src/arrays/merge.js +21 -0
- data/node_modules/dc/node_modules/d3/src/arrays/min.js +14 -0
- data/node_modules/dc/node_modules/d3/src/arrays/nest.js +97 -0
- data/node_modules/dc/node_modules/d3/src/arrays/pairs.js +5 -0
- data/node_modules/dc/node_modules/d3/src/arrays/permute.js +5 -0
- data/node_modules/dc/node_modules/d3/src/arrays/quantile.js +8 -0
- data/node_modules/dc/node_modules/d3/src/arrays/range.js +26 -0
- data/node_modules/dc/node_modules/d3/src/arrays/set.js +27 -0
- data/node_modules/dc/node_modules/d3/src/arrays/shuffle.js +9 -0
- data/node_modules/dc/node_modules/d3/src/arrays/sum.js +14 -0
- data/node_modules/dc/node_modules/d3/src/arrays/transpose.js +15 -0
- data/node_modules/dc/node_modules/d3/src/arrays/values.js +5 -0
- data/node_modules/dc/node_modules/d3/src/arrays/variance.js +29 -0
- data/node_modules/dc/node_modules/d3/src/arrays/zip.js +5 -0
- data/node_modules/dc/node_modules/d3/src/behavior/behavior.js +1 -0
- data/node_modules/dc/node_modules/d3/src/behavior/drag.js +88 -0
- data/node_modules/dc/node_modules/d3/src/behavior/index.js +3 -0
- data/node_modules/dc/node_modules/d3/src/behavior/zoom.js +348 -0
- data/node_modules/dc/node_modules/d3/src/color/color.js +7 -0
- data/node_modules/dc/node_modules/d3/src/color/hcl.js +34 -0
- data/node_modules/dc/node_modules/d3/src/color/hsl.js +56 -0
- data/node_modules/dc/node_modules/d3/src/color/index.js +6 -0
- data/node_modules/dc/node_modules/d3/src/color/lab.js +60 -0
- data/node_modules/dc/node_modules/d3/src/color/rgb.js +301 -0
- data/node_modules/dc/node_modules/d3/src/color/xyz.js +7 -0
- data/node_modules/dc/node_modules/d3/src/compat/array.js +15 -0
- data/node_modules/dc/node_modules/d3/src/compat/date.js +3 -0
- data/node_modules/dc/node_modules/d3/src/compat/index.js +3 -0
- data/node_modules/dc/node_modules/d3/src/compat/style.js +23 -0
- data/node_modules/dc/node_modules/d3/src/core/array.js +2 -0
- data/node_modules/dc/node_modules/d3/src/core/class.js +8 -0
- data/node_modules/dc/node_modules/d3/src/core/document.js +15 -0
- data/node_modules/dc/node_modules/d3/src/core/functor.js +5 -0
- data/node_modules/dc/node_modules/d3/src/core/identity.js +3 -0
- data/node_modules/dc/node_modules/d3/src/core/index.js +3 -0
- data/node_modules/dc/node_modules/d3/src/core/noop.js +1 -0
- data/node_modules/dc/node_modules/d3/src/core/ns.js +18 -0
- data/node_modules/dc/node_modules/d3/src/core/rebind.js +16 -0
- data/node_modules/dc/node_modules/d3/src/core/source.js +3 -0
- data/node_modules/dc/node_modules/d3/src/core/subclass.js +11 -0
- data/node_modules/dc/node_modules/d3/src/core/target.js +3 -0
- data/node_modules/dc/node_modules/d3/src/core/true.js +3 -0
- data/node_modules/dc/node_modules/d3/src/core/vendor.js +10 -0
- data/node_modules/dc/node_modules/d3/src/core/zero.js +3 -0
- data/node_modules/dc/node_modules/d3/src/d3.js +23 -0
- data/node_modules/dc/node_modules/d3/src/dsv/csv.js +3 -0
- data/node_modules/dc/node_modules/d3/src/dsv/dsv.js +136 -0
- data/node_modules/dc/node_modules/d3/src/dsv/index.js +3 -0
- data/node_modules/dc/node_modules/d3/src/dsv/tsv.js +3 -0
- data/node_modules/dc/node_modules/d3/src/end.js +4 -0
- data/node_modules/dc/node_modules/d3/src/event/dispatch.js +69 -0
- data/node_modules/dc/node_modules/d3/src/event/drag.js +36 -0
- data/node_modules/dc/node_modules/d3/src/event/event.js +50 -0
- data/node_modules/dc/node_modules/d3/src/event/index.js +6 -0
- data/node_modules/dc/node_modules/d3/src/event/mouse.js +39 -0
- data/node_modules/dc/node_modules/d3/src/event/timer.js +82 -0
- data/node_modules/dc/node_modules/d3/src/event/touch.js +11 -0
- data/node_modules/dc/node_modules/d3/src/event/touches.js +12 -0
- data/node_modules/dc/node_modules/d3/src/format/collapse.js +3 -0
- data/node_modules/dc/node_modules/d3/src/format/format.js +3 -0
- data/node_modules/dc/node_modules/d3/src/format/formatPrefix.js +24 -0
- data/node_modules/dc/node_modules/d3/src/format/index.js +4 -0
- data/node_modules/dc/node_modules/d3/src/format/precision.js +3 -0
- data/node_modules/dc/node_modules/d3/src/format/requote.js +5 -0
- data/node_modules/dc/node_modules/d3/src/format/round.js +5 -0
- data/node_modules/dc/node_modules/d3/src/geo/albers-usa.js +129 -0
- data/node_modules/dc/node_modules/d3/src/geo/albers.js +11 -0
- data/node_modules/dc/node_modules/d3/src/geo/area.js +69 -0
- data/node_modules/dc/node_modules/d3/src/geo/azimuthal-equal-area.js +12 -0
- data/node_modules/dc/node_modules/d3/src/geo/azimuthal-equidistant.js +13 -0
- data/node_modules/dc/node_modules/d3/src/geo/azimuthal.js +25 -0
- data/node_modules/dc/node_modules/d3/src/geo/bounds.js +168 -0
- data/node_modules/dc/node_modules/d3/src/geo/cartesian.js +47 -0
- data/node_modules/dc/node_modules/d3/src/geo/centroid.js +149 -0
- data/node_modules/dc/node_modules/d3/src/geo/circle.js +81 -0
- data/node_modules/dc/node_modules/d3/src/geo/clip-antimeridian.js +95 -0
- data/node_modules/dc/node_modules/d3/src/geo/clip-circle.js +178 -0
- data/node_modules/dc/node_modules/d3/src/geo/clip-extent.js +196 -0
- data/node_modules/dc/node_modules/d3/src/geo/clip-polygon.js +104 -0
- data/node_modules/dc/node_modules/d3/src/geo/clip.js +149 -0
- data/node_modules/dc/node_modules/d3/src/geo/compose.js +12 -0
- data/node_modules/dc/node_modules/d3/src/geo/conic-conformal.js +39 -0
- data/node_modules/dc/node_modules/d3/src/geo/conic-equal-area.js +33 -0
- data/node_modules/dc/node_modules/d3/src/geo/conic-equidistant.js +36 -0
- data/node_modules/dc/node_modules/d3/src/geo/conic.js +16 -0
- data/node_modules/dc/node_modules/d3/src/geo/distance.js +13 -0
- data/node_modules/dc/node_modules/d3/src/geo/equirectangular.js +10 -0
- data/node_modules/dc/node_modules/d3/src/geo/geo.js +1 -0
- data/node_modules/dc/node_modules/d3/src/geo/gnomonic.js +12 -0
- data/node_modules/dc/node_modules/d3/src/geo/graticule.js +103 -0
- data/node_modules/dc/node_modules/d3/src/geo/greatArc.js +42 -0
- data/node_modules/dc/node_modules/d3/src/geo/index.js +33 -0
- data/node_modules/dc/node_modules/d3/src/geo/interpolate.js +38 -0
- data/node_modules/dc/node_modules/d3/src/geo/length.js +44 -0
- data/node_modules/dc/node_modules/d3/src/geo/mercator.js +48 -0
- data/node_modules/dc/node_modules/d3/src/geo/orthographic.js +12 -0
- data/node_modules/dc/node_modules/d3/src/geo/path-area.js +41 -0
- data/node_modules/dc/node_modules/d3/src/geo/path-bounds.js +21 -0
- data/node_modules/dc/node_modules/d3/src/geo/path-buffer.js +59 -0
- data/node_modules/dc/node_modules/d3/src/geo/path-centroid.js +78 -0
- data/node_modules/dc/node_modules/d3/src/geo/path-context.js +49 -0
- data/node_modules/dc/node_modules/d3/src/geo/path.js +87 -0
- data/node_modules/dc/node_modules/d3/src/geo/point-in-polygon.js +71 -0
- data/node_modules/dc/node_modules/d3/src/geo/projection.js +121 -0
- data/node_modules/dc/node_modules/d3/src/geo/resample.js +109 -0
- data/node_modules/dc/node_modules/d3/src/geo/rotation.js +79 -0
- data/node_modules/dc/node_modules/d3/src/geo/spherical.js +13 -0
- data/node_modules/dc/node_modules/d3/src/geo/stereographic.js +12 -0
- data/node_modules/dc/node_modules/d3/src/geo/stream.js +71 -0
- data/node_modules/dc/node_modules/d3/src/geo/transform.js +36 -0
- data/node_modules/dc/node_modules/d3/src/geo/transverse-mercator.js +31 -0
- data/node_modules/dc/node_modules/d3/src/geom/clip-line.js +66 -0
- data/node_modules/dc/node_modules/d3/src/geom/delaunay.js +6 -0
- data/node_modules/dc/node_modules/d3/src/geom/geom.js +1 -0
- data/node_modules/dc/node_modules/d3/src/geom/hull.js +91 -0
- data/node_modules/dc/node_modules/d3/src/geom/index.js +6 -0
- data/node_modules/dc/node_modules/d3/src/geom/point.js +7 -0
- data/node_modules/dc/node_modules/d3/src/geom/polygon.js +105 -0
- data/node_modules/dc/node_modules/d3/src/geom/quadtree.js +243 -0
- data/node_modules/dc/node_modules/d3/src/geom/voronoi.js +110 -0
- data/node_modules/dc/node_modules/d3/src/geom/voronoi/beach.js +186 -0
- data/node_modules/dc/node_modules/d3/src/geom/voronoi/cell.js +64 -0
- data/node_modules/dc/node_modules/d3/src/geom/voronoi/circle.js +73 -0
- data/node_modules/dc/node_modules/d3/src/geom/voronoi/clip.js +80 -0
- data/node_modules/dc/node_modules/d3/src/geom/voronoi/edge.js +50 -0
- data/node_modules/dc/node_modules/d3/src/geom/voronoi/index.js +59 -0
- data/node_modules/dc/node_modules/d3/src/geom/voronoi/red-black.js +235 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/array.js +19 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/ease.js +111 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/hcl.js +20 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/hsl.js +20 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/index.js +14 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/interpolate.js +26 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/lab.js +17 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/number.js +6 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/object.js +25 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/rgb.js +20 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/round.js +6 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/string.js +54 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/transform.js +59 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/uninterpolate.js +9 -0
- data/node_modules/dc/node_modules/d3/src/interpolate/zoom.js +53 -0
- data/node_modules/dc/node_modules/d3/src/layout/bundle.js +59 -0
- data/node_modules/dc/node_modules/d3/src/layout/chord.js +157 -0
- data/node_modules/dc/node_modules/d3/src/layout/cluster.js +92 -0
- data/node_modules/dc/node_modules/d3/src/layout/force.js +372 -0
- data/node_modules/dc/node_modules/d3/src/layout/hierarchy.js +136 -0
- data/node_modules/dc/node_modules/d3/src/layout/histogram.js +110 -0
- data/node_modules/dc/node_modules/d3/src/layout/index.js +13 -0
- data/node_modules/dc/node_modules/d3/src/layout/layout.js +1 -0
- data/node_modules/dc/node_modules/d3/src/layout/pack.js +211 -0
- data/node_modules/dc/node_modules/d3/src/layout/partition.js +51 -0
- data/node_modules/dc/node_modules/d3/src/layout/pie.js +78 -0
- data/node_modules/dc/node_modules/d3/src/layout/stack.js +247 -0
- data/node_modules/dc/node_modules/d3/src/layout/tree.js +240 -0
- data/node_modules/dc/node_modules/d3/src/layout/treemap.js +229 -0
- data/node_modules/dc/node_modules/d3/src/locale/ca-ES.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/de-CH.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/de-DE.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/en-CA.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/en-GB.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/en-US.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/es-ES.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/fi-FI.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/fr-CA.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/fr-FR.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/he-IL.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/hu-HU.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/it-IT.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/ja-JP.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/ko-KR.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/locale.js +9 -0
- data/node_modules/dc/node_modules/d3/src/locale/mk-MK.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/nl-NL.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/number-format.js +155 -0
- data/node_modules/dc/node_modules/d3/src/locale/pl-PL.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/pt-BR.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/ru-RU.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/sv-SE.js +16 -0
- data/node_modules/dc/node_modules/d3/src/locale/time-format.js +370 -0
- data/node_modules/dc/node_modules/d3/src/locale/time-scale.js +0 -0
- data/node_modules/dc/node_modules/d3/src/locale/zh-CN.js +16 -0
- data/node_modules/dc/node_modules/d3/src/math/abs.js +1 -0
- data/node_modules/dc/node_modules/d3/src/math/adder.js +34 -0
- data/node_modules/dc/node_modules/d3/src/math/index.js +2 -0
- data/node_modules/dc/node_modules/d3/src/math/number.js +7 -0
- data/node_modules/dc/node_modules/d3/src/math/random.js +34 -0
- data/node_modules/dc/node_modules/d3/src/math/transform.js +64 -0
- data/node_modules/dc/node_modules/d3/src/math/trigonometry.js +44 -0
- data/node_modules/dc/node_modules/d3/src/scale/bilinear.js +7 -0
- data/node_modules/dc/node_modules/d3/src/scale/category.js +58 -0
- data/node_modules/dc/node_modules/d3/src/scale/identity.js +33 -0
- data/node_modules/dc/node_modules/d3/src/scale/index.js +11 -0
- data/node_modules/dc/node_modules/d3/src/scale/linear.js +160 -0
- data/node_modules/dc/node_modules/d3/src/scale/log.js +92 -0
- data/node_modules/dc/node_modules/d3/src/scale/nice.js +30 -0
- data/node_modules/dc/node_modules/d3/src/scale/ordinal.js +102 -0
- data/node_modules/dc/node_modules/d3/src/scale/polylinear.js +24 -0
- data/node_modules/dc/node_modules/d3/src/scale/pow.js +57 -0
- data/node_modules/dc/node_modules/d3/src/scale/quantile.js +55 -0
- data/node_modules/dc/node_modules/d3/src/scale/quantize.js +44 -0
- data/node_modules/dc/node_modules/d3/src/scale/scale.js +10 -0
- data/node_modules/dc/node_modules/d3/src/scale/sqrt.js +6 -0
- data/node_modules/dc/node_modules/d3/src/scale/threshold.js +36 -0
- data/node_modules/dc/node_modules/d3/src/selection/append.js +28 -0
- data/node_modules/dc/node_modules/d3/src/selection/attr.js +62 -0
- data/node_modules/dc/node_modules/d3/src/selection/call.js +8 -0
- data/node_modules/dc/node_modules/d3/src/selection/classed.js +76 -0
- data/node_modules/dc/node_modules/d3/src/selection/data.js +117 -0
- data/node_modules/dc/node_modules/d3/src/selection/datum.js +7 -0
- data/node_modules/dc/node_modules/d3/src/selection/each.js +16 -0
- data/node_modules/dc/node_modules/d3/src/selection/empty.js +5 -0
- data/node_modules/dc/node_modules/d3/src/selection/enter-insert.js +20 -0
- data/node_modules/dc/node_modules/d3/src/selection/enter-select.js +27 -0
- data/node_modules/dc/node_modules/d3/src/selection/enter.js +21 -0
- data/node_modules/dc/node_modules/d3/src/selection/filter.js +28 -0
- data/node_modules/dc/node_modules/d3/src/selection/html.js +10 -0
- data/node_modules/dc/node_modules/d3/src/selection/index.js +1 -0
- data/node_modules/dc/node_modules/d3/src/selection/insert.js +9 -0
- data/node_modules/dc/node_modules/d3/src/selection/interrupt.js +27 -0
- data/node_modules/dc/node_modules/d3/src/selection/node.js +11 -0
- data/node_modules/dc/node_modules/d3/src/selection/on.js +106 -0
- data/node_modules/dc/node_modules/d3/src/selection/order.js +13 -0
- data/node_modules/dc/node_modules/d3/src/selection/property.js +43 -0
- data/node_modules/dc/node_modules/d3/src/selection/remove.js +13 -0
- data/node_modules/dc/node_modules/d3/src/selection/select.js +32 -0
- data/node_modules/dc/node_modules/d3/src/selection/selectAll.js +27 -0
- data/node_modules/dc/node_modules/d3/src/selection/selection.js +81 -0
- data/node_modules/dc/node_modules/d3/src/selection/size.js +7 -0
- data/node_modules/dc/node_modules/d3/src/selection/sort.js +15 -0
- data/node_modules/dc/node_modules/d3/src/selection/style.js +59 -0
- data/node_modules/dc/node_modules/d3/src/selection/text.js +10 -0
- data/node_modules/dc/node_modules/d3/src/selection/transition.js +21 -0
- data/node_modules/dc/node_modules/d3/src/start.js +2 -0
- data/node_modules/dc/node_modules/d3/src/svg/arc.js +292 -0
- data/node_modules/dc/node_modules/d3/src/svg/area-radial.js +14 -0
- data/node_modules/dc/node_modules/d3/src/svg/area.js +121 -0
- data/node_modules/dc/node_modules/d3/src/svg/axis.js +160 -0
- data/node_modules/dc/node_modules/d3/src/svg/brush.js +429 -0
- data/node_modules/dc/node_modules/d3/src/svg/chord.js +90 -0
- data/node_modules/dc/node_modules/d3/src/svg/diagonal-radial.js +27 -0
- data/node_modules/dc/node_modules/d3/src/svg/diagonal.js +43 -0
- data/node_modules/dc/node_modules/d3/src/svg/index.js +12 -0
- data/node_modules/dc/node_modules/d3/src/svg/line-radial.js +27 -0
- data/node_modules/dc/node_modules/d3/src/svg/line.js +432 -0
- data/node_modules/dc/node_modules/d3/src/svg/svg.js +1 -0
- data/node_modules/dc/node_modules/d3/src/svg/symbol.js +105 -0
- data/node_modules/dc/node_modules/d3/src/time/day.js +21 -0
- data/node_modules/dc/node_modules/d3/src/time/format-iso.js +19 -0
- data/node_modules/dc/node_modules/d3/src/time/format-utc.js +3 -0
- data/node_modules/dc/node_modules/d3/src/time/format.js +4 -0
- data/node_modules/dc/node_modules/d3/src/time/hour.js +14 -0
- data/node_modules/dc/node_modules/d3/src/time/index.js +14 -0
- data/node_modules/dc/node_modules/d3/src/time/interval.js +71 -0
- data/node_modules/dc/node_modules/d3/src/time/minute.js +13 -0
- data/node_modules/dc/node_modules/d3/src/time/month.js +16 -0
- data/node_modules/dc/node_modules/d3/src/time/scale-utc.js +25 -0
- data/node_modules/dc/node_modules/d3/src/time/scale.js +155 -0
- data/node_modules/dc/node_modules/d3/src/time/second.js +13 -0
- data/node_modules/dc/node_modules/d3/src/time/time.js +33 -0
- data/node_modules/dc/node_modules/d3/src/time/week.js +31 -0
- data/node_modules/dc/node_modules/d3/src/time/year.js +16 -0
- data/node_modules/dc/node_modules/d3/src/transition/attr.js +58 -0
- data/node_modules/dc/node_modules/d3/src/transition/delay.js +10 -0
- data/node_modules/dc/node_modules/d3/src/transition/duration.js +10 -0
- data/node_modules/dc/node_modules/d3/src/transition/each.js +26 -0
- data/node_modules/dc/node_modules/d3/src/transition/ease.js +10 -0
- data/node_modules/dc/node_modules/d3/src/transition/filter.js +22 -0
- data/node_modules/dc/node_modules/d3/src/transition/index.js +1 -0
- data/node_modules/dc/node_modules/d3/src/transition/remove.js +9 -0
- data/node_modules/dc/node_modules/d3/src/transition/select.js +28 -0
- data/node_modules/dc/node_modules/d3/src/transition/selectAll.js +31 -0
- data/node_modules/dc/node_modules/d3/src/transition/style.js +53 -0
- data/node_modules/dc/node_modules/d3/src/transition/subtransition.js +25 -0
- data/node_modules/dc/node_modules/d3/src/transition/text.js +11 -0
- data/node_modules/dc/node_modules/d3/src/transition/transition.js +161 -0
- data/node_modules/dc/node_modules/d3/src/transition/tween.js +17 -0
- data/node_modules/dc/node_modules/d3/src/xhr/html.js +12 -0
- data/node_modules/dc/node_modules/d3/src/xhr/index.js +5 -0
- data/node_modules/dc/node_modules/d3/src/xhr/json.js +9 -0
- data/node_modules/dc/node_modules/d3/src/xhr/text.js +5 -0
- data/node_modules/dc/node_modules/d3/src/xhr/xhr.js +126 -0
- data/node_modules/dc/node_modules/d3/src/xhr/xml.js +5 -0
- data/node_modules/dc/regression/inject-serializer.js +6 -0
- data/node_modules/dc/regression/stock-regression-test.js +140 -0
- data/node_modules/dc/spec/bar-chart-spec.js +1230 -0
- data/node_modules/dc/spec/base-mixin-spec.js +611 -0
- data/node_modules/dc/spec/biggish-data-spec.js +136 -0
- data/node_modules/dc/spec/box-plot-spec.js +211 -0
- data/node_modules/dc/spec/bubble-chart-spec.js +450 -0
- data/node_modules/dc/spec/bubble-overlay-spec.js +102 -0
- data/node_modules/dc/spec/color-spec.js +89 -0
- data/node_modules/dc/spec/composite-chart-spec.js +691 -0
- data/node_modules/dc/spec/coordinate-grid-chart-spec.js +962 -0
- data/node_modules/dc/spec/core-spec.js +301 -0
- data/node_modules/dc/spec/data-addition-spec.js +122 -0
- data/node_modules/dc/spec/data-count-spec.js +180 -0
- data/node_modules/dc/spec/data-grid-spec.js +124 -0
- data/node_modules/dc/spec/data-table-spec.js +251 -0
- data/node_modules/dc/spec/event-spec.js +41 -0
- data/node_modules/dc/spec/filter-dates-spec.js +92 -0
- data/node_modules/dc/spec/filters-spec.js +140 -0
- data/node_modules/dc/spec/geo-choropleth-chart-spec.js +225 -0
- data/node_modules/dc/spec/heatmap-spec.js +363 -0
- data/node_modules/dc/spec/helpers/custom_matchers.js +213 -0
- data/node_modules/dc/spec/helpers/fixtures.js +81 -0
- data/node_modules/dc/spec/helpers/geoFixtures.js +113 -0
- data/node_modules/dc/spec/helpers/load-jsreporter.js +37 -0
- data/node_modules/dc/spec/helpers/spec-helper.js +53 -0
- data/node_modules/dc/spec/legend-spec.js +266 -0
- data/node_modules/dc/spec/line-chart-spec.js +709 -0
- data/node_modules/dc/spec/logger-spec.js +80 -0
- data/node_modules/dc/spec/number-display-spec.js +168 -0
- data/node_modules/dc/spec/pie-chart-spec.js +677 -0
- data/node_modules/dc/spec/row-chart-spec.js +362 -0
- data/node_modules/dc/spec/scatter-plot-spec.js +336 -0
- data/node_modules/dc/spec/series-chart-spec.js +133 -0
- data/node_modules/dc/spec/utils-spec.js +110 -0
- data/node_modules/dc/src/banner.js +2 -0
- data/node_modules/dc/src/bar-chart.js +374 -0
- data/node_modules/dc/src/base-mixin.js +1478 -0
- data/node_modules/dc/src/box-plot.js +240 -0
- data/node_modules/dc/src/bubble-chart.js +177 -0
- data/node_modules/dc/src/bubble-mixin.js +244 -0
- data/node_modules/dc/src/bubble-overlay.js +207 -0
- data/node_modules/dc/src/cap-mixin.js +151 -0
- data/node_modules/dc/src/color-mixin.js +172 -0
- data/node_modules/dc/src/composite-chart.js +544 -0
- data/node_modules/dc/src/coordinate-grid-mixin.js +1300 -0
- data/node_modules/dc/src/core.js +425 -0
- data/node_modules/dc/src/d3.box.js +317 -0
- data/node_modules/dc/src/data-count.js +110 -0
- data/node_modules/dc/src/data-grid.js +243 -0
- data/node_modules/dc/src/data-table.js +419 -0
- data/node_modules/dc/src/errors.js +28 -0
- data/node_modules/dc/src/events.js +37 -0
- data/node_modules/dc/src/filters.js +124 -0
- data/node_modules/dc/src/footer.js +35 -0
- data/node_modules/dc/src/geo-choropleth-chart.js +279 -0
- data/node_modules/dc/src/heatmap.js +378 -0
- data/node_modules/dc/src/legend.js +277 -0
- data/node_modules/dc/src/line-chart.js +504 -0
- data/node_modules/dc/src/logger.js +40 -0
- data/node_modules/dc/src/margin-mixin.js +44 -0
- data/node_modules/dc/src/number-display.js +141 -0
- data/node_modules/dc/src/pie-chart.js +571 -0
- data/node_modules/dc/src/row-chart.js +425 -0
- data/node_modules/dc/src/scatter-plot.js +338 -0
- data/node_modules/dc/src/series-chart.js +192 -0
- data/node_modules/dc/src/stack-mixin.js +319 -0
- data/node_modules/dc/src/utils.js +290 -0
- data/node_modules/dc/web/docs/html/scripts/docstrap.lib.js +11 -0
- data/node_modules/dc/web/docs/html/scripts/fulltext-search-ui.js +89 -0
- data/node_modules/dc/web/docs/html/scripts/fulltext-search.js +36 -0
- data/node_modules/dc/web/docs/html/scripts/lunr.min.js +7 -0
- data/node_modules/dc/web/docs/html/scripts/prettify/jquery.min.js +6 -0
- data/node_modules/dc/web/docs/html/scripts/prettify/lang-css.js +21 -0
- data/node_modules/dc/web/docs/html/scripts/prettify/prettify.js +496 -0
- data/node_modules/dc/web/docs/html/scripts/sunlight.js +1157 -0
- data/node_modules/dc/web/docs/html/scripts/toc.js +203 -0
- data/node_modules/dc/web/ep/list.js +106 -0
- data/node_modules/dc/web/examples/lysenko-interval-tree.js +447 -0
- data/node_modules/dc/web/highlighter/shAutoloader.js +17 -0
- data/node_modules/dc/web/highlighter/shBrushJScript.js +52 -0
- data/node_modules/dc/web/highlighter/shBrushXml.js +69 -0
- data/node_modules/dc/web/highlighter/shCore.js +17 -0
- data/node_modules/dc/web/js/colorbrewer.js +1 -0
- data/node_modules/dc/web/js/crossfilter.js +1401 -0
- data/node_modules/dc/web/js/d3.js +9554 -0
- data/node_modules/dc/web/js/dc.js +10477 -0
- data/node_modules/dc/web/js/dc.min.js +23 -0
- data/node_modules/dc/web/js/env-data.js +218 -0
- data/node_modules/dc/web/js/jasmine-jsreporter.js +394 -0
- data/node_modules/dc/web/stock.js +685 -0
- data/node_modules/dc/web/transitions/transition-test.js +45 -0
- data/node_modules/jquery/dist/jquery.js +9814 -0
- data/node_modules/jquery/dist/jquery.min.js +4 -0
- data/node_modules/jquery/external/sizzle/dist/sizzle.js +2143 -0
- data/node_modules/jquery/external/sizzle/dist/sizzle.min.js +3 -0
- data/node_modules/jquery/src/ajax.js +845 -0
- data/node_modules/jquery/src/ajax/jsonp.js +100 -0
- data/node_modules/jquery/src/ajax/load.js +83 -0
- data/node_modules/jquery/src/ajax/parseJSON.js +13 -0
- data/node_modules/jquery/src/ajax/parseXML.js +27 -0
- data/node_modules/jquery/src/ajax/script.js +68 -0
- data/node_modules/jquery/src/ajax/var/location.js +3 -0
- data/node_modules/jquery/src/ajax/var/nonce.js +5 -0
- data/node_modules/jquery/src/ajax/var/rquery.js +3 -0
- data/node_modules/jquery/src/ajax/xhr.js +167 -0
- data/node_modules/jquery/src/attributes.js +11 -0
- data/node_modules/jquery/src/attributes/attr.js +142 -0
- data/node_modules/jquery/src/attributes/classes.js +177 -0
- data/node_modules/jquery/src/attributes/prop.js +125 -0
- data/node_modules/jquery/src/attributes/support.js +36 -0
- data/node_modules/jquery/src/attributes/val.js +177 -0
- data/node_modules/jquery/src/callbacks.js +232 -0
- data/node_modules/jquery/src/core.js +494 -0
- data/node_modules/jquery/src/core/access.js +65 -0
- data/node_modules/jquery/src/core/init.js +134 -0
- data/node_modules/jquery/src/core/parseHTML.js +41 -0
- data/node_modules/jquery/src/core/ready.js +103 -0
- data/node_modules/jquery/src/core/var/rsingleTag.js +5 -0
- data/node_modules/jquery/src/css.js +502 -0
- data/node_modules/jquery/src/css/addGetHookIf.js +24 -0
- data/node_modules/jquery/src/css/adjustCSS.js +65 -0
- data/node_modules/jquery/src/css/curCSS.js +60 -0
- data/node_modules/jquery/src/css/defaultDisplay.js +72 -0
- data/node_modules/jquery/src/css/hiddenVisibleSelectors.js +18 -0
- data/node_modules/jquery/src/css/showHide.js +48 -0
- data/node_modules/jquery/src/css/support.js +121 -0
- data/node_modules/jquery/src/css/var/cssExpand.js +3 -0
- data/node_modules/jquery/src/css/var/getStyles.js +15 -0
- data/node_modules/jquery/src/css/var/isHidden.js +16 -0
- data/node_modules/jquery/src/css/var/rmargin.js +3 -0
- data/node_modules/jquery/src/css/var/rnumnonpx.js +5 -0
- data/node_modules/jquery/src/css/var/swap.js +24 -0
- data/node_modules/jquery/src/data.js +187 -0
- data/node_modules/jquery/src/data/Data.js +200 -0
- data/node_modules/jquery/src/data/var/acceptData.js +18 -0
- data/node_modules/jquery/src/data/var/dataPriv.js +5 -0
- data/node_modules/jquery/src/data/var/dataUser.js +5 -0
- data/node_modules/jquery/src/deferred.js +158 -0
- data/node_modules/jquery/src/deprecated.js +32 -0
- data/node_modules/jquery/src/dimensions.js +54 -0
- data/node_modules/jquery/src/effects.js +629 -0
- data/node_modules/jquery/src/effects/Tween.js +121 -0
- data/node_modules/jquery/src/effects/animatedSelector.js +13 -0
- data/node_modules/jquery/src/event.js +711 -0
- data/node_modules/jquery/src/event/ajax.js +20 -0
- data/node_modules/jquery/src/event/alias.js +27 -0
- data/node_modules/jquery/src/event/focusin.js +53 -0
- data/node_modules/jquery/src/event/support.js +9 -0
- data/node_modules/jquery/src/event/trigger.js +183 -0
- data/node_modules/jquery/src/exports/amd.js +24 -0
- data/node_modules/jquery/src/exports/global.js +26 -0
- data/node_modules/jquery/src/intro.js +44 -0
- data/node_modules/jquery/src/jquery.js +37 -0
- data/node_modules/jquery/src/manipulation.js +481 -0
- data/node_modules/jquery/src/manipulation/_evalUrl.js +20 -0
- data/node_modules/jquery/src/manipulation/buildFragment.js +102 -0
- data/node_modules/jquery/src/manipulation/getAll.js +21 -0
- data/node_modules/jquery/src/manipulation/setGlobalEval.js +20 -0
- data/node_modules/jquery/src/manipulation/support.js +33 -0
- data/node_modules/jquery/src/manipulation/var/rcheckableType.js +3 -0
- data/node_modules/jquery/src/manipulation/var/rscriptType.js +3 -0
- data/node_modules/jquery/src/manipulation/var/rtagName.js +3 -0
- data/node_modules/jquery/src/manipulation/wrapMap.js +27 -0
- data/node_modules/jquery/src/offset.js +218 -0
- data/node_modules/jquery/src/outro.js +2 -0
- data/node_modules/jquery/src/queue.js +143 -0
- data/node_modules/jquery/src/queue/delay.js +22 -0
- data/node_modules/jquery/src/selector-native.js +211 -0
- data/node_modules/jquery/src/selector-sizzle.js +14 -0
- data/node_modules/jquery/src/selector.js +1 -0
- data/node_modules/jquery/src/serialize.js +125 -0
- data/node_modules/jquery/src/traversing.js +175 -0
- data/node_modules/jquery/src/traversing/findFilter.js +100 -0
- data/node_modules/jquery/src/traversing/var/dir.js +20 -0
- data/node_modules/jquery/src/traversing/var/rneedsContext.js +6 -0
- data/node_modules/jquery/src/traversing/var/siblings.js +15 -0
- data/node_modules/jquery/src/var/arr.js +3 -0
- data/node_modules/jquery/src/var/class2type.js +5 -0
- data/node_modules/jquery/src/var/concat.js +5 -0
- data/node_modules/jquery/src/var/document.js +3 -0
- data/node_modules/jquery/src/var/documentElement.js +5 -0
- data/node_modules/jquery/src/var/hasOwn.js +5 -0
- data/node_modules/jquery/src/var/indexOf.js +5 -0
- data/node_modules/jquery/src/var/pnum.js +3 -0
- data/node_modules/jquery/src/var/push.js +5 -0
- data/node_modules/jquery/src/var/rcssNum.js +7 -0
- data/node_modules/jquery/src/var/rnotwhite.js +3 -0
- data/node_modules/jquery/src/var/slice.js +5 -0
- data/node_modules/jquery/src/var/support.js +5 -0
- data/node_modules/jquery/src/var/toString.js +5 -0
- data/node_modules/jquery/src/wrap.js +79 -0
- data/target/mdarray_sol.jar +0 -0
- data/test/jx/test_complete.rb +35 -0
- data/test/jx/test_js.rb +543 -0
- data/test/jx/test_proxy_array.rb +239 -0
- data/test/jx/test_proxy_hash.rb +160 -0
- data/test/jx/test_proxy_lambda.rb +80 -0
- data/test/jx/test_rb_js_compat.rb +135 -0
- data/test/jx/test_style_sheets.rb +90 -0
- data/test/mdarray/test_mdarray.rb +75 -0
- data/util/cacert.pem +4095 -0
- data/util/download.rb +256 -0
- data/vendor/jxbrowser-6.8.jar +0 -0
- data/vendor/licence.jar +0 -0
- data/version.rb +2 -0
- 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
|
+
})();
|