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,28 @@
|
|
|
1
|
+
dc.errors = {};
|
|
2
|
+
|
|
3
|
+
dc.errors.Exception = function (msg) {
|
|
4
|
+
var _msg = msg || 'Unexpected internal error';
|
|
5
|
+
|
|
6
|
+
this.message = _msg;
|
|
7
|
+
|
|
8
|
+
this.toString = function () {
|
|
9
|
+
return _msg;
|
|
10
|
+
};
|
|
11
|
+
this.stack = (new Error()).stack;
|
|
12
|
+
};
|
|
13
|
+
dc.errors.Exception.prototype = Object.create(Error.prototype);
|
|
14
|
+
dc.errors.Exception.prototype.constructor = dc.errors.Exception;
|
|
15
|
+
|
|
16
|
+
dc.errors.InvalidStateException = function () {
|
|
17
|
+
dc.errors.Exception.apply(this, arguments);
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
dc.errors.InvalidStateException.prototype = Object.create(dc.errors.Exception.prototype);
|
|
21
|
+
dc.errors.InvalidStateException.prototype.constructor = dc.errors.InvalidStateException;
|
|
22
|
+
|
|
23
|
+
dc.errors.BadArgumentException = function () {
|
|
24
|
+
dc.errors.Exception.apply(this, arguments);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
dc.errors.BadArgumentException.prototype = Object.create(dc.errors.Exception.prototype);
|
|
28
|
+
dc.errors.BadArgumentException.prototype.constructor = dc.errors.BadArgumentException;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
dc.events = {
|
|
2
|
+
current: null
|
|
3
|
+
};
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* This function triggers a throttled event function with a specified delay (in milli-seconds). Events
|
|
7
|
+
* that are triggered repetitively due to user interaction such brush dragging might flood the library
|
|
8
|
+
* and invoke more renders than can be executed in time. Using this function to wrap your event
|
|
9
|
+
* function allows the library to smooth out the rendering by throttling events and only responding to
|
|
10
|
+
* the most recent event.
|
|
11
|
+
* @name events.trigger
|
|
12
|
+
* @memberof dc
|
|
13
|
+
* @example
|
|
14
|
+
* chart.on('renderlet', function(chart) {
|
|
15
|
+
* // smooth the rendering through event throttling
|
|
16
|
+
* dc.events.trigger(function(){
|
|
17
|
+
* // focus some other chart to the range selected by user on this chart
|
|
18
|
+
* someOtherChart.focus(chart.filter());
|
|
19
|
+
* });
|
|
20
|
+
* })
|
|
21
|
+
* @param {Function} closure
|
|
22
|
+
* @param {Number} [delay]
|
|
23
|
+
*/
|
|
24
|
+
dc.events.trigger = function (closure, delay) {
|
|
25
|
+
if (!delay) {
|
|
26
|
+
closure();
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
dc.events.current = closure;
|
|
31
|
+
|
|
32
|
+
setTimeout(function () {
|
|
33
|
+
if (closure === dc.events.current) {
|
|
34
|
+
closure();
|
|
35
|
+
}
|
|
36
|
+
}, delay);
|
|
37
|
+
};
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The dc.js filters are functions which are passed into crossfilter to chose which records will be
|
|
3
|
+
* accumulated to produce values for the charts. In the crossfilter model, any filters applied on one
|
|
4
|
+
* dimension will affect all the other dimensions but not that one. dc always applies a filter
|
|
5
|
+
* function to the dimension; the function combines multiple filters and if any of them accept a
|
|
6
|
+
* record, it is filtered in.
|
|
7
|
+
*
|
|
8
|
+
* These filter constructors are used as appropriate by the various charts to implement brushing. We
|
|
9
|
+
* mention below which chart uses which filter. In some cases, many instances of a filter will be added.
|
|
10
|
+
*
|
|
11
|
+
* Each of the dc.js filters is an object with the following properties:
|
|
12
|
+
* * `isFiltered` - a function that returns true if a value is within the filter
|
|
13
|
+
* * `filterType` - a string identifying the filter, here the name of the constructor
|
|
14
|
+
*
|
|
15
|
+
* Currently these filter objects are also arrays, but this is not a requirement. Custom filters
|
|
16
|
+
* can be used as long as they have the properties above.
|
|
17
|
+
* @namespace filters
|
|
18
|
+
* @memberof dc
|
|
19
|
+
* @type {{}}
|
|
20
|
+
*/
|
|
21
|
+
dc.filters = {};
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* RangedFilter is a filter which accepts keys between `low` and `high`. It is used to implement X
|
|
25
|
+
* axis brushing for the {@link dc.coordinateGridMixin coordinate grid charts}.
|
|
26
|
+
*
|
|
27
|
+
* Its `filterType` is 'RangedFilter'
|
|
28
|
+
* @name RangedFilter
|
|
29
|
+
* @memberof dc.filters
|
|
30
|
+
* @param {Number} low
|
|
31
|
+
* @param {Number} high
|
|
32
|
+
* @return {Array<Number>}
|
|
33
|
+
* @constructor
|
|
34
|
+
*/
|
|
35
|
+
dc.filters.RangedFilter = function (low, high) {
|
|
36
|
+
var range = new Array(low, high);
|
|
37
|
+
range.isFiltered = function (value) {
|
|
38
|
+
return value >= this[0] && value < this[1];
|
|
39
|
+
};
|
|
40
|
+
range.filterType = 'RangedFilter';
|
|
41
|
+
|
|
42
|
+
return range;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* TwoDimensionalFilter is a filter which accepts a single two-dimensional value. It is used by the
|
|
47
|
+
* {@link dc.heatMap heat map chart} to include particular cells as they are clicked. (Rows and columns are
|
|
48
|
+
* filtered by filtering all the cells in the row or column.)
|
|
49
|
+
*
|
|
50
|
+
* Its `filterType` is 'TwoDimensionalFilter'
|
|
51
|
+
* @name TwoDimensionalFilter
|
|
52
|
+
* @memberof dc.filters
|
|
53
|
+
* @param {Array<Number>} filter
|
|
54
|
+
* @return {Array<Number>}
|
|
55
|
+
* @constructor
|
|
56
|
+
*/
|
|
57
|
+
dc.filters.TwoDimensionalFilter = function (filter) {
|
|
58
|
+
if (filter === null) { return null; }
|
|
59
|
+
|
|
60
|
+
var f = filter;
|
|
61
|
+
f.isFiltered = function (value) {
|
|
62
|
+
return value.length && value.length === f.length &&
|
|
63
|
+
value[0] === f[0] && value[1] === f[1];
|
|
64
|
+
};
|
|
65
|
+
f.filterType = 'TwoDimensionalFilter';
|
|
66
|
+
|
|
67
|
+
return f;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* The RangedTwoDimensionalFilter allows filtering all values which fit within a rectangular
|
|
72
|
+
* region. It is used by the {@link dc.scatterPlot scatter plot} to implement rectangular brushing.
|
|
73
|
+
*
|
|
74
|
+
* It takes two two-dimensional points in the form `[[x1,y1],[x2,y2]]`, and normalizes them so that
|
|
75
|
+
* `x1 <= x2` and `y1 <= y2`. It then returns a filter which accepts any points which are in the
|
|
76
|
+
* rectangular range including the lower values but excluding the higher values.
|
|
77
|
+
*
|
|
78
|
+
* If an array of two values are given to the RangedTwoDimensionalFilter, it interprets the values as
|
|
79
|
+
* two x coordinates `x1` and `x2` and returns a filter which accepts any points for which `x1 <= x <
|
|
80
|
+
* x2`.
|
|
81
|
+
*
|
|
82
|
+
* Its `filterType` is 'RangedTwoDimensionalFilter'
|
|
83
|
+
* @name RangedTwoDimensionalFilter
|
|
84
|
+
* @memberof dc.filters
|
|
85
|
+
* @param {Array<Array<Number>>} filter
|
|
86
|
+
* @return {Array<Array<Number>>}
|
|
87
|
+
* @constructor
|
|
88
|
+
*/
|
|
89
|
+
dc.filters.RangedTwoDimensionalFilter = function (filter) {
|
|
90
|
+
if (filter === null) { return null; }
|
|
91
|
+
|
|
92
|
+
var f = filter;
|
|
93
|
+
var fromBottomLeft;
|
|
94
|
+
|
|
95
|
+
if (f[0] instanceof Array) {
|
|
96
|
+
fromBottomLeft = [
|
|
97
|
+
[Math.min(filter[0][0], filter[1][0]), Math.min(filter[0][1], filter[1][1])],
|
|
98
|
+
[Math.max(filter[0][0], filter[1][0]), Math.max(filter[0][1], filter[1][1])]
|
|
99
|
+
];
|
|
100
|
+
} else {
|
|
101
|
+
fromBottomLeft = [[filter[0], -Infinity], [filter[1], Infinity]];
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
f.isFiltered = function (value) {
|
|
105
|
+
var x, y;
|
|
106
|
+
|
|
107
|
+
if (value instanceof Array) {
|
|
108
|
+
if (value.length !== 2) {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
x = value[0];
|
|
112
|
+
y = value[1];
|
|
113
|
+
} else {
|
|
114
|
+
x = value;
|
|
115
|
+
y = fromBottomLeft[0][1];
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
return x >= fromBottomLeft[0][0] && x < fromBottomLeft[1][0] &&
|
|
119
|
+
y >= fromBottomLeft[0][1] && y < fromBottomLeft[1][1];
|
|
120
|
+
};
|
|
121
|
+
f.filterType = 'RangedTwoDimensionalFilter';
|
|
122
|
+
|
|
123
|
+
return f;
|
|
124
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// Renamed functions
|
|
2
|
+
|
|
3
|
+
dc.abstractBubbleChart = dc.bubbleMixin;
|
|
4
|
+
dc.baseChart = dc.baseMixin;
|
|
5
|
+
dc.capped = dc.capMixin;
|
|
6
|
+
dc.colorChart = dc.colorMixin;
|
|
7
|
+
dc.coordinateGridChart = dc.coordinateGridMixin;
|
|
8
|
+
dc.marginable = dc.marginMixin;
|
|
9
|
+
dc.stackableChart = dc.stackMixin;
|
|
10
|
+
|
|
11
|
+
// Expose d3 and crossfilter, so that clients in browserify
|
|
12
|
+
// case can obtain them if they need them.
|
|
13
|
+
dc.d3 = d3;
|
|
14
|
+
dc.crossfilter = crossfilter;
|
|
15
|
+
|
|
16
|
+
return dc;}
|
|
17
|
+
if(typeof define === "function" && define.amd) {
|
|
18
|
+
define(["d3", "crossfilter"], _dc);
|
|
19
|
+
} else if(typeof module === "object" && module.exports) {
|
|
20
|
+
var _d3 = require('d3');
|
|
21
|
+
var _crossfilter = require('crossfilter2');
|
|
22
|
+
// When using npm + browserify, 'crossfilter' is a function,
|
|
23
|
+
// since package.json specifies index.js as main function, and it
|
|
24
|
+
// does special handling. When using bower + browserify,
|
|
25
|
+
// there's no main in bower.json (in fact, there's no bower.json),
|
|
26
|
+
// so we need to fix it.
|
|
27
|
+
if (typeof _crossfilter !== "function") {
|
|
28
|
+
_crossfilter = _crossfilter.crossfilter;
|
|
29
|
+
}
|
|
30
|
+
module.exports = _dc(_d3, _crossfilter);
|
|
31
|
+
} else {
|
|
32
|
+
this.dc = _dc(d3, crossfilter);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
)();
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The geo choropleth chart is designed as an easy way to create a crossfilter driven choropleth map
|
|
3
|
+
* from GeoJson data. This chart implementation was inspired by
|
|
4
|
+
* {@link http://bl.ocks.org/4060606 the great d3 choropleth example}.
|
|
5
|
+
*
|
|
6
|
+
* Examples:
|
|
7
|
+
* - {@link http://dc-js.github.com/dc.js/vc/index.html US Venture Capital Landscape 2011}
|
|
8
|
+
* @class geoChoroplethChart
|
|
9
|
+
* @memberof dc
|
|
10
|
+
* @mixes dc.colorMixin
|
|
11
|
+
* @mixes dc.baseMixin
|
|
12
|
+
* @example
|
|
13
|
+
* // create a choropleth chart under '#us-chart' element using the default global chart group
|
|
14
|
+
* var chart1 = dc.geoChoroplethChart('#us-chart');
|
|
15
|
+
* // create a choropleth chart under '#us-chart2' element using chart group A
|
|
16
|
+
* var chart2 = dc.compositeChart('#us-chart2', '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.geoChoroplethChart}
|
|
23
|
+
*/
|
|
24
|
+
dc.geoChoroplethChart = function (parent, chartGroup) {
|
|
25
|
+
var _chart = dc.colorMixin(dc.baseMixin({}));
|
|
26
|
+
|
|
27
|
+
_chart.colorAccessor(function (d) {
|
|
28
|
+
return d || 0;
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
var _geoPath = d3.geo.path();
|
|
32
|
+
var _projectionFlag;
|
|
33
|
+
|
|
34
|
+
var _geoJsons = [];
|
|
35
|
+
|
|
36
|
+
_chart._doRender = function () {
|
|
37
|
+
_chart.resetSvg();
|
|
38
|
+
for (var layerIndex = 0; layerIndex < _geoJsons.length; ++layerIndex) {
|
|
39
|
+
var states = _chart.svg().append('g')
|
|
40
|
+
.attr('class', 'layer' + layerIndex);
|
|
41
|
+
|
|
42
|
+
var regionG = states.selectAll('g.' + geoJson(layerIndex).name)
|
|
43
|
+
.data(geoJson(layerIndex).data)
|
|
44
|
+
.enter()
|
|
45
|
+
.append('g')
|
|
46
|
+
.attr('class', geoJson(layerIndex).name);
|
|
47
|
+
|
|
48
|
+
regionG
|
|
49
|
+
.append('path')
|
|
50
|
+
.attr('fill', 'white')
|
|
51
|
+
.attr('d', _geoPath);
|
|
52
|
+
|
|
53
|
+
regionG.append('title');
|
|
54
|
+
|
|
55
|
+
plotData(layerIndex);
|
|
56
|
+
}
|
|
57
|
+
_projectionFlag = false;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
function plotData (layerIndex) {
|
|
61
|
+
var data = generateLayeredData();
|
|
62
|
+
|
|
63
|
+
if (isDataLayer(layerIndex)) {
|
|
64
|
+
var regionG = renderRegionG(layerIndex);
|
|
65
|
+
|
|
66
|
+
renderPaths(regionG, layerIndex, data);
|
|
67
|
+
|
|
68
|
+
renderTitle(regionG, layerIndex, data);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
function generateLayeredData () {
|
|
73
|
+
var data = {};
|
|
74
|
+
var groupAll = _chart.data();
|
|
75
|
+
for (var i = 0; i < groupAll.length; ++i) {
|
|
76
|
+
data[_chart.keyAccessor()(groupAll[i])] = _chart.valueAccessor()(groupAll[i]);
|
|
77
|
+
}
|
|
78
|
+
return data;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function isDataLayer (layerIndex) {
|
|
82
|
+
return geoJson(layerIndex).keyAccessor;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function renderRegionG (layerIndex) {
|
|
86
|
+
var regionG = _chart.svg()
|
|
87
|
+
.selectAll(layerSelector(layerIndex))
|
|
88
|
+
.classed('selected', function (d) {
|
|
89
|
+
return isSelected(layerIndex, d);
|
|
90
|
+
})
|
|
91
|
+
.classed('deselected', function (d) {
|
|
92
|
+
return isDeselected(layerIndex, d);
|
|
93
|
+
})
|
|
94
|
+
.attr('class', function (d) {
|
|
95
|
+
var layerNameClass = geoJson(layerIndex).name;
|
|
96
|
+
var regionClass = dc.utils.nameToId(geoJson(layerIndex).keyAccessor(d));
|
|
97
|
+
var baseClasses = layerNameClass + ' ' + regionClass;
|
|
98
|
+
if (isSelected(layerIndex, d)) {
|
|
99
|
+
baseClasses += ' selected';
|
|
100
|
+
}
|
|
101
|
+
if (isDeselected(layerIndex, d)) {
|
|
102
|
+
baseClasses += ' deselected';
|
|
103
|
+
}
|
|
104
|
+
return baseClasses;
|
|
105
|
+
});
|
|
106
|
+
return regionG;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
function layerSelector (layerIndex) {
|
|
110
|
+
return 'g.layer' + layerIndex + ' g.' + geoJson(layerIndex).name;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
function isSelected (layerIndex, d) {
|
|
114
|
+
return _chart.hasFilter() && _chart.hasFilter(getKey(layerIndex, d));
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
function isDeselected (layerIndex, d) {
|
|
118
|
+
return _chart.hasFilter() && !_chart.hasFilter(getKey(layerIndex, d));
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
function getKey (layerIndex, d) {
|
|
122
|
+
return geoJson(layerIndex).keyAccessor(d);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
function geoJson (index) {
|
|
126
|
+
return _geoJsons[index];
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
function renderPaths (regionG, layerIndex, data) {
|
|
130
|
+
var paths = regionG
|
|
131
|
+
.select('path')
|
|
132
|
+
.attr('fill', function () {
|
|
133
|
+
var currentFill = d3.select(this).attr('fill');
|
|
134
|
+
if (currentFill) {
|
|
135
|
+
return currentFill;
|
|
136
|
+
}
|
|
137
|
+
return 'none';
|
|
138
|
+
})
|
|
139
|
+
.on('click', function (d) {
|
|
140
|
+
return _chart.onClick(d, layerIndex);
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
dc.transition(paths, _chart.transitionDuration()).attr('fill', function (d, i) {
|
|
144
|
+
return _chart.getColor(data[geoJson(layerIndex).keyAccessor(d)], i);
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
_chart.onClick = function (d, layerIndex) {
|
|
149
|
+
var selectedRegion = geoJson(layerIndex).keyAccessor(d);
|
|
150
|
+
dc.events.trigger(function () {
|
|
151
|
+
_chart.filter(selectedRegion);
|
|
152
|
+
_chart.redrawGroup();
|
|
153
|
+
});
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
function renderTitle (regionG, layerIndex, data) {
|
|
157
|
+
if (_chart.renderTitle()) {
|
|
158
|
+
regionG.selectAll('title').text(function (d) {
|
|
159
|
+
var key = getKey(layerIndex, d);
|
|
160
|
+
var value = data[key];
|
|
161
|
+
return _chart.title()({key: key, value: value});
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
_chart._doRedraw = function () {
|
|
167
|
+
for (var layerIndex = 0; layerIndex < _geoJsons.length; ++layerIndex) {
|
|
168
|
+
plotData(layerIndex);
|
|
169
|
+
if (_projectionFlag) {
|
|
170
|
+
_chart.svg().selectAll('g.' + geoJson(layerIndex).name + ' path').attr('d', _geoPath);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
_projectionFlag = false;
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* **mandatory**
|
|
178
|
+
*
|
|
179
|
+
* Use this function to insert a new GeoJson map layer. This function can be invoked multiple times
|
|
180
|
+
* if you have multiple GeoJson data layers to render on top of each other. If you overlay multiple
|
|
181
|
+
* layers with the same name the new overlay will override the existing one.
|
|
182
|
+
* @method overlayGeoJson
|
|
183
|
+
* @memberof dc.geoChoroplethChart
|
|
184
|
+
* @instance
|
|
185
|
+
* @see {@link http://geojson.org/ GeoJSON}
|
|
186
|
+
* @see {@link https://github.com/mbostock/topojson/wiki TopoJSON}
|
|
187
|
+
* @see {@link https://github.com/mbostock/topojson/wiki/API-Reference#feature topojson.feature}
|
|
188
|
+
* @example
|
|
189
|
+
* // insert a layer for rendering US states
|
|
190
|
+
* chart.overlayGeoJson(statesJson.features, 'state', function(d) {
|
|
191
|
+
* return d.properties.name;
|
|
192
|
+
* });
|
|
193
|
+
* @param {geoJson} json - a geojson feed
|
|
194
|
+
* @param {String} name - name of the layer
|
|
195
|
+
* @param {Function} keyAccessor - accessor function used to extract 'key' from the GeoJson data. The key extracted by
|
|
196
|
+
* this function should match the keys returned by the crossfilter groups.
|
|
197
|
+
* @return {dc.geoChoroplethChart}
|
|
198
|
+
*/
|
|
199
|
+
_chart.overlayGeoJson = function (json, name, keyAccessor) {
|
|
200
|
+
for (var i = 0; i < _geoJsons.length; ++i) {
|
|
201
|
+
if (_geoJsons[i].name === name) {
|
|
202
|
+
_geoJsons[i].data = json;
|
|
203
|
+
_geoJsons[i].keyAccessor = keyAccessor;
|
|
204
|
+
return _chart;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
_geoJsons.push({name: name, data: json, keyAccessor: keyAccessor});
|
|
208
|
+
return _chart;
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Set custom geo projection function. See the available [d3 geo projection
|
|
213
|
+
* functions](https://github.com/mbostock/d3/wiki/Geo-Projections).
|
|
214
|
+
* @method projection
|
|
215
|
+
* @memberof dc.geoChoroplethChart
|
|
216
|
+
* @instance
|
|
217
|
+
* @see {@link https://github.com/mbostock/d3/wiki/Geo-Projections d3.geo.projection}
|
|
218
|
+
* @see {@link https://github.com/d3/d3-geo-projection Extended d3.geo.projection}
|
|
219
|
+
* @param {d3.projection} [projection=d3.geo.albersUsa()]
|
|
220
|
+
* @return {dc.geoChoroplethChart}
|
|
221
|
+
*/
|
|
222
|
+
_chart.projection = function (projection) {
|
|
223
|
+
_geoPath.projection(projection);
|
|
224
|
+
_projectionFlag = true;
|
|
225
|
+
return _chart;
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Returns all GeoJson layers currently registered with this chart. The returned array is a
|
|
230
|
+
* reference to this chart's internal data structure, so any modification to this array will also
|
|
231
|
+
* modify this chart's internal registration.
|
|
232
|
+
* @method geoJsons
|
|
233
|
+
* @memberof dc.geoChoroplethChart
|
|
234
|
+
* @instance
|
|
235
|
+
* @return {Array<{name:String, data: Object, accessor: Function}>}
|
|
236
|
+
*/
|
|
237
|
+
_chart.geoJsons = function () {
|
|
238
|
+
return _geoJsons;
|
|
239
|
+
};
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* Returns the {@link https://github.com/mbostock/d3/wiki/Geo-Paths#path d3.geo.path} object used to
|
|
243
|
+
* render the projection and features. Can be useful for figuring out the bounding box of the
|
|
244
|
+
* feature set and thus a way to calculate scale and translation for the projection.
|
|
245
|
+
* @method geoPath
|
|
246
|
+
* @memberof dc.geoChoroplethChart
|
|
247
|
+
* @instance
|
|
248
|
+
* @see {@link https://github.com/mbostock/d3/wiki/Geo-Paths#path d3.geo.path}
|
|
249
|
+
* @return {d3.geo.path}
|
|
250
|
+
*/
|
|
251
|
+
_chart.geoPath = function () {
|
|
252
|
+
return _geoPath;
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Remove a GeoJson layer from this chart by name
|
|
257
|
+
* @method removeGeoJson
|
|
258
|
+
* @memberof dc.geoChoroplethChart
|
|
259
|
+
* @instance
|
|
260
|
+
* @param {String} name
|
|
261
|
+
* @return {dc.geoChoroplethChart}
|
|
262
|
+
*/
|
|
263
|
+
_chart.removeGeoJson = function (name) {
|
|
264
|
+
var geoJsons = [];
|
|
265
|
+
|
|
266
|
+
for (var i = 0; i < _geoJsons.length; ++i) {
|
|
267
|
+
var layer = _geoJsons[i];
|
|
268
|
+
if (layer.name !== name) {
|
|
269
|
+
geoJsons.push(layer);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
_geoJsons = geoJsons;
|
|
274
|
+
|
|
275
|
+
return _chart;
|
|
276
|
+
};
|
|
277
|
+
|
|
278
|
+
return _chart.anchor(parent, chartGroup);
|
|
279
|
+
};
|