Skip to content

Commit

Permalink
Cleanup part I - moved source into src direction, build in lib. Updat…
Browse files Browse the repository at this point in the history
…ed readme. Fixed some console warnings.
  • Loading branch information
pjm17971 committed Sep 3, 2015
1 parent 3045503 commit 27ffc28
Show file tree
Hide file tree
Showing 72 changed files with 523 additions and 20,448 deletions.
253 changes: 253 additions & 0 deletions .eslintrc
@@ -0,0 +1,253 @@
{
"parser": "babel-eslint",
"arrowFunctions": true,
"blockBindings": true,
"classes": true,
"defaultParams": true,
"destructuring": true,
"forOf": true,
"generators": true,
"modules": true,
"objectLiteralComputedProperties": true,
"objectLiteralShorthandMethods": true,
"objectLiteralShorthandProperties": true,
"spread": true,
"templateStrings": true,
"env": {
"node": true,
"es6": true
},
"rules": {
"comma-dangle": 0,
"no-cond-assign": 2,
"no-console": 0,
"no-constant-condition": 2,
"no-control-regex": 0,
"no-debugger": 0,
"no-dupe-args": 2,
"no-dupe-keys": 2,
"no-duplicate-case": 2,
"no-empty": 2,
"no-empty-class": 2,
"no-ex-assign": 2,
"no-extra-boolean-cast": 2,
"no-extra-parens": 0,
"no-extra-semi": 2,
"no-func-assign": 2,
"no-inner-declarations": [
2,
"functions"
],
"no-invalid-regexp": 2,
"no-irregular-whitespace": 2,
"no-negated-in-lhs": 2,
"no-obj-calls": 2,
"no-regex-spaces": 2,
"no-reserved-keys": 0,
"no-sparse-arrays": 2,
"no-unreachable": 2,
"use-isnan": 2,
"valid-jsdoc": 0,
"valid-typeof": 2,
"block-scoped-var": 0,
"complexity": 0,
"consistent-return": 0,
"curly": [
2,
"all"
],
"default-case": 0,
"dot-notation": 0,
"eqeqeq": 2,
"guard-for-in": 2,
"no-alert": 2,
"no-caller": 2,
"no-div-regex": 2,
"no-empty-label": 2,
"no-eq-null": 0,
"no-eval": 2,
"no-extend-native": 2,
"no-extra-bind": 2,
"no-fallthrough": 2,
"no-floating-decimal": 2,
"no-implied-eval": 2,
"no-iterator": 2,
"no-labels": 0,
"no-lone-blocks": 0,
"no-loop-func": 0,
"no-multi-spaces": 2,
"no-multi-str": 2,
"no-native-reassign": 0,
"no-new": 2,
"no-new-func": 0,
"no-new-wrappers": 2,
"no-octal": 2,
"no-octal-escape": 2,
"no-param-reassign": 2,
"no-process-env": 0,
"no-proto": 2,
"no-redeclare": 2,
"no-return-assign": 2,
"no-script-url": 2,
"no-self-compare": 0,
"no-sequences": 2,
"no-throw-literal": 2,
"no-unused-expressions": 2,
"no-void": 2,
"no-warning-comments": 0,
"no-with": 2,
"radix": 2,
"vars-on-top": 0,
"wrap-iife": 2,
"yoda": [
2,
"never",
{
"exceptRange": true
}
],
"strict": 0,
"no-catch-shadow": 2,
"no-delete-var": 2,
"no-label-var": 2,
"no-shadow": 2,
"no-shadow-restricted-names": 2,
"no-undef": 2,
"no-undef-init": 2,
"no-undefined": 0,
"no-unused-vars": [
2,
{
"vars": "all",
"args": "after-used"
}
],
"no-use-before-define": 0,
"handle-callback-err": [
2,
"error"
],
"no-mixed-requires": [
2,
true
],
"no-new-require": 2,
"no-path-concat": 2,
"no-process-exit": 0,
"no-restricted-modules": 0,
"no-sync": 2,
"indent": 2,
"brace-style": [
2,
"1tbs",
{
"allowSingleLine": true
}
],
"camelcase": [
2,
{
"properties": "always"
}
],
"comma-spacing": 0,
"comma-style": [
2,
"last"
],
"consistent-this": 0,
"eol-last": 2,
"func-names": 0,
"func-style": 0,
"key-spacing": [
2,
{
"beforeColon": false,
"afterColon": true
}
],
"max-nested-callbacks": 0,
"new-cap": 0,
"new-parens": 2,
"newline-after-var": 0,
"no-array-constructor": 2,
"no-inline-comments": 0,
"no-lonely-if": 2,
"no-mixed-spaces-and-tabs": 2,
"no-multiple-empty-lines": 0,
"no-nested-ternary": 0,
"no-new-object": 2,
"no-spaced-func": 2,
"no-ternary": 0,
"no-trailing-spaces": 2,
"no-underscore-dangle": 0,
"no-wrap-func": 2,
"one-var": [
2,
"never"
],
"operator-assignment": [
2,
"always"
],
"padded-blocks": 0,
"quote-props": [
2,
"as-needed"
],
"quotes": [
2,
"double"
],
"semi": [
2,
"always"
],
"semi-spacing": [
2,
{
"before": false,
"after": true
}
],
"sort-vars": 0,
"space-after-keywords": [
2,
"always"
],
"space-before-blocks": [
2,
"always"
],
"space-before-function-paren": [
2,
{
"anonymous": "always",
"named": "never"
}
],
"space-in-brackets": 0,
"space-in-parens": 0,
"space-infix-ops": [
2,
{
"int32Hint": false
}
],
"space-return-throw-case": 2,
"space-unary-ops": [
2,
{
"words": true,
"nonwords": false
}
],
"spaced-line-comment": [
2,
"always"
],
"wrap-regex": 0,
"no-var": 0,
"max-len": [2, 80, 4]
}
}
1 change: 1 addition & 0 deletions .npmignore
@@ -1,6 +1,7 @@
lib/
!build/npm/lib
examples/
screenshots/
docs/
bin/
build/global
Expand Down
60 changes: 20 additions & 40 deletions README.md
@@ -1,10 +1,23 @@
This library contains a set of modular React components used for building flexible interactive charts. Low level elements are constructed using d3, while high level composability is provided by React. What's so special about this? Charts can be stacked as rows, overlayed on top of each other, or any combination, all in a highly declarative manner. Any number of axes can be provided. What's more, the whole thing can be panned and zoomed.
![Line chart](./screenshots/areachart.png)

This library contains a set of modular charting components used for building flexible interactive charts. It was built for React from the ground up, specifically to visualize timeseries data and network traffic data in particular. Low level elements are constructed using d3, while higher level composability is provided by React. Charts can be stacked as rows, overlayed on top of each other, or any combination, all in a highly declarative manner.

Current features of the library include:

* Declarative layout of charts using JSX
* Interactivity, including pan and zoom
* Add new chart types or overlays
* Multiple axis, multiple rows
* Line, area and scatter charts
* Brushing
* Timeseries tables
* Legends

Please see the examples for a feel for the library, or read on to get started.

Getting started
---------------

![Line chart](./examples/linecharts.png)

The charts library is intended to be used with npm and the built into your project with something like webpack.

npm install react-timeseries-charts --save
Expand Down Expand Up @@ -58,56 +71,23 @@ To specify a chart you also need to tell the chart code what time range to plot

where begin and end are times.

Supported Chart types
---------------------

The main charts we use are:

- **Area chart** - which may be stacked in both directions, making it possible to generate up/down charts which we use to show network traffic.

- **Line charts**

- **Scatter charts**

- **Bar charts** (experimental)

- **Events** (very experimental)
Developing
----------

In addition the library has the following features:

- **Baselines**

- **Brushes** for pan and zoom of the chart

- **Trackers** for hover indication

- **Legends**

Examples
--------

The repo contains an examples website. Within a cloned repo, you first need to run:
The repo contains the examples website. This is very helpful in developing new functionality. Within a cloned repo, you first need to run:

npm install

This will install the development dependencies into your node_modules directory.

You can then start up the test server, as well as automatic source building, by doing:

npm start
npm start-website

Then, point your browser to:

[http://localhost:8080/webpack-dev-server/](http://localhost:8080/webpack-dev-server/)

From now on, if you change the source code in the examples or lib/, webpack will rebuild the examples bundle and the browser will refresh itself. Errors will also be reported in the browser window.

NOTE: Both webpack and webpack-dev-server probably need to be installed globally for the cli to these tools to work. Also, if your system can't find these (i.e. if you install globally and then type `webpack` in the shell and get `command not found`) then this is because the global install location is not in your path. To find the location use this to find the prefix:

npm config list | grep prefix

You path should include: prefix + "/bin" for installed cli.

Licence
-------

Expand Down

0 comments on commit 27ffc28

Please sign in to comment.