diff --git a/.gitignore b/.gitignore
index da7f696..6d4d5a0 100755
--- a/.gitignore
+++ b/.gitignore
@@ -30,6 +30,8 @@ logs
*.log
node_modules
+npmdist
+
# Runtime data
pids
*.pid
@@ -39,4 +41,5 @@ pids
# Build Folders
coverage/
+lib/
npm-debug.log*
diff --git a/.npmignore b/.npmignore
new file mode 100644
index 0000000..0538dcf
--- /dev/null
+++ b/.npmignore
@@ -0,0 +1,16 @@
+.idea
+*.iml
+node_modules
+coverage/
+*.log
+.babelrc
+.editorconfig
+.eslintrc
+.gitignore
+.travis.yml
+index.html
+karma.conf.js
+docs
+examples
+styles
+tests
diff --git a/npmdist/README.md b/npmdist/README.md
deleted file mode 100644
index 4385551..0000000
--- a/npmdist/README.md
+++ /dev/null
@@ -1,67 +0,0 @@
-# React Easy Chart
-
-
-
-## Introduction
-
-This set of graphing components aims to be the easiest and fastest way of implementing a graph within a React application.
-
-The graphs all have the following features:
-- Easy to set up with only a requirement for data to render a chart
-- Support realtime data feeds by reacting to data changes passed into the props automatically
-- Fast rendering by using React to minimise the changes to the DOM as a result of data or props changes
-- Configurable via props to allow features such as grids, width, height, axis and many more features to be added
-- Responsive and Reactive graphs to fit to any device
-- Interactive via mouse and click events allowing interesting applications to be built without graphing knowledge
-
-Under the hood we use the fantastic [D3](http://d3js.org/) to create and render the charts into SVG. D3 requires some learning and will ultimately provide more flexible charts. The aim of React Easy Chart is to avoid that learning and have a common set of charts that can be set up in minutes.
-
-We have concentrated on making an API that is consistent across a different set of graphs so allowing different graphs to be chosen for the same data set. Currently we provide a bar, line, area, scatter and pie chart.
-
-## Installation
-`npm install react-easy-chart --save`
-
-The chart component you wish to use can then be simply imported.
-Area chart:
-
-`import {AreaChart} from 'react-easy-chart';`
-
-Bar chart:
-
-`import {BarChart} from 'react-easy-chart';`
-
-Line chart:
-
-`import {LineChart} from 'react-easy-chart';`
-
-Pie chart:
-
-`import {PieChart} from 'react-easy-chart';`
-
-Scatter chart:
-
-`import {ScatterChart} from 'react-easy-chart';`
-
-Chart Legend:
-
-`import {Legend} from 'react-easy-chart';`
-
-
-## Documentation
-Each of the charts have had extensive documentation produced for them with working examples. These can be found at [http://rma-consulting.github.io/react-easy-chart/docs](http://rma-consulting.github.io/react-easy-chart/docs)
-
-## Contributing
-We welcome pull requests and forks of the current graph implementations. If you are able to follow the API we have set out and are developing a chart we currently do not have we would love to add to our existing library.
-
-## Background and Motivation
-The project started by trying to optimize D3 charts for React. After some reading and trial and error we came across this blog post [http://oli.me.uk/2015/09/09/d3-within-react-the-right-way/](http://oli.me.uk/2015/09/09/d3-within-react-the-right-way/)
-Oliver provided us with a solution that can utilize the react shadow DOM by creating a faux DOM to attach the SVG elements to. This is in our opinion the best current solution.
-
-The complexity of developing D3 based graphs intermittently often means that even experienced JavaScript developers can take days getting back up to speed for making the most simple of Graphs. The React Easy Chart Library is flexible and robust enough to avoid needing to remember D3 syntax when simple graphs are required.
-
-
-### Version
-[](https://www.npmjs.com/package/react-easy-chart)
-
-### Build Status
-[](https://travis-ci.org/rma-consulting/react-easy-chart)
diff --git a/npmdist/area-chart/index.js b/npmdist/area-chart/index.js
deleted file mode 100644
index 54a2bce..0000000
--- a/npmdist/area-chart/index.js
+++ /dev/null
@@ -1,497 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-
-var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
-
-var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
-
-var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
-
-var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
-
-var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
-
-var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
-
-var _createClass2 = require('babel-runtime/helpers/createClass');
-
-var _createClass3 = _interopRequireDefault(_createClass2);
-
-var _inherits2 = require('babel-runtime/helpers/inherits');
-
-var _inherits3 = _interopRequireDefault(_inherits2);
-
-var _react = require('react');
-
-var _react2 = _interopRequireDefault(_react);
-
-var _reactFauxDom = require('react-faux-dom');
-
-var _shared = require('../shared');
-
-var _d = require('d3');
-
-var _radium = require('radium');
-
-var _lodash = require('lodash.merge');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-var _d3TimeFormat = require('d3-time-format');
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var dateParser = {};
-
-var AreaChart = function (_React$Component) {
- (0, _inherits3.default)(AreaChart, _React$Component);
- (0, _createClass3.default)(AreaChart, null, [{
- key: 'propTypes',
- get: function get() {
- return {
- data: _react2.default.PropTypes.array.isRequired,
- width: _react2.default.PropTypes.number,
- height: _react2.default.PropTypes.number,
- xType: _react2.default.PropTypes.string,
- yType: _react2.default.PropTypes.string,
- datePattern: _react2.default.PropTypes.string,
- interpolate: _react2.default.PropTypes.string,
- style: _react2.default.PropTypes.object,
- margin: _react2.default.PropTypes.object,
- axes: _react2.default.PropTypes.bool,
- grid: _react2.default.PropTypes.bool,
- verticalGrid: _react2.default.PropTypes.bool,
- xDomainRange: _react2.default.PropTypes.array,
- yDomainRange: _react2.default.PropTypes.array,
- areaColors: _react2.default.PropTypes.array,
- noAreaGradient: _react2.default.PropTypes.bool,
- tickTimeDisplayFormat: _react2.default.PropTypes.string,
- yTicks: _react2.default.PropTypes.number,
- xTicks: _react2.default.PropTypes.number,
- dataPoints: _react2.default.PropTypes.bool,
- axisLabels: _react2.default.PropTypes.shape({
- x: _react2.default.PropTypes.string,
- y: _react2.default.PropTypes.string
- }),
- yAxisOrientRight: _react2.default.PropTypes.bool,
- mouseOverHandler: _react2.default.PropTypes.func,
- mouseOutHandler: _react2.default.PropTypes.func,
- mouseMoveHandler: _react2.default.PropTypes.func,
- clickHandler: _react2.default.PropTypes.func
- };
- }
- }, {
- key: 'defaultProps',
- get: function get() {
- return {
- width: 200,
- height: 150,
- datePattern: '%d-%b-%y',
- interpolate: 'linear',
- axes: false,
- areaColors: [],
- xType: 'linear',
- yType: 'linear',
- axisLabels: {
- x: '',
- y: ''
- },
- mouseOverHandler: function mouseOverHandler() {},
- mouseOutHandler: function mouseOutHandler() {},
- mouseMoveHandler: function mouseMoveHandler() {},
- clickHandler: function clickHandler() {}
- };
- }
- }]);
-
- function AreaChart(props) {
- (0, _classCallCheck3.default)(this, AreaChart);
-
- var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(AreaChart).call(this, props));
-
- _this.uid = (0, _shared.createUniqueID)(props);
- return _this;
- }
-
- (0, _createClass3.default)(AreaChart, [{
- key: 'componentDidMount',
- value: function componentDidMount() {
- var ref = this.refs.areaChart;
- (0, _shared.createCircularTicks)(ref);
- }
- }, {
- key: 'componentDidUpdate',
- value: function componentDidUpdate() {
- var ref = this.refs.areaChart;
- (0, _shared.createCircularTicks)(ref);
- }
- }, {
- key: 'createSvgNode',
- value: function createSvgNode(_ref) {
- var m = _ref.m;
- var w = _ref.w;
- var h = _ref.h;
-
- var node = (0, _reactFauxDom.createElement)('svg');
- node.setAttribute('width', w + m.left + m.right);
- node.setAttribute('height', h + m.top + m.bottom);
- return node;
- }
- }, {
- key: 'createSvgRoot',
- value: function createSvgRoot(_ref2) {
- var node = _ref2.node;
- var m = _ref2.m;
-
- return (0, _d.select)(node).append('g').attr('transform', 'translate(' + m.left + ', ' + m.top + ')');
- }
- }, {
- key: 'createXAxis',
- value: function createXAxis(_ref3) {
- var root = _ref3.root;
- var m = _ref3.m;
- var w = _ref3.w;
- var h = _ref3.h;
- var x = _ref3.x;
- var _props = this.props;
- var xType = _props.xType;
- var label = _props.axisLabels.x;
- var xTicks = _props.xTicks;
- var grid = _props.grid;
- var verticalGrid = _props.verticalGrid;
- var tickTimeDisplayFormat = _props.tickTimeDisplayFormat;
- var yAxisOrientRight = _props.yAxisOrientRight;
-
-
- var axis = _d.svg.axis().scale(x).orient('bottom');
-
- if (xType === 'time' && tickTimeDisplayFormat) {
- axis.tickFormat(_d.time.format(tickTimeDisplayFormat));
- }
- if (grid && verticalGrid) {
- axis.tickSize(-h, 6).tickPadding(15);
- } else {
- axis.tickSize(0).tickPadding(15);
- }
-
- if (xTicks) {
- axis.ticks(xTicks);
- }
-
- var group = root.append('g').attr('class', 'x axis').attr('transform', 'translate(0, ' + h + ')');
-
- group.call(axis);
-
- if (label) {
- group.append('text').attr('class', 'label').attr('x', yAxisOrientRight ? 0 : w).attr('y', m.bottom - 10).style('text-anchor', yAxisOrientRight ? 'start' : 'end').text(label);
- }
- return axis;
- }
- }, {
- key: 'createYAxis',
- value: function createYAxis(_ref4) {
- var root = _ref4.root;
- var m = _ref4.m;
- var w = _ref4.w;
- var y = _ref4.y;
- var _props2 = this.props;
- var yType = _props2.yType;
- var label = _props2.axisLabels.y;
- var yTicks = _props2.yTicks;
- var grid = _props2.grid;
- var tickTimeDisplayFormat = _props2.tickTimeDisplayFormat;
- var yAxisOrientRight = _props2.yAxisOrientRight;
-
-
- var axis = _d.svg.axis().scale(y).orient(yAxisOrientRight ? 'right' : 'left');
-
- if (yType === 'time' && tickTimeDisplayFormat) {
- axis.tickFormat(_d.time.format(tickTimeDisplayFormat));
- }
-
- if (grid) {
- axis.tickSize(-w, 6).tickPadding(12);
- } else {
- axis.tickPadding(10);
- }
-
- if (yTicks) {
- axis.ticks(yTicks);
- }
-
- var group = root.append('g').attr('class', 'y axis').attr('transform', yAxisOrientRight ? 'translate(' + w + ', 0)' : 'translate(0, 0)');
-
- group.call(axis);
-
- if (label) {
- group.append('text').attr('class', 'label').attr('transform', 'rotate(-90)').attr('x', 0).attr('y', yAxisOrientRight ? -20 + m.right : 0 - m.left).attr('dy', '.9em').style('text-anchor', 'end').text(label);
- }
-
- return axis;
- }
- }, {
- key: 'createFill',
- value: function createFill(_ref5) {
- var node = _ref5.node;
- var colors = _ref5.colors;
-
- var uid = this.uid;
-
- colors.forEach(function (color, i) {
- var gradient = (0, _d.select)(node).append('defs').append('linearGradient').attr('id', 'gradient-' + i + '-' + uid).attr('x1', '0%').attr('x2', '0%').attr('y1', '40%').attr('y2', '100%');
-
- _shared.defaultStyles['.dot' + i] = { fill: color };
-
- gradient.append('stop').attr('offset', '0%').attr('style', 'stop-color:' + color + '; stop-opacity:0.6');
-
- gradient.append('stop').attr('offset', '100%').attr('style', 'stop-color:' + color + '; stop-opacity:0.4');
- });
- }
- }, {
- key: 'createAreaPathChart',
- value: function createAreaPathChart(_ref6) {
- var root = _ref6.root;
- var h = _ref6.h;
- var x = _ref6.x;
- var y = _ref6.y;
- var xValue = _ref6.xValue;
- var yValue = _ref6.yValue;
- var colors = _ref6.colors;
- var _props3 = this.props;
- var data = _props3.data;
- var interpolate = _props3.interpolate;
- var noAreaGradient = _props3.noAreaGradient;
-
-
- var uid = this.uid;
-
- var getFill = function getFill(d, i) {
- return noAreaGradient ? colors[i] : 'url(#gradient-' + i + '-' + uid + ')';
- };
-
- var getStroke = function getStroke(d, i) {
- return colors[i];
- };
-
- var areaPath = _d.svg.area().interpolate(interpolate).x(function (d) {
- return x(xValue(d));
- }).y0(h).y1(function (d) {
- return y(yValue(d));
- });
-
- var linePath = _d.svg.line().interpolate(interpolate).x(function (d) {
- return x(xValue(d));
- }).y(function (d) {
- return y(yValue(d));
- });
-
- var group = root.append('g').attr('class', 'areaChart');
-
- group.selectAll('path.area').data(data).enter().append('path').attr('class', 'area').style('fill', getFill).attr('d', areaPath);
-
- group.selectAll('path.line').data(data).enter().append('path').attr('class', 'line').style('stroke', getStroke).attr('d', linePath);
- }
- }, {
- key: 'createPoints',
- value: function createPoints(_ref7) {
- var _this2 = this;
-
- var root = _ref7.root;
- var x = _ref7.x;
- var y = _ref7.y;
- var colors = _ref7.colors;
- var _props4 = this.props;
- var data = _props4.data;
- var xType = _props4.xType;
- var yType = _props4.yType;
- var mouseOverHandler = _props4.mouseOverHandler;
- var mouseOutHandler = _props4.mouseOutHandler;
- var mouseMoveHandler = _props4.mouseMoveHandler;
- var clickHandler = _props4.clickHandler;
-
- /*
- * We don't really need to do this, but it
- * avoids obscure "this" below
- */
-
- var calculateDate = function calculateDate(v) {
- return _this2.parseDate(v);
- };
-
- var getStroke = function getStroke(d, i) {
- return colors[i];
- };
-
- /*
- * Creating the calculation functions
- */
- var calculateCX = function calculateCX(d) {
- return xType === 'time' ? x(calculateDate(d.x)) : x(d.x);
- };
-
- var calculateCY = function calculateCY(d) {
- return yType === 'time' ? y(calculateDate(d.y)) : y(d.y);
- };
-
- var mouseover = function mouseover(d) {
- return mouseOverHandler(d, _d.event);
- };
- var mouseout = function mouseout(d) {
- return mouseOutHandler(d, _d.event);
- };
- var mousemove = function mousemove(d) {
- return mouseMoveHandler(d, _d.event);
- };
- var click = function click(d) {
- return clickHandler(d, _d.event);
- };
-
- var group = root.append('g').attr('class', 'dataPoints');
-
- data.forEach(function (item) {
- item.forEach(function (d) {
- /*
- * Applying the calculation functions
- */
- group.datum(d).append('circle').attr('class', 'data-point').style('strokeWidth', '2px').style('stroke', getStroke).style('fill', 'white').attr('cx', calculateCX).attr('cy', calculateCY).on('mouseover', mouseover).on('mouseout', mouseout).on('mousemove', mousemove).on('click', click);
- });
- });
- }
- }, {
- key: 'createStyle',
- value: function createStyle() {
- var _props5 = this.props;
- var style = _props5.style;
- var grid = _props5.grid;
- var verticalGrid = _props5.verticalGrid;
- var yAxisOrientRight = _props5.yAxisOrientRight;
-
-
- var uid = this.uid;
- var scope = '.area-chart-' + uid;
- var axisStyles = (0, _shared.getAxisStyles)(grid, verticalGrid, yAxisOrientRight);
- var rules = (0, _lodash2.default)({}, _shared.defaultStyles, style, axisStyles);
-
- return _react2.default.createElement(_radium.Style, {
- scopeSelector: scope,
- rules: rules
- });
- }
- }, {
- key: 'parseDate',
- value: function parseDate(v) {
- var datePattern = this.props.datePattern;
-
-
- var datePatternParser = dateParser[datePattern] || (dateParser[datePattern] = (0, _d3TimeFormat.timeParse)(datePattern));
-
- return datePatternParser(v);
- }
- }, {
- key: 'calculateChartParameters',
- value: function calculateChartParameters() {
- var _this3 = this;
-
- var _props6 = this.props;
- var data = _props6.data;
- var xType = _props6.xType;
- var yType = _props6.yType;
- var axes = _props6.axes;
- var xDomainRange = _props6.xDomainRange;
- var yDomainRange = _props6.yDomainRange;
- var yAxisOrientRight = _props6.yAxisOrientRight;
- var areaColors = _props6.areaColors;
- var margin = _props6.margin;
- var width = _props6.width;
- var height = _props6.height;
-
- /*
- * We could "bind"!
- */
-
- var parseDate = function parseDate(v) {
- return _this3.parseDate(v);
- };
-
- /*
- * 'w' and 'h' are the width and height of the graph canvas
- * (excluding axes and other furniture)
- */
- var m = (0, _shared.calculateMargin)(axes, margin, yAxisOrientRight);
- var w = (0, _shared.reduce)(width, m.left, m.right);
- var h = (0, _shared.reduce)(height, m.top, m.bottom);
-
- var x = (0, _shared.createDomainRangeGenerator)('x', xDomainRange, data, xType, w, parseDate);
- var y = (0, _shared.createDomainRangeGenerator)('y', yDomainRange, data, yType, h, parseDate);
-
- var xValue = (0, _shared.createValueGenerator)('x', xType, parseDate);
- var yValue = (0, _shared.createValueGenerator)('y', yType, parseDate);
-
- var colors = areaColors.concat(_shared.defaultColors);
-
- var node = this.createSvgNode({ m: m, w: w, h: h });
- var root = this.createSvgRoot({ node: node, m: m });
-
- return {
- m: m,
- w: w,
- h: h,
- x: x,
- y: y,
- xValue: xValue,
- yValue: yValue,
- colors: colors,
- node: node,
- root: root
- };
- }
- }, {
- key: 'render',
- value: function render() {
- var _props7 = this.props;
- var axes = _props7.axes;
- var dataPoints = _props7.dataPoints;
- var noAreaGradient = _props7.noAreaGradient;
-
-
- var hasFill = !noAreaGradient;
- var p = this.calculateChartParameters();
-
- if (axes) {
- this.createXAxis(p);
-
- this.createYAxis(p);
- }
-
- if (hasFill) {
- this.createFill(p);
- }
-
- this.createAreaPathChart(p);
-
- if (dataPoints) {
- this.createPoints(p);
- }
-
- var uid = this.uid;
- var className = 'area-chart-' + uid;
- var node = p.node;
-
-
- return _react2.default.createElement(
- 'div',
- { ref: 'areaChart', className: className },
- this.createStyle(),
- node.toReact()
- );
- }
- }]);
- return AreaChart;
-}(_react2.default.Component);
-
-exports.default = AreaChart;
-module.exports = exports['default'];
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/npmdist/area-chart/index.js.map b/npmdist/area-chart/index.js.map
deleted file mode 100644
index 0364333..0000000
--- a/npmdist/area-chart/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../modules/area-chart/index.js"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import React from 'react';\nimport { createElement } from 'react-faux-dom';\nimport {\n createUniqueID,\n reduce,\n createValueGenerator,\n calculateMargin,\n createDomainRangeGenerator,\n defaultColors,\n defaultStyles,\n getAxisStyles,\n createCircularTicks\n} from '../shared';\nimport {\n event as lastEvent,\n select,\n svg,\n time } from 'd3';\nimport { Style } from 'radium';\nimport merge from 'lodash.merge';\nimport { timeParse as parse } from 'd3-time-format';\n\nconst dateParser = {};\n\nexport default class AreaChart extends React.Component {\n static get propTypes() {\n return {\n data: React.PropTypes.array.isRequired,\n width: React.PropTypes.number,\n height: React.PropTypes.number,\n xType: React.PropTypes.string,\n yType: React.PropTypes.string,\n datePattern: React.PropTypes.string,\n interpolate: React.PropTypes.string,\n style: React.PropTypes.object,\n margin: React.PropTypes.object,\n axes: React.PropTypes.bool,\n grid: React.PropTypes.bool,\n verticalGrid: React.PropTypes.bool,\n xDomainRange: React.PropTypes.array,\n yDomainRange: React.PropTypes.array,\n areaColors: React.PropTypes.array,\n noAreaGradient: React.PropTypes.bool,\n tickTimeDisplayFormat: React.PropTypes.string,\n yTicks: React.PropTypes.number,\n xTicks: React.PropTypes.number,\n dataPoints: React.PropTypes.bool,\n axisLabels: React.PropTypes.shape({\n x: React.PropTypes.string,\n y: React.PropTypes.string\n }),\n yAxisOrientRight: React.PropTypes.bool,\n mouseOverHandler: React.PropTypes.func,\n mouseOutHandler: React.PropTypes.func,\n mouseMoveHandler: React.PropTypes.func,\n clickHandler: React.PropTypes.func\n };\n }\n\n static get defaultProps() {\n return {\n width: 200,\n height: 150,\n datePattern: '%d-%b-%y',\n interpolate: 'linear',\n axes: false,\n areaColors: [],\n xType: 'linear',\n yType: 'linear',\n axisLabels: {\n x: '',\n y: ''\n },\n mouseOverHandler: () => {},\n mouseOutHandler: () => {},\n mouseMoveHandler: () => {},\n clickHandler: () => {}\n };\n }\n\n constructor(props) {\n super(props);\n this.uid = createUniqueID(props);\n }\n\n componentDidMount() {\n const ref = this.refs.areaChart;\n createCircularTicks(ref);\n }\n\n componentDidUpdate() {\n const ref = this.refs.areaChart;\n createCircularTicks(ref);\n }\n\n createSvgNode({ m, w, h }) {\n const node = createElement('svg');\n node.setAttribute('width', w + m.left + m.right);\n node.setAttribute('height', h + m.top + m.bottom);\n return node;\n }\n\n createSvgRoot({ node, m }) {\n return select(node)\n .append('g')\n .attr('transform', `translate(${m.left}, ${m.top})`);\n }\n\n createXAxis({ root, m, w, h, x }) {\n const {\n xType,\n axisLabels: { x: label },\n xTicks,\n grid,\n verticalGrid,\n tickTimeDisplayFormat,\n yAxisOrientRight\n } = this.props;\n\n const axis = svg.axis()\n .scale(x)\n .orient('bottom');\n\n if (xType === 'time' && tickTimeDisplayFormat) {\n axis\n .tickFormat(time.format(tickTimeDisplayFormat));\n }\n if (grid && verticalGrid) {\n axis\n .tickSize(-h, 6)\n .tickPadding(15);\n } else {\n axis\n .tickSize(0)\n .tickPadding(15);\n }\n\n if (xTicks) {\n axis\n .ticks(xTicks);\n }\n\n const group = root\n .append('g')\n .attr('class', 'x axis')\n .attr('transform', `translate(0, ${h})`);\n\n group\n .call(axis);\n\n if (label) {\n group\n .append('text')\n .attr('class', 'label')\n .attr('x',\n (yAxisOrientRight)\n ? 0\n : w)\n .attr('y', m.bottom - 10)\n .style('text-anchor',\n (yAxisOrientRight)\n ? 'start'\n : 'end')\n .text(label);\n }\n return axis;\n }\n\n createYAxis({ root, m, w, y }) {\n const {\n yType,\n axisLabels: { y: label },\n yTicks,\n grid,\n tickTimeDisplayFormat,\n yAxisOrientRight\n } = this.props;\n\n const axis = svg.axis()\n .scale(y)\n .orient(yAxisOrientRight ? 'right' : 'left');\n\n if (yType === 'time' && tickTimeDisplayFormat) {\n axis\n .tickFormat(time.format(tickTimeDisplayFormat));\n }\n\n if (grid) {\n axis\n .tickSize(-w, 6)\n .tickPadding(12);\n } else {\n axis\n .tickPadding(10);\n }\n\n if (yTicks) {\n axis\n .ticks(yTicks);\n }\n\n const group = root\n .append('g')\n .attr('class', 'y axis')\n .attr('transform',\n (yAxisOrientRight)\n ? `translate(${w}, 0)`\n : 'translate(0, 0)');\n\n group\n .call(axis);\n\n if (label) {\n group\n .append('text')\n .attr('class', 'label')\n .attr('transform', 'rotate(-90)')\n .attr('x', 0)\n .attr('y',\n (yAxisOrientRight)\n ? -20 + m.right\n : 0 - m.left)\n .attr('dy', '.9em')\n .style('text-anchor', 'end')\n .text(label);\n }\n\n return axis;\n }\n\n createFill({ node, colors }) {\n const uid = this.uid;\n\n colors.forEach((color, i) => {\n const gradient = select(node)\n .append('defs')\n .append('linearGradient')\n .attr('id', `gradient-${i}-${uid}`)\n .attr('x1', '0%')\n .attr('x2', '0%')\n .attr('y1', '40%')\n .attr('y2', '100%');\n\n defaultStyles[`.dot${i}`] = { fill: color };\n\n gradient\n .append('stop')\n .attr('offset', '0%')\n .attr('style', `stop-color:${color}; stop-opacity:0.6`);\n\n gradient\n .append('stop')\n .attr('offset', '100%')\n .attr('style', `stop-color:${color}; stop-opacity:0.4`);\n });\n }\n\n createAreaPathChart({ root, h, x, y, xValue, yValue, colors }) {\n const {\n data,\n interpolate,\n noAreaGradient\n } = this.props;\n\n const uid = this.uid;\n\n const getFill = (d, i) => (\n (noAreaGradient)\n ? colors[i]\n : `url(#gradient-${i}-${uid})`\n );\n\n const getStroke = (d, i) => colors[i];\n\n const areaPath = svg.area()\n .interpolate(interpolate)\n .x((d) => x(xValue(d)))\n .y0(h)\n .y1((d) => y(yValue(d)));\n\n const linePath = svg.line()\n .interpolate(interpolate)\n .x((d) => x(xValue(d)))\n .y((d) => y(yValue(d)));\n\n const group = root\n .append('g')\n .attr('class', 'areaChart');\n\n group\n .selectAll('path.area')\n .data(data)\n .enter()\n .append('path')\n .attr('class', 'area')\n .style('fill', getFill)\n .attr('d', areaPath);\n\n group\n .selectAll('path.line')\n .data(data)\n .enter()\n .append('path')\n .attr('class', 'line')\n .style('stroke', getStroke)\n .attr('d', linePath);\n }\n\n createPoints({ root, x, y, colors }) {\n const {\n data,\n xType,\n yType,\n mouseOverHandler,\n mouseOutHandler,\n mouseMoveHandler,\n clickHandler\n } = this.props;\n\n /*\n * We don't really need to do this, but it\n * avoids obscure \"this\" below\n */\n const calculateDate = (v) => this.parseDate(v);\n\n const getStroke = (d, i) => colors[i];\n\n /*\n * Creating the calculation functions\n */\n const calculateCX = (d) => (\n (xType === 'time')\n ? x(calculateDate(d.x))\n : x(d.x));\n\n const calculateCY = (d) => (\n (yType === 'time')\n ? y(calculateDate(d.y))\n : y(d.y));\n\n const mouseover = (d) => mouseOverHandler(d, lastEvent);\n const mouseout = (d) => mouseOutHandler(d, lastEvent);\n const mousemove = (d) => mouseMoveHandler(d, lastEvent);\n const click = (d) => clickHandler(d, lastEvent);\n\n const group = root\n .append('g')\n .attr('class', 'dataPoints');\n\n data.forEach((item) => {\n item.forEach((d) => {\n /*\n * Applying the calculation functions\n */\n group\n .datum(d)\n .append('circle')\n .attr('class', 'data-point')\n .style('strokeWidth', '2px')\n .style('stroke', getStroke)\n .style('fill', 'white')\n .attr('cx', calculateCX)\n .attr('cy', calculateCY)\n .on('mouseover', mouseover)\n .on('mouseout', mouseout)\n .on('mousemove', mousemove)\n .on('click', click);\n });\n });\n }\n\n createStyle() {\n const {\n style,\n grid,\n verticalGrid,\n yAxisOrientRight,\n } = this.props;\n\n const uid = this.uid;\n const scope = `.area-chart-${uid}`;\n const axisStyles = getAxisStyles(grid, verticalGrid, yAxisOrientRight);\n const rules = merge({}, defaultStyles, style, axisStyles);\n\n return (\n \n );\n }\n\n parseDate(v) {\n const {\n datePattern\n } = this.props;\n\n const datePatternParser = (\n dateParser[datePattern] || (\n dateParser[datePattern] = parse(datePattern)));\n\n return datePatternParser(v);\n }\n\n calculateChartParameters() {\n const {\n data,\n xType,\n yType,\n axes,\n xDomainRange,\n yDomainRange,\n yAxisOrientRight,\n areaColors,\n margin,\n width,\n height\n } = this.props;\n\n /*\n * We could \"bind\"!\n */\n const parseDate = (v) => this.parseDate(v);\n\n /*\n * 'w' and 'h' are the width and height of the graph canvas\n * (excluding axes and other furniture)\n */\n const m = calculateMargin(axes, margin, yAxisOrientRight);\n const w = reduce(width, m.left, m.right);\n const h = reduce(height, m.top, m.bottom);\n\n const x = createDomainRangeGenerator('x', xDomainRange, data, xType, w, parseDate);\n const y = createDomainRangeGenerator('y', yDomainRange, data, yType, h, parseDate);\n\n const xValue = createValueGenerator('x', xType, parseDate);\n const yValue = createValueGenerator('y', yType, parseDate);\n\n const colors = areaColors.concat(defaultColors);\n\n const node = this.createSvgNode({ m, w, h });\n const root = this.createSvgRoot({ node, m });\n\n return {\n m,\n w,\n h,\n x,\n y,\n xValue,\n yValue,\n colors,\n node,\n root\n };\n }\n\n render() {\n const {\n axes,\n dataPoints,\n noAreaGradient\n } = this.props;\n\n const hasFill = !noAreaGradient;\n const p = this.calculateChartParameters();\n\n if (axes) {\n this.createXAxis(p);\n\n this.createYAxis(p);\n }\n\n if (hasFill) {\n this.createFill(p);\n }\n\n this.createAreaPathChart(p);\n\n if (dataPoints) {\n this.createPoints(p);\n }\n\n const uid = this.uid;\n const className = `area-chart-${uid}`;\n const {\n node\n } = p;\n\n return (\n
\n {this.createStyle()}\n {node.toReact()}\n
\n );\n }\n}\n"]}
\ No newline at end of file
diff --git a/npmdist/bar-chart/index.js b/npmdist/bar-chart/index.js
deleted file mode 100644
index 307621b..0000000
--- a/npmdist/bar-chart/index.js
+++ /dev/null
@@ -1,520 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-
-var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
-
-var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
-
-var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
-
-var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
-
-var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
-
-var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
-
-var _createClass2 = require('babel-runtime/helpers/createClass');
-
-var _createClass3 = _interopRequireDefault(_createClass2);
-
-var _inherits2 = require('babel-runtime/helpers/inherits');
-
-var _inherits3 = _interopRequireDefault(_inherits2);
-
-var _react = require('react');
-
-var _react2 = _interopRequireDefault(_react);
-
-var _d3Scale = require('d3-scale');
-
-var _d = require('d3');
-
-var _shared = require('../shared');
-
-var _d3Array = require('d3-array');
-
-var _d3TimeFormat = require('d3-time-format');
-
-var _reactFauxDom = require('react-faux-dom');
-
-var _radium = require('radium');
-
-var _lodash = require('lodash.merge');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var dateParser = {};
-
-var colorScale = _d.scale.category20();
-
-var BarChart = function (_React$Component) {
- (0, _inherits3.default)(BarChart, _React$Component);
- (0, _createClass3.default)(BarChart, null, [{
- key: 'propTypes',
- get: function get() {
- return {
- data: _react2.default.PropTypes.array.isRequired,
- lineData: _react2.default.PropTypes.array,
- width: _react2.default.PropTypes.number,
- height: _react2.default.PropTypes.number,
- margin: _react2.default.PropTypes.object,
- mouseOverHandler: _react2.default.PropTypes.func,
- mouseOutHandler: _react2.default.PropTypes.func,
- mouseMoveHandler: _react2.default.PropTypes.func,
- clickHandler: _react2.default.PropTypes.func,
- interpolate: _react2.default.PropTypes.string,
- style: _react2.default.PropTypes.object,
- colorBars: _react2.default.PropTypes.bool,
- axes: _react2.default.PropTypes.bool,
- grid: _react2.default.PropTypes.bool,
- axisLabels: _react2.default.PropTypes.shape({
- x: _react2.default.PropTypes.string,
- y: _react2.default.PropTypes.string
- }),
- xType: _react2.default.PropTypes.string,
- yType: _react2.default.PropTypes.string,
- y2Type: _react2.default.PropTypes.string,
- xDomainRange: _react2.default.PropTypes.array,
- yDomainRange: _react2.default.PropTypes.array,
- datePattern: _react2.default.PropTypes.string,
- tickTimeDisplayFormat: _react2.default.PropTypes.string,
- yAxisOrientRight: _react2.default.PropTypes.bool,
- barWidth: _react2.default.PropTypes.number,
- xTickNumber: _react2.default.PropTypes.number,
- yTickNumber: _react2.default.PropTypes.number
- };
- }
- }, {
- key: 'defaultProps',
- get: function get() {
- return {
- lineData: [],
- width: 400,
- height: 200,
- barWidth: 10,
- axes: false,
- xType: 'text',
- yType: 'linear',
- y2Type: 'linear',
- interpolate: 'linear',
- mouseOverHandler: function mouseOverHandler() {},
- mouseOutHandler: function mouseOutHandler() {},
- mouseMoveHandler: function mouseMoveHandler() {},
- clickHandler: function clickHandler() {},
- datePattern: '%d-%b-%y',
- axisLabels: {
- x: '',
- y: ''
- }
- };
- }
- }]);
-
- function BarChart(props) {
- (0, _classCallCheck3.default)(this, BarChart);
-
- var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(BarChart).call(this, props));
-
- _this.uid = (0, _shared.createUniqueID)(props);
- return _this;
- }
-
- (0, _createClass3.default)(BarChart, [{
- key: 'componentDidMount',
- value: function componentDidMount() {
- var ref = this.refs.barChart;
- (0, _shared.createCircularTicks)(ref);
- }
- }, {
- key: 'componentDidUpdate',
- value: function componentDidUpdate() {
- var ref = this.refs.barChart;
- (0, _shared.createCircularTicks)(ref);
- }
- }, {
- key: 'createDomainRangeGenerator',
- value: function createDomainRangeGenerator(axesType, domainRange, data, type, length) {
- var _this2 = this;
-
- var dataIndex = axesType === 'x' ? 'x' : 'y';
- var barPadding = length / data.length > 40 ? 0.02 : 0.04;
- var parseDate = function parseDate(v) {
- return _this2.parseDate(v);
- };
- var axis = void 0;
- switch (type) {
- case 'text':
- axis = (0, _d3Scale.scaleBand)();
- axis.domain(data.map(function (d) {
- return d[dataIndex];
- })).range([0, length]).padding(barPadding);
- break;
- case 'linear':
- axis = (0, _d3Scale.scaleLinear)();
- axis.domain(Array.isArray(domainRange) ? domainRange // calculateDomainRange(domainRange, type, parseDate)
- : [0, (0, _d.max)(data, function (d) {
- return d[dataIndex];
- })]).range(axesType === 'x' ? [0, length] : [length, 0]);
- break;
- case 'time':
- axis = _d.time.scale();
- axis.domain(Array.isArray(domainRange) ? (0, _shared.calculateDomainRange)(domainRange, type, parseDate) : (0, _d3Array.extent)(data, function (d) {
- return parseDate(d[dataIndex]);
- })).range(axesType === 'x' ? [0, length] : [length, 0]);
- break;
- default:
- break;
- }
- return axis;
- }
- }, {
- key: 'defineColor',
- value: function defineColor(i, d, colorBars) {
- if (d.color) return d.color;
- if (colorBars) return colorScale(i);
- return null;
- }
- }, {
- key: 'createSvgNode',
- value: function createSvgNode(_ref) {
- var m = _ref.m;
- var w = _ref.w;
- var h = _ref.h;
-
- var node = (0, _reactFauxDom.createElement)('svg');
- node.setAttribute('width', w + m.left + m.right);
- node.setAttribute('height', h + m.top + m.bottom);
- return node;
- }
- }, {
- key: 'createSvgRoot',
- value: function createSvgRoot(_ref2) {
- var node = _ref2.node;
- var m = _ref2.m;
-
- return (0, _d.select)(node).append('g').attr('transform', 'translate(' + m.left + ', ' + m.top + ')');
- }
- }, {
- key: 'createXAxis',
- value: function createXAxis(_ref3) {
- var root = _ref3.root;
- var m = _ref3.m;
- var w = _ref3.w;
- var h = _ref3.h;
- var x = _ref3.x;
- var _props = this.props;
- var label = _props.axisLabels.x;
- var xType = _props.xType;
- var tickTimeDisplayFormat = _props.tickTimeDisplayFormat;
- var xTickNumber = _props.xTickNumber;
- var yAxisOrientRight = _props.yAxisOrientRight;
-
-
- var axis = _d.svg.axis().scale(x).orient('bottom');
-
- if (xType === 'time' && tickTimeDisplayFormat) {
- axis.tickFormat(_d.time.format(tickTimeDisplayFormat));
- }
-
- axis.tickSize(0).tickPadding(15);
-
- if (xTickNumber) {
- axis.ticks(xTickNumber);
- }
-
- var group = root.append('g').attr('class', 'x axis').attr('transform', 'translate(0, ' + h + ')');
-
- group.call(axis);
-
- if (label) {
- group.append('text').attr('class', 'label').attr('x', yAxisOrientRight ? 0 : w).attr('y', m.bottom - 10).style('text-anchor', yAxisOrientRight ? 'start' : 'end').text(label);
- }
- }
- }, {
- key: 'createYAxis',
- value: function createYAxis(_ref4) {
- var root = _ref4.root;
- var m = _ref4.m;
- var w = _ref4.w;
- var y = _ref4.y;
- var _props2 = this.props;
- var label = _props2.axisLabels.y;
- var yTickNumber = _props2.yTickNumber;
- var yAxisOrientRight = _props2.yAxisOrientRight;
- var grid = _props2.grid;
-
-
- var axis = _d.svg.axis().scale(y).orient(yAxisOrientRight ? 'right' : 'left');
-
- if (yTickNumber) {
- axis.ticks(yTickNumber);
- }
-
- if (grid) {
- axis.tickSize(-w, 6).tickPadding(12);
- } else {
- axis.tickPadding(10);
- }
-
- var group = root.append('g').attr('class', 'y axis');
-
- group.call(axis);
-
- if (label) {
- group.attr('transform', yAxisOrientRight ? 'translate(' + w + ', 0)' : 'translate(0, 0)').append('text').attr('class', 'label').attr('transform', 'rotate(-90)').attr('x', 0).attr('y', yAxisOrientRight ? -25 + m.right : 10 - m.left).attr('dy', '.9em').style('text-anchor', 'end').text(label);
- }
- }
- }, {
- key: 'createYAxis2',
- value: function createYAxis2(_ref5) {
- var root = _ref5.root;
- var m = _ref5.m;
- var w = _ref5.w;
- var h = _ref5.h;
- var _props3 = this.props;
- var lineData = _props3.lineData;
- var label = _props3.axisLabels.y2;
- var y2Type = _props3.y2Type;
- var yTickNumber = _props3.yTickNumber;
- var yAxisOrientRight = _props3.yAxisOrientRight;
- var grid = _props3.grid;
- var yDomainRange = _props3.yDomainRange;
-
-
- var y = this.createDomainRangeGenerator('y', yDomainRange, lineData, y2Type, h);
-
- var axis = _d.svg.axis().scale(y).orient(yAxisOrientRight ? 'left' : 'right');
-
- if (yTickNumber) {
- axis.ticks(yTickNumber);
- }
-
- if (grid) {
- axis.tickSize(-w, 6).tickPadding(12);
- } else {
- axis.tickPadding(10);
- }
-
- var group = root.append('g').attr('class', 'y axis');
-
- group.call(axis);
-
- if (label) {
- group.attr('transform', yAxisOrientRight ? 'translate(0, 0)' : 'translate(' + w + ', 0)').append('text').attr('class', 'label').attr('transform', 'rotate(-90)').attr('x', 0).attr('y', yAxisOrientRight ? 10 - m.left : -25 + m.right).attr('dy', '.9em').style('text-anchor', 'end').text(label);
- }
- }
- }, {
- key: 'createBarChart',
- value: function createBarChart(_ref6) {
- var _this3 = this;
-
- var root = _ref6.root;
- var h = _ref6.h;
- var x = _ref6.x;
- var y = _ref6.y;
- var _props4 = this.props;
- var data = _props4.data;
- var mouseOverHandler = _props4.mouseOverHandler;
- var mouseOutHandler = _props4.mouseOutHandler;
- var mouseMoveHandler = _props4.mouseMoveHandler;
- var clickHandler = _props4.clickHandler;
- var colorBars = _props4.colorBars;
- var xType = _props4.xType;
- var barWidth = _props4.barWidth;
-
-
- var calculateDate = function calculateDate(v) {
- return _this3.parseDate(v);
- };
- var calculateFill = function calculateFill(d, i) {
- return _this3.defineColor(i, d, colorBars);
- };
-
- var calculateX = function calculateX(d) {
- return xType === 'time' ? x(calculateDate(d.x)) : x(d.x);
- };
- var calculateY = function calculateY(d) {
- return y(d.y);
- };
- var calculateW = function calculateW() {
- return xType === 'text' ? x.bandwidth() : barWidth;
- };
- var calculateH = function calculateH(d) {
- return h - y(d.y);
- };
-
- var mouseover = function mouseover(d) {
- return mouseOverHandler(d, _d.event);
- };
- var mouseout = function mouseout(d) {
- return mouseOutHandler(d, _d.event);
- };
- var mousemove = function mousemove(d) {
- return mouseMoveHandler(d, _d.event);
- };
- var click = function click(d) {
- return clickHandler(d, _d.event);
- };
-
- var group = root.selectAll('rect') // '.bar'
- .data(data);
-
- group.enter().append('rect').attr('class', 'bar').style('fill', calculateFill).attr('x', calculateX).attr('y', calculateY).attr('width', calculateW).attr('height', calculateH).on('mouseover', mouseover).on('mouseout', mouseout).on('mousemove', mousemove).on('click', click);
-
- group.exit().remove();
- }
- }, {
- key: 'createLinePath',
- value: function createLinePath(_ref7) {
- var _this4 = this;
-
- var root = _ref7.root;
- var h = _ref7.h;
- var x = _ref7.x;
- var _props5 = this.props;
- var lineData = _props5.lineData;
- var xType = _props5.xType;
- var y2Type = _props5.y2Type;
- var interpolate = _props5.interpolate;
- var yDomainRange = _props5.yDomainRange;
-
-
- var parseDate = function parseDate(v) {
- return _this4.parseDate(v);
- };
-
- var y = this.createDomainRangeGenerator('y', yDomainRange, lineData, y2Type, h);
-
- var yValue = (0, _shared.createValueGenerator)('y', y2Type, parseDate);
- var xValue = (0, _shared.createValueGenerator)('x', xType, parseDate);
-
- var linePath = _d.svg.line().interpolate(interpolate).x(function (d) {
- return x(xValue(d));
- }).y(function (d) {
- return y(yValue(d));
- });
-
- root.append('path').datum(lineData).attr('class', 'line').attr('style', 'stroke: red').attr('d', linePath);
- }
- }, {
- key: 'createStyle',
- value: function createStyle() {
- var _props6 = this.props;
- var style = _props6.style;
- var yAxisOrientRight = _props6.yAxisOrientRight;
- var grid = _props6.grid;
-
-
- var uid = this.uid;
- var scope = '.bar-chart-' + uid;
- var axisStyles = (0, _shared.getAxisStyles)(grid, false, yAxisOrientRight);
- var rules = (0, _lodash2.default)({}, _shared.defaultStyles, style, axisStyles);
-
- return _react2.default.createElement(_radium.Style, {
- scopeSelector: scope,
- rules: rules
- });
- }
- }, {
- key: 'hasLineData',
- value: function hasLineData() {
- var lineData = this.props.lineData;
-
-
- return lineData.length > 0;
- }
- }, {
- key: 'parseDate',
- value: function parseDate(v) {
- var datePattern = this.props.datePattern;
-
-
- var datePatternParser = dateParser[datePattern] || (dateParser[datePattern] = (0, _d3TimeFormat.timeParse)(datePattern));
-
- return datePatternParser(v);
- }
- }, {
- key: 'calculateChartParameters',
- value: function calculateChartParameters() {
- var _props7 = this.props;
- var data = _props7.data;
- var axes = _props7.axes;
- var xType = _props7.xType;
- var yType = _props7.yType;
- var yAxisOrientRight = _props7.yAxisOrientRight;
- var xDomainRange = _props7.xDomainRange;
- var yDomainRange = _props7.yDomainRange;
- var margin = _props7.margin;
- var width = _props7.width;
- var height = _props7.height;
-
-
- var hasLineData = this.hasLineData();
- var m = (0, _shared.calculateMargin)(axes, margin, yAxisOrientRight, hasLineData);
- var w = (0, _shared.reduce)(width, m.left, m.right);
- var h = (0, _shared.reduce)(height, m.top, m.bottom);
- var x = this.createDomainRangeGenerator('x', xDomainRange, data, xType, w);
- var y = this.createDomainRangeGenerator('y', yDomainRange, data, yType, h);
-
- var node = this.createSvgNode({ m: m, w: w, h: h });
- var root = this.createSvgRoot({ node: node, m: m });
-
- return {
- m: m,
- w: w,
- h: h,
- x: x,
- y: y,
- node: node,
- root: root
- };
- }
- }, {
- key: 'render',
- value: function render() {
- var axes = this.props.axes;
-
-
- var hasLineData = this.hasLineData();
- var p = this.calculateChartParameters();
-
- if (axes) {
- this.createXAxis(p);
-
- this.createYAxis(p); // const yAxis = this.createYAxis(p);
-
- if (hasLineData) {
- this.createYAxis2(p); // { ...p, yAxis });
- }
- }
-
- this.createBarChart(p);
-
- if (hasLineData) {
- this.createLinePath(p);
- }
-
- var uid = this.uid;
- var className = 'bar-chart-' + uid;
- var node = p.node;
-
-
- return _react2.default.createElement(
- 'div',
- { ref: 'barChart', className: className },
- this.createStyle(),
- node.toReact()
- );
- }
- }]);
- return BarChart;
-}(_react2.default.Component);
-
-exports.default = BarChart;
-module.exports = exports['default'];
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/npmdist/bar-chart/index.js.map b/npmdist/bar-chart/index.js.map
deleted file mode 100644
index 1ccfe1d..0000000
--- a/npmdist/bar-chart/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../modules/bar-chart/index.js"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import React from 'react';\nimport { scaleBand as band, scaleLinear as linear } from 'd3-scale';\nimport {\n event as lastEvent,\n select,\n svg,\n time,\n scale,\n max\n} from 'd3';\nimport {\n createUniqueID,\n reduce,\n calculateMargin,\n calculateDomainRange,\n defaultStyles,\n getAxisStyles,\n createValueGenerator,\n createCircularTicks\n} from '../shared';\nimport { extent } from 'd3-array';\nimport { timeParse as parse } from 'd3-time-format';\nimport { createElement } from 'react-faux-dom';\nimport { Style } from 'radium';\nimport merge from 'lodash.merge';\n\nconst dateParser = {};\n\nconst colorScale = scale.category20();\n\nexport default class BarChart extends React.Component {\n\n static get propTypes() {\n return {\n data: React.PropTypes.array.isRequired,\n lineData: React.PropTypes.array,\n width: React.PropTypes.number,\n height: React.PropTypes.number,\n margin: React.PropTypes.object,\n mouseOverHandler: React.PropTypes.func,\n mouseOutHandler: React.PropTypes.func,\n mouseMoveHandler: React.PropTypes.func,\n clickHandler: React.PropTypes.func,\n interpolate: React.PropTypes.string,\n style: React.PropTypes.object,\n colorBars: React.PropTypes.bool,\n axes: React.PropTypes.bool,\n grid: React.PropTypes.bool,\n axisLabels: React.PropTypes.shape({\n x: React.PropTypes.string,\n y: React.PropTypes.string\n }),\n xType: React.PropTypes.string,\n yType: React.PropTypes.string,\n y2Type: React.PropTypes.string,\n xDomainRange: React.PropTypes.array,\n yDomainRange: React.PropTypes.array,\n datePattern: React.PropTypes.string,\n tickTimeDisplayFormat: React.PropTypes.string,\n yAxisOrientRight: React.PropTypes.bool,\n barWidth: React.PropTypes.number,\n xTickNumber: React.PropTypes.number,\n yTickNumber: React.PropTypes.number\n };\n }\n\n static get defaultProps() {\n return {\n lineData: [],\n width: 400,\n height: 200,\n barWidth: 10,\n axes: false,\n xType: 'text',\n yType: 'linear',\n y2Type: 'linear',\n interpolate: 'linear',\n mouseOverHandler: () => {},\n mouseOutHandler: () => {},\n mouseMoveHandler: () => {},\n clickHandler: () => {},\n datePattern: '%d-%b-%y',\n axisLabels: {\n x: '',\n y: ''\n }\n };\n }\n\n constructor(props) {\n super(props);\n this.uid = createUniqueID(props);\n }\n\n componentDidMount() {\n const ref = this.refs.barChart;\n createCircularTicks(ref);\n }\n\n componentDidUpdate() {\n const ref = this.refs.barChart;\n createCircularTicks(ref);\n }\n\n createDomainRangeGenerator(axesType, domainRange, data, type, length) {\n const dataIndex = axesType === 'x' ? 'x' : 'y';\n const barPadding = (length / data.length) > 40 ? 0.02 : 0.04;\n const parseDate = (v) => this.parseDate(v);\n let axis;\n switch (type) {\n case 'text':\n axis = band();\n axis\n .domain(data.map((d) => d[dataIndex]))\n .range([0, length])\n .padding(barPadding);\n break;\n case 'linear':\n axis = linear();\n axis\n .domain(\n Array.isArray(domainRange)\n ? domainRange // calculateDomainRange(domainRange, type, parseDate)\n : [0, max(data, (d) => d[dataIndex])])\n .range(\n (axesType === 'x')\n ? [0, length]\n : [length, 0]\n );\n break;\n case 'time':\n axis = time.scale();\n axis\n .domain(\n Array.isArray(domainRange)\n ? calculateDomainRange(domainRange, type, parseDate)\n : extent(data, (d) => parseDate(d[dataIndex])))\n .range(\n (axesType === 'x')\n ? [0, length]\n : [length, 0]);\n break;\n default:\n break;\n }\n return axis;\n }\n\n defineColor(i, d, colorBars) {\n if (d.color) return d.color;\n if (colorBars) return colorScale(i);\n return null;\n }\n\n createSvgNode({ m, w, h }) {\n const node = createElement('svg');\n node.setAttribute('width', w + m.left + m.right);\n node.setAttribute('height', h + m.top + m.bottom);\n return node;\n }\n\n createSvgRoot({ node, m }) {\n return select(node)\n .append('g')\n .attr('transform', `translate(${m.left}, ${m.top})`);\n }\n\n createXAxis({ root, m, w, h, x }) {\n const {\n axisLabels: { x: label },\n xType,\n tickTimeDisplayFormat,\n xTickNumber,\n yAxisOrientRight\n } = this.props;\n\n const axis = svg.axis()\n .scale(x)\n .orient('bottom');\n\n if (xType === 'time' && tickTimeDisplayFormat) {\n axis\n .tickFormat(time.format(tickTimeDisplayFormat));\n }\n\n axis\n .tickSize(0)\n .tickPadding(15);\n\n if (xTickNumber) {\n axis\n .ticks(xTickNumber);\n }\n\n const group = root\n .append('g')\n .attr('class', 'x axis')\n .attr('transform', `translate(0, ${h})`);\n\n group\n .call(axis);\n\n if (label) {\n group\n .append('text')\n .attr('class', 'label')\n .attr('x',\n (yAxisOrientRight)\n ? 0\n : w)\n .attr('y', m.bottom - 10)\n .style('text-anchor',\n (yAxisOrientRight)\n ? 'start'\n : 'end')\n .text(label);\n }\n }\n\n createYAxis({ root, m, w, y }) {\n const {\n axisLabels: { y: label },\n yTickNumber,\n yAxisOrientRight,\n grid\n } = this.props;\n\n const axis = svg.axis()\n .scale(y)\n .orient(yAxisOrientRight ? 'right' : 'left');\n\n if (yTickNumber) {\n axis\n .ticks(yTickNumber);\n }\n\n if (grid) {\n axis\n .tickSize(-w, 6)\n .tickPadding(12);\n } else {\n axis\n .tickPadding(10);\n }\n\n const group = root\n .append('g')\n .attr('class', 'y axis');\n\n group\n .call(axis);\n\n if (label) {\n group\n .attr('transform',\n (yAxisOrientRight)\n ? `translate(${w}, 0)`\n : 'translate(0, 0)')\n .append('text')\n .attr('class', 'label')\n .attr('transform', 'rotate(-90)')\n .attr('x', 0)\n .attr('y',\n (yAxisOrientRight)\n ? -25 + m.right\n : 10 - m.left)\n .attr('dy', '.9em')\n .style('text-anchor', 'end')\n .text(label);\n }\n }\n\n createYAxis2({ root, m, w, h }) {\n const {\n lineData,\n axisLabels: { y2: label },\n y2Type,\n yTickNumber,\n yAxisOrientRight,\n grid,\n yDomainRange\n } = this.props;\n\n const y = this.createDomainRangeGenerator('y', yDomainRange, lineData, y2Type, h);\n\n const axis = svg.axis()\n .scale(y)\n .orient(\n (yAxisOrientRight)\n ? 'left'\n : 'right');\n\n if (yTickNumber) {\n axis\n .ticks(yTickNumber);\n }\n\n if (grid) {\n axis\n .tickSize(-w, 6)\n .tickPadding(12);\n } else {\n axis\n .tickPadding(10);\n }\n\n const group = root\n .append('g')\n .attr('class', 'y axis');\n\n group\n .call(axis);\n\n if (label) {\n group\n .attr('transform',\n (yAxisOrientRight)\n ? 'translate(0, 0)'\n : `translate(${w}, 0)`)\n .append('text')\n .attr('class', 'label')\n .attr('transform', 'rotate(-90)')\n .attr('x', 0)\n .attr('y',\n (yAxisOrientRight)\n ? 10 - m.left\n : -25 + m.right)\n .attr('dy', '.9em')\n .style('text-anchor', 'end')\n .text(label);\n }\n }\n\n createBarChart({ root, h, x, y }) {\n const {\n data,\n mouseOverHandler,\n mouseOutHandler,\n mouseMoveHandler,\n clickHandler,\n colorBars,\n xType,\n barWidth\n } = this.props;\n\n const calculateDate = (v) => this.parseDate(v);\n const calculateFill = (d, i) => this.defineColor(i, d, colorBars);\n\n const calculateX = (d) => (\n (xType === 'time')\n ? x(calculateDate(d.x))\n : x(d.x));\n const calculateY = (d) => y(d.y);\n const calculateW = () => (\n (xType === 'text')\n ? x.bandwidth()\n : barWidth);\n const calculateH = (d) => h - y(d.y);\n\n const mouseover = (d) => mouseOverHandler(d, lastEvent);\n const mouseout = (d) => mouseOutHandler(d, lastEvent);\n const mousemove = (d) => mouseMoveHandler(d, lastEvent);\n const click = (d) => clickHandler(d, lastEvent);\n\n const group = root\n .selectAll('rect') // '.bar'\n .data(data);\n\n group\n .enter()\n .append('rect')\n .attr('class', 'bar')\n .style('fill', calculateFill)\n .attr('x', calculateX)\n .attr('y', calculateY)\n .attr('width', calculateW)\n .attr('height', calculateH)\n .on('mouseover', mouseover)\n .on('mouseout', mouseout)\n .on('mousemove', mousemove)\n .on('click', click);\n\n group\n .exit()\n .remove();\n }\n\n createLinePath({ root, h, x }) {\n const {\n lineData,\n xType,\n y2Type,\n interpolate,\n yDomainRange\n } = this.props;\n\n const parseDate = (v) => this.parseDate(v);\n\n const y = this.createDomainRangeGenerator('y', yDomainRange, lineData, y2Type, h);\n\n const yValue = createValueGenerator('y', y2Type, parseDate);\n const xValue = createValueGenerator('x', xType, parseDate);\n\n const linePath = svg.line()\n .interpolate(interpolate)\n .x((d) => x(xValue(d)))\n .y((d) => y(yValue(d)));\n\n root.append('path')\n .datum(lineData)\n .attr('class', 'line')\n .attr('style', 'stroke: red')\n .attr('d', linePath);\n }\n\n createStyle() {\n const {\n style,\n yAxisOrientRight,\n grid\n } = this.props;\n\n const uid = this.uid;\n const scope = `.bar-chart-${uid}`;\n const axisStyles = getAxisStyles(grid, false, yAxisOrientRight);\n const rules = merge({}, defaultStyles, style, axisStyles);\n\n return (\n \n );\n }\n\n hasLineData() {\n const {\n lineData\n } = this.props;\n\n return (lineData.length > 0);\n }\n\n parseDate(v) {\n const {\n datePattern\n } = this.props;\n\n const datePatternParser = (\n dateParser[datePattern] || (\n dateParser[datePattern] = parse(datePattern)));\n\n return datePatternParser(v);\n }\n\n calculateChartParameters() {\n const {\n data,\n axes,\n xType,\n yType,\n yAxisOrientRight,\n xDomainRange,\n yDomainRange,\n margin,\n width,\n height\n } = this.props;\n\n const hasLineData = this.hasLineData();\n const m = calculateMargin(axes, margin, yAxisOrientRight, hasLineData);\n const w = reduce(width, m.left, m.right);\n const h = reduce(height, m.top, m.bottom);\n const x = this.createDomainRangeGenerator('x', xDomainRange, data, xType, w);\n const y = this.createDomainRangeGenerator('y', yDomainRange, data, yType, h);\n\n const node = this.createSvgNode({ m, w, h });\n const root = this.createSvgRoot({ node, m });\n\n return {\n m,\n w,\n h,\n x,\n y,\n node,\n root\n };\n }\n\n render() {\n const {\n axes\n } = this.props;\n\n const hasLineData = this.hasLineData();\n const p = this.calculateChartParameters();\n\n if (axes) {\n this.createXAxis(p);\n\n this.createYAxis(p); // const yAxis = this.createYAxis(p);\n\n if (hasLineData) {\n this.createYAxis2(p); // { ...p, yAxis });\n }\n }\n\n this.createBarChart(p);\n\n if (hasLineData) {\n this.createLinePath(p);\n }\n\n const uid = this.uid;\n const className = `bar-chart-${uid}`;\n const {\n node\n } = p;\n\n return (\n \n {this.createStyle()}\n {node.toReact()}\n
\n );\n }\n}\n"]}
\ No newline at end of file
diff --git a/npmdist/index.js b/npmdist/index.js
deleted file mode 100644
index c2e833e..0000000
--- a/npmdist/index.js
+++ /dev/null
@@ -1,52 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.Legend = exports.ScatterplotChart = exports.ScatterplotChartStatic = exports.ScatterplotChartHybrid = exports.AreaChart = exports.LineChart = exports.PieChartStatic = exports.PieChart = exports.PieChartHybrid = exports.BarChart = undefined;
-
-var _barChart = require('./bar-chart');
-
-var _barChart2 = _interopRequireDefault(_barChart);
-
-var _hybrid = require('./pie-chart/hybrid');
-
-var _hybrid2 = _interopRequireDefault(_hybrid);
-
-var _static = require('./pie-chart/static');
-
-var _static2 = _interopRequireDefault(_static);
-
-var _lineChart = require('./line-chart');
-
-var _lineChart2 = _interopRequireDefault(_lineChart);
-
-var _areaChart = require('./area-chart');
-
-var _areaChart2 = _interopRequireDefault(_areaChart);
-
-var _hybrid3 = require('./scatterplot-chart/hybrid');
-
-var _hybrid4 = _interopRequireDefault(_hybrid3);
-
-var _static3 = require('./scatterplot-chart/static');
-
-var _static4 = _interopRequireDefault(_static3);
-
-var _legend = require('./legend');
-
-var _legend2 = _interopRequireDefault(_legend);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-exports.BarChart = _barChart2.default;
-exports.PieChartHybrid = _hybrid2.default;
-exports.PieChart = _hybrid2.default;
-exports.PieChartStatic = _static2.default;
-exports.LineChart = _lineChart2.default;
-exports.AreaChart = _areaChart2.default;
-exports.ScatterplotChartHybrid = _hybrid4.default;
-exports.ScatterplotChartStatic = _static4.default;
-exports.ScatterplotChart = _hybrid4.default;
-exports.Legend = _legend2.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/npmdist/index.js.map b/npmdist/index.js.map
deleted file mode 100644
index a042d34..0000000
--- a/npmdist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../modules/index.js"],"names":[],"mappings":";;;;;;;AAAA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;QAES,Q;QACA,c;QACkB,Q;QAClB,c;QACA,S;QACA,S;QACA,sB;QACA,sB;QAC0B,gB;QAC1B,M","file":"index.js","sourcesContent":["import BarChart from './bar-chart';\nimport PieChartHybrid from './pie-chart/hybrid';\nimport PieChartStatic from './pie-chart/static';\nimport LineChart from './line-chart';\nimport AreaChart from './area-chart';\nimport ScatterplotChartHybrid from './scatterplot-chart/hybrid';\nimport ScatterplotChartStatic from './scatterplot-chart/static';\nimport Legend from './legend';\n\nexport { BarChart };\nexport { PieChartHybrid };\nexport { PieChartHybrid as PieChart };\nexport { PieChartStatic };\nexport { LineChart };\nexport { AreaChart };\nexport { ScatterplotChartHybrid };\nexport { ScatterplotChartStatic };\nexport { ScatterplotChartHybrid as ScatterplotChart };\nexport { Legend };\n"]}
\ No newline at end of file
diff --git a/npmdist/legend/defaultStyles.js b/npmdist/legend/defaultStyles.js
deleted file mode 100644
index 4e3cc52..0000000
--- a/npmdist/legend/defaultStyles.js
+++ /dev/null
@@ -1,37 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-/*
- * Move this junk out of the class
- */
-exports.default = {
- '.legend': {
- 'list-style': 'none',
- margin: 0,
- padding: 0
- },
- '.legend li': {
- display: 'block',
- lineHeight: '24px',
- marginRight: '24px',
- marginBottom: '6px',
- paddingLeft: '24px',
- position: 'relative'
- },
- '.legend li.horizontal': {
- display: 'inline-block'
- },
- '.legend .icon': {
- width: '12px',
- height: '12px',
- borderRadius: '6px',
- position: 'absolute',
- left: '0',
- top: '50%',
- marginTop: '-6px'
- }
-};
-module.exports = exports['default'];
-//# sourceMappingURL=defaultStyles.js.map
\ No newline at end of file
diff --git a/npmdist/legend/defaultStyles.js.map b/npmdist/legend/defaultStyles.js.map
deleted file mode 100644
index 16c0465..0000000
--- a/npmdist/legend/defaultStyles.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../modules/legend/defaultStyles.js"],"names":[],"mappings":";;;;;AAAA;;;kBAGe;AACb,aAAW;AACT,kBAAc,MADL;AAET,YAAQ,CAFC;AAGT,aAAS;AAHA,GADE;AAMb,gBAAc;AACZ,aAAS,OADG;AAEZ,gBAAY,MAFA;AAGZ,iBAAa,MAHD;AAIZ,kBAAc,KAJF;AAKZ,iBAAa,MALD;AAMZ,cAAU;AANE,GAND;AAcb,2BAAyB;AACvB,aAAS;AADc,GAdZ;AAiBb,mBAAiB;AACf,WAAO,MADQ;AAEf,YAAQ,MAFO;AAGf,kBAAc,KAHC;AAIf,cAAU,UAJK;AAKf,UAAM,GALS;AAMf,SAAK,KANU;AAOf,eAAW;AAPI;AAjBJ,C","file":"defaultStyles.js","sourcesContent":["/*\n * Move this junk out of the class\n */\nexport default {\n '.legend': {\n 'list-style': 'none',\n margin: 0,\n padding: 0\n },\n '.legend li': {\n display: 'block',\n lineHeight: '24px',\n marginRight: '24px',\n marginBottom: '6px',\n paddingLeft: '24px',\n position: 'relative'\n },\n '.legend li.horizontal': {\n display: 'inline-block'\n },\n '.legend .icon': {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n position: 'absolute',\n left: '0',\n top: '50%',\n marginTop: '-6px'\n }\n};\n"]}
\ No newline at end of file
diff --git a/npmdist/legend/index.js b/npmdist/legend/index.js
deleted file mode 100644
index 46d0a1a..0000000
--- a/npmdist/legend/index.js
+++ /dev/null
@@ -1,166 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-
-var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
-
-var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
-
-var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
-
-var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
-
-var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
-
-var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
-
-var _createClass2 = require('babel-runtime/helpers/createClass');
-
-var _createClass3 = _interopRequireDefault(_createClass2);
-
-var _inherits2 = require('babel-runtime/helpers/inherits');
-
-var _inherits3 = _interopRequireDefault(_inherits2);
-
-var _react = require('react');
-
-var _react2 = _interopRequireDefault(_react);
-
-var _radium = require('radium');
-
-var _d = require('d3');
-
-var _shared = require('../shared');
-
-var _lodash = require('lodash.merge');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-var _defaultStyles = require('./defaultStyles');
-
-var _defaultStyles2 = _interopRequireDefault(_defaultStyles);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var colors = _d.scale.category20().range();
-
-var Legend = function (_React$Component) {
- (0, _inherits3.default)(Legend, _React$Component);
- (0, _createClass3.default)(Legend, null, [{
- key: 'propTypes',
- get: function get() {
- return {
- config: _react2.default.PropTypes.array,
- data: _react2.default.PropTypes.array.isRequired,
- tags: _react2.default.PropTypes.array,
- dataId: _react2.default.PropTypes.string.isRequired,
- horizontal: _react2.default.PropTypes.bool,
- styles: _react2.default.PropTypes.object
- };
- }
- }, {
- key: 'defaultProps',
- get: function get() {
- return {
- tags: []
- };
- }
- }]);
-
- function Legend(props) {
- (0, _classCallCheck3.default)(this, Legend);
-
- var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Legend).call(this, props));
-
- _this.uid = (0, _shared.createUniqueID)(props);
- return _this;
- }
-
- (0, _createClass3.default)(Legend, [{
- key: 'getBackgroundColor',
- value: function getBackgroundColor(index) {
- var config = this.props.config;
-
-
- if (typeof config !== 'undefined') {
- if (config.length > index) {
- return config[index].color;
- }
- }
- return colors[index];
- }
- }, {
- key: 'createLegend',
- value: function createLegend() {
- var _this2 = this;
-
- var _props = this.props;
- var dataId = _props.dataId;
- var data = _props.data;
- var tags = _props.tags;
- var horizontal = _props.horizontal;
-
-
- var className = horizontal ? 'horizontal' : false;
-
- data.forEach(function (item) {
- var index = tags.findIndex(function (tag) {
- return tag === item[dataId];
- });
- if (index < 0) tags.push(item[dataId]);
- });
-
- return _react2.default.createElement(
- 'ul',
- { className: 'legend' },
- tags.map(function (item, index) {
- var key = 'legend-' + index;
- var backgroundColor = _this2.getBackgroundColor(index);
- return _react2.default.createElement(
- 'li',
- { key: key, className: className },
- _react2.default.createElement('span', {
- className: 'icon',
- style: { backgroundColor: backgroundColor }
- }),
- item
- );
- })
- );
- }
- }, {
- key: 'createStyle',
- value: function createStyle() {
- var styles = this.props.styles;
-
-
- var uid = this.uid;
- var rules = (0, _lodash2.default)({}, _defaultStyles2.default, styles);
- var scope = '.legend-container-' + uid;
-
- return _react2.default.createElement(_radium.Style, {
- scopeSelector: scope,
- rules: rules
- });
- }
- }, {
- key: 'render',
- value: function render() {
- var uid = this.uid;
- var className = 'legend-container-' + uid;
- return _react2.default.createElement(
- 'div',
- { className: className },
- this.createStyle(),
- this.createLegend()
- );
- }
- }]);
- return Legend;
-}(_react2.default.Component);
-
-exports.default = Legend;
-module.exports = exports['default'];
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/npmdist/legend/index.js.map b/npmdist/legend/index.js.map
deleted file mode 100644
index 7b48bc8..0000000
--- a/npmdist/legend/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../modules/legend/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;AACA;;AACA;;AACA;;AAGA;;;;AAEA;;;;;;AAEA,IAAM,SAAS,SAAM,UAAN,GAAmB,KAAnB,EAAf;;IAEqB,M;;;;wBAEI;AACrB,aAAO;AACL,gBAAQ,gBAAM,SAAN,CAAgB,KADnB;AAEL,cAAM,gBAAM,SAAN,CAAgB,KAAhB,CAAsB,UAFvB;AAGL,cAAM,gBAAM,SAAN,CAAgB,KAHjB;AAIL,gBAAQ,gBAAM,SAAN,CAAgB,MAAhB,CAAuB,UAJ1B;AAKL,oBAAY,gBAAM,SAAN,CAAgB,IALvB;AAML,gBAAQ,gBAAM,SAAN,CAAgB;AANnB,OAAP;AAQD;;;wBAEyB;AACxB,aAAO;AACL,cAAM;AADD,OAAP;AAGD;;;AAED,kBAAY,KAAZ,EAAmB;AAAA;;AAAA,gHACX,KADW;;AAEjB,UAAK,GAAL,GAAW,4BAAe,KAAf,CAAX;AAFiB;AAGlB;;;;uCAEkB,K,EAAO;AAAA,UAEtB,MAFsB,GAGpB,KAAK,KAHe,CAEtB,MAFsB;;;AAKxB,UAAI,OAAO,MAAP,KAAkB,WAAtB,EAAmC;AACjC,YAAI,OAAO,MAAP,GAAgB,KAApB,EAA2B;AACzB,iBAAO,OAAO,KAAP,EAAc,KAArB;AACD;AACF;AACD,aAAO,OAAO,KAAP,CAAP;AACD;;;mCAEc;AAAA;;AAAA,mBAMT,KAAK,KANI;AAAA,UAEX,MAFW,UAEX,MAFW;AAAA,UAGX,IAHW,UAGX,IAHW;AAAA,UAIX,IAJW,UAIX,IAJW;AAAA,UAKX,UALW,UAKX,UALW;;;AAQb,UAAM,YACH,UAAD,GACI,YADJ,GAEI,KAHN;;AAKA,WAAK,OAAL,CAAa,UAAC,IAAD,EAAU;AACrB,YAAM,QAAQ,KAAK,SAAL,CAAe,UAAC,GAAD;AAAA,iBAAS,QAAQ,KAAK,MAAL,CAAjB;AAAA,SAAf,CAAd;AACA,YAAI,QAAQ,CAAZ,EAAe,KAAK,IAAL,CAAU,KAAK,MAAL,CAAV;AAChB,OAHD;;AAKA,aACE;AAAA;AAAA,UAAI,WAAU,QAAd;AACG,aAAK,GAAL,CAAS,UAAC,IAAD,EAAO,KAAP,EAAiB;AACzB,cAAM,kBAAgB,KAAtB;AACA,cAAM,kBAAkB,OAAK,kBAAL,CAAwB,KAAxB,CAAxB;AACA,iBACE;AAAA;AAAA,cAAI,KAAK,GAAT,EAAc,WAAW,SAAzB;AACE;AACE,yBAAU,MADZ;AAEE,qBAAO,EAAE,gCAAF;AAFT,cADF;AAKG;AALH,WADF;AASD,SAZA;AADH,OADF;AAiBD;;;kCAEa;AAAA,UAEV,MAFU,GAGR,KAAK,KAHG,CAEV,MAFU;;;AAKZ,UAAM,MAAM,KAAK,GAAjB;AACA,UAAM,QAAQ,sBAAM,EAAN,2BAAyB,MAAzB,CAAd;AACA,UAAM,+BAA6B,GAAnC;;AAEA,aACE;AACE,uBAAe,KADjB;AAEE,eAAO;AAFT,QADF;AAMD;;;6BAEQ;AACP,UAAM,MAAM,KAAK,GAAjB;AACA,UAAM,kCAAgC,GAAtC;AACA,aACE;AAAA;AAAA,UAAK,WAAW,SAAhB;AACG,aAAK,WAAL,EADH;AAEG,aAAK,YAAL;AAFH,OADF;AAMD;;;EApGiC,gBAAM,S;;kBAArB,M","file":"index.js","sourcesContent":["import React from 'react';\nimport { Style } from 'radium';\nimport { scale } from 'd3';\nimport {\n createUniqueID\n} from '../shared';\nimport merge from 'lodash.merge';\n\nimport defaultStyles from './defaultStyles';\n\nconst colors = scale.category20().range();\n\nexport default class Legend extends React.Component {\n\n static get propTypes() {\n return {\n config: React.PropTypes.array,\n data: React.PropTypes.array.isRequired,\n tags: React.PropTypes.array,\n dataId: React.PropTypes.string.isRequired,\n horizontal: React.PropTypes.bool,\n styles: React.PropTypes.object\n };\n }\n\n static get defaultProps() {\n return {\n tags: []\n };\n }\n\n constructor(props) {\n super(props);\n this.uid = createUniqueID(props);\n }\n\n getBackgroundColor(index) {\n const {\n config\n } = this.props;\n\n if (typeof config !== 'undefined') {\n if (config.length > index) {\n return config[index].color;\n }\n }\n return colors[index];\n }\n\n createLegend() {\n const {\n dataId,\n data,\n tags,\n horizontal\n } = this.props;\n\n const className =\n (horizontal)\n ? 'horizontal'\n : false;\n\n data.forEach((item) => {\n const index = tags.findIndex((tag) => tag === item[dataId]);\n if (index < 0) tags.push(item[dataId]);\n });\n\n return (\n \n {tags.map((item, index) => {\n const key = `legend-${index}`;\n const backgroundColor = this.getBackgroundColor(index);\n return (\n - \n \n {item}\n
\n );\n })}\n
\n );\n }\n\n createStyle() {\n const {\n styles\n } = this.props;\n\n const uid = this.uid;\n const rules = merge({}, defaultStyles, styles);\n const scope = `.legend-container-${uid}`;\n\n return (\n \n );\n }\n\n render() {\n const uid = this.uid;\n const className = `legend-container-${uid}`;\n return (\n \n {this.createStyle()}\n {this.createLegend()}\n
\n );\n }\n}\n"]}
\ No newline at end of file
diff --git a/npmdist/line-chart/hybrid/LineChart/common.js b/npmdist/line-chart/hybrid/LineChart/common.js
deleted file mode 100644
index bf59dee..0000000
--- a/npmdist/line-chart/hybrid/LineChart/common.js
+++ /dev/null
@@ -1,310 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.getDefaultAxisStyles = exports.defaultColors = exports.defaultStyles = exports.createUniqueID = exports.reduce = exports.createFormat = exports.createParser = exports.formatDatumY = exports.formatDatumX = exports.formatDatumTimeY = exports.formatDatumTimeX = exports.mapDatumY = exports.mapDatumX = exports.mapDatumTimeY = exports.mapDatumTimeX = undefined;
-
-var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray');
-
-var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
-
-exports.formatType = formatType;
-exports.createMapDatumX = createMapDatumX;
-exports.createMapDatumY = createMapDatumY;
-exports.createParserDatumX = createParserDatumX;
-exports.createParserDatumY = createParserDatumY;
-exports.createParserY = createParserY;
-exports.createParserX = createParserX;
-exports.createFormatX = createFormatX;
-exports.createFormatY = createFormatY;
-exports.calculateDomain = calculateDomain;
-exports.calculateExtent = calculateExtent;
-exports.createDomainX = createDomainX;
-exports.createDomainY = createDomainY;
-exports.createScaleTimeX = createScaleTimeX;
-exports.createScaleTimeY = createScaleTimeY;
-exports.createScaleTextX = createScaleTextX;
-exports.createScaleTextY = createScaleTextY;
-exports.createScaleLinearX = createScaleLinearX;
-exports.createScaleLinearY = createScaleLinearY;
-exports.createScaleY = createScaleY;
-exports.createScaleX = createScaleX;
-
-var _d = require('d3');
-
-var _d3Array = require('d3-array');
-
-var _d3Scale = require('d3-scale');
-
-var _d3TimeFormat = require('d3-time-format');
-
-var _defaultStyles = require('./common/defaultStyles');
-
-var _defaultStyles2 = _interopRequireDefault(_defaultStyles);
-
-var _defaultAxisStyles = require('./common/defaultAxisStyles');
-
-var _defaultColors = require('./common/defaultColors');
-
-var _defaultColors2 = _interopRequireDefault(_defaultColors);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var TIMEPARSER = {};
-var TIMEFORMAT = {};
-
-var mapDatumTimeX = function mapDatumTimeX(p) {
- return function (d) {
- return p(d.x);
- };
-};
-var mapDatumTimeY = function mapDatumTimeY(p) {
- return function (d) {
- return p(d.y);
- };
-};
-var mapDatumX = function mapDatumX(d) {
- return d.x;
-};
-var mapDatumY = function mapDatumY(d) {
- return d.y;
-};
-
-exports.mapDatumTimeX = mapDatumTimeX;
-exports.mapDatumTimeY = mapDatumTimeY;
-exports.mapDatumX = mapDatumX;
-exports.mapDatumY = mapDatumY;
-
-
-var formatDatumTimeX = function formatDatumTimeX(p) {
- return function (d) {
- return p(d.x);
- };
-};
-var formatDatumTimeY = function formatDatumTimeY(p) {
- return function (d) {
- return p(d.y);
- };
-};
-var formatDatumX = function formatDatumX(d) {
- return d.x;
-};
-var formatDatumY = function formatDatumY(d) {
- return d.y;
-};
-
-exports.formatDatumTimeX = formatDatumTimeX;
-exports.formatDatumTimeY = formatDatumTimeY;
-exports.formatDatumX = formatDatumX;
-exports.formatDatumY = formatDatumY;
-
-
-var formatString = function formatString(v) {
- return v;
-};
-var formatNumber = function formatNumber(n) {
- return n % 1 ? n.toFixed(1) : n;
-};
-
-function formatType(type) {
- return type === 'text' ? formatString : formatNumber;
-}
-
-function createParser() {
- var pattern = arguments.length <= 0 || arguments[0] === undefined ? '%d-%b-%y' : arguments[0];
-
- return TIMEPARSER[pattern] || (TIMEPARSER[pattern] = (0, _d3TimeFormat.timeParse)(pattern));
-}
-
-function createMapDatumX(type, pattern) {
- return type === 'time' ? formatDatumTimeX(createParser(pattern)) : formatDatumX;
-}
-
-function createMapDatumY(type, pattern) {
- return type === 'time' ? formatDatumTimeY(createParser(pattern)) : formatDatumY;
-}
-
-function createParserDatumX(type, pattern) {
- return type === 'time' ? formatDatumTimeX(createParser(pattern)) : formatDatumX;
-}
-
-function createParserDatumY(type, pattern) {
- return type === 'time' ? formatDatumTimeY(createParser(pattern)) : formatDatumY;
-}
-
-function createParserY(type, pattern) {
- return type === 'time' ? formatDatumTimeY(createParser(pattern)) : formatDatumY;
-}
-
-function createParserX(type, pattern) {
- return type === 'time' ? formatDatumTimeX(createParser(pattern)) : formatDatumX;
-}
-
-exports.createParser = createParser;
-
-
-function createFormat() {
- var pattern = arguments.length <= 0 || arguments[0] === undefined ? '%b %d' : arguments[0];
-
- return TIMEFORMAT[pattern] || (TIMEFORMAT[pattern] = _d.time.format(pattern));
-}
-
-function createFormatX(type, pattern) {
- return type === 'time' ? createFormat(pattern) : function (v) {
- return v;
- };
-}
-
-function createFormatY(type, pattern) {
- return type === 'time' ? createFormat(pattern) : function (v) {
- return v;
- };
-}
-
-exports.createFormat = createFormat;
-function calculateDomain(data, map) {
- var domain = [];
-
- data.forEach(function (item) {
- item.forEach(function (d, i) {
- var v = map(d);
- if (!domain.includes(v)) {
- domain.splice(i, 0, v);
- }
- });
- });
-
- return domain;
-}
-
-function calculateExtent(data, map) {
- var min = void 0; // Low
- var max = void 0; // High
- data.forEach(function (row) {
- var _extent = (0, _d3Array.extent)(row, map);
-
- var _extent2 = (0, _slicedToArray3.default)(_extent, 2);
-
- var MIN = _extent2[0];
- var MAX = _extent2[1];
- /*
- * Equivalent to
- *
- * Math.min()
- * Math.max()
- *
- * For non-numeric values
- */
-
- min = min < MIN ? min : MIN;
- max = max > MAX ? max : MAX;
- });
- return [min, max];
-}
-
-function createDomainX(type, data, pattern) {
- switch (type) {
- case 'time':
- return calculateExtent(data, mapDatumTimeX(createParser(pattern)));
- case 'text':
- return calculateDomain(data, mapDatumX);
- default:
- return calculateExtent(data, mapDatumX);
- }
-}
-
-function createDomainY(type, data, pattern) {
- switch (type) {
- case 'time':
- return calculateExtent(data, mapDatumTimeY(createParser(pattern)));
- case 'text':
- return calculateDomain(data, mapDatumY);
- default:
- return calculateExtent(data, mapDatumY);
- }
-}
-
-/* eslint no-param-reassign: 0 */
-var reduce = exports.reduce = function reduce(p, c) {
- return p -= c;
-};
-
-var createUniqueID = exports.createUniqueID = function createUniqueID() {
- return Math.floor(Math.random() * new Date().getTime());
-};
-
-function createScaleTimeX() {
- var domain = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];
- var x = arguments.length <= 1 || arguments[1] === undefined ? 0 : arguments[1];
-
- return _d.time.scale().domain(domain).range([0, x]);
-}
-
-function createScaleTimeY() {
- var domain = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];
- var y = arguments.length <= 1 || arguments[1] === undefined ? 0 : arguments[1];
-
- return _d.time.scale().domain(domain).range([y, 0]);
-}
-
-function createScaleTextX() {
- var domain = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];
- var s = arguments.length <= 1 || arguments[1] === undefined ? 0 : arguments[1];
-
- return (0, _d3Scale.scalePoint)().domain(domain).range([0, s]).padding(0);
-}
-
-function createScaleTextY() {
- var domain = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];
- var s = arguments.length <= 1 || arguments[1] === undefined ? 0 : arguments[1];
-
- return (0, _d3Scale.scalePoint)().domain(domain).range([0, s]).padding(0);
-}
-
-function createScaleLinearX() {
- var domain = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];
- var x = arguments.length <= 1 || arguments[1] === undefined ? 0 : arguments[1];
-
- return (0, _d3Scale.scaleLinear)().domain(domain).range([0, x]);
-}
-
-function createScaleLinearY() {
- var domain = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];
- var y = arguments.length <= 1 || arguments[1] === undefined ? 0 : arguments[1];
-
- return (0, _d3Scale.scaleLinear)().domain(domain).range([y, 0]);
-}
-
-function createScaleY(type) {
- var domain = arguments.length <= 1 || arguments[1] === undefined ? [] : arguments[1];
- var y = arguments.length <= 2 || arguments[2] === undefined ? 0 : arguments[2];
-
- switch (type) {
- case 'time':
- return createScaleTimeY(domain, y);
- case 'text':
- return createScaleTextY(domain, y);
- default:
- return createScaleLinearY(domain, y);
- }
-}
-
-function createScaleX(type) {
- var domain = arguments.length <= 1 || arguments[1] === undefined ? [] : arguments[1];
- var x = arguments.length <= 2 || arguments[2] === undefined ? 0 : arguments[2];
-
- switch (type) {
- case 'time':
- return createScaleTimeX(domain, x);
- case 'text':
- return createScaleTextX(domain, x);
- default:
- return createScaleLinearX(domain, x);
- }
-}
-
-exports.defaultStyles = _defaultStyles2.default;
-exports.defaultColors = _defaultColors2.default;
-exports.getDefaultAxisStyles = _defaultAxisStyles.defaultAxisStyles;
-//# sourceMappingURL=common.js.map
\ No newline at end of file
diff --git a/npmdist/line-chart/hybrid/LineChart/common.js.map b/npmdist/line-chart/hybrid/LineChart/common.js.map
deleted file mode 100644
index 3db385e..0000000
--- a/npmdist/line-chart/hybrid/LineChart/common.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../../../modules/line-chart/hybrid/LineChart/common.js"],"names":[],"mappings":"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","file":"common.js","sourcesContent":["\nimport { time } from 'd3';\nimport { extent } from 'd3-array';\nimport { scaleLinear, scalePoint } from 'd3-scale';\nimport { timeParse } from 'd3-time-format';\n\nimport defaultStyles from './common/defaultStyles';\nimport { defaultAxisStyles } from './common/defaultAxisStyles';\nimport defaultColors from './common/defaultColors';\n\nconst TIMEPARSER = {};\nconst TIMEFORMAT = {};\n\nconst mapDatumTimeX = (p) => (d) => p(d.x);\nconst mapDatumTimeY = (p) => (d) => p(d.y);\nconst mapDatumX = (d) => d.x;\nconst mapDatumY = (d) => d.y;\n\nexport {\n mapDatumTimeX,\n mapDatumTimeY,\n mapDatumX,\n mapDatumY\n};\n\nconst formatDatumTimeX = (p) => (d) => p(d.x);\nconst formatDatumTimeY = (p) => (d) => p(d.y);\nconst formatDatumX = (d) => d.x;\nconst formatDatumY = (d) => d.y;\n\nexport {\n formatDatumTimeX,\n formatDatumTimeY,\n formatDatumX,\n formatDatumY\n};\n\nconst formatString = (v) => (v);\nconst formatNumber = (n) => (\n (n % 1)\n ? n.toFixed(1)\n : n);\n\nexport function formatType(type) {\n return (type === 'text')\n ? formatString\n : formatNumber;\n}\n\nfunction createParser(pattern = '%d-%b-%y') {\n return (\n TIMEPARSER[pattern] || (\n TIMEPARSER[pattern] = timeParse(pattern)));\n}\n\nexport function createMapDatumX(type, pattern) {\n return (type === 'time')\n ? formatDatumTimeX(createParser(pattern))\n : formatDatumX;\n}\n\nexport function createMapDatumY(type, pattern) {\n return (type === 'time')\n ? formatDatumTimeY(createParser(pattern))\n : formatDatumY;\n}\n\nexport function createParserDatumX(type, pattern) {\n return (type === 'time')\n ? formatDatumTimeX(createParser(pattern))\n : formatDatumX;\n}\n\nexport function createParserDatumY(type, pattern) {\n return (type === 'time')\n ? formatDatumTimeY(createParser(pattern))\n : formatDatumY;\n}\n\nexport function createParserY(type, pattern) {\n return (type === 'time')\n ? formatDatumTimeY(createParser(pattern))\n : formatDatumY;\n}\n\nexport function createParserX(type, pattern) {\n return (type === 'time')\n ? formatDatumTimeX(createParser(pattern))\n : formatDatumX;\n}\n\nexport { createParser };\n\nfunction createFormat(pattern = '%b %d') {\n return (\n TIMEFORMAT[pattern] || (\n TIMEFORMAT[pattern] = time.format(pattern)));\n}\n\nexport function createFormatX(type, pattern) {\n return (type === 'time')\n ? createFormat(pattern)\n : (v) => v;\n}\n\nexport function createFormatY(type, pattern) {\n return (type === 'time')\n ? createFormat(pattern)\n : (v) => v;\n}\n\nexport { createFormat };\n\nexport function calculateDomain(data, map) {\n const domain = [];\n\n data.forEach((item) => {\n item.forEach((d, i) => {\n const v = map(d);\n if (!domain.includes(v)) {\n domain.splice(i, 0, v);\n }\n });\n });\n\n return domain;\n}\n\nexport function calculateExtent(data, map) {\n let min; // Low\n let max; // High\n data.forEach((row) => {\n const [MIN, MAX] = extent(row, map);\n /*\n * Equivalent to\n *\n * Math.min()\n * Math.max()\n *\n * For non-numeric values\n */\n min =\n (min < MIN)\n ? min\n : MIN;\n max =\n (max > MAX)\n ? max\n : MAX;\n });\n return [min, max];\n}\n\nexport function createDomainX(type, data, pattern) {\n switch (type) {\n case 'time':\n return calculateExtent(data, mapDatumTimeX(createParser(pattern)));\n case 'text':\n return calculateDomain(data, mapDatumX);\n default:\n return calculateExtent(data, mapDatumX);\n }\n}\n\nexport function createDomainY(type, data, pattern) {\n switch (type) {\n case 'time':\n return calculateExtent(data, mapDatumTimeY(createParser(pattern)));\n case 'text':\n return calculateDomain(data, mapDatumY);\n default:\n return calculateExtent(data, mapDatumY);\n }\n}\n\n/* eslint no-param-reassign: 0 */\nexport const reduce = (p, c) => (p -= c);\n\nexport const createUniqueID = () => Math.floor(Math.random() * new Date().getTime());\n\nexport function createScaleTimeX(domain = [], x = 0) {\n return time.scale()\n .domain(domain)\n .range([0, x]);\n}\n\nexport function createScaleTimeY(domain = [], y = 0) {\n return time.scale()\n .domain(domain)\n .range([y, 0]);\n}\n\nexport function createScaleTextX(domain = [], s = 0) {\n return scalePoint()\n .domain(domain)\n .range([0, s])\n .padding(0);\n}\n\nexport function createScaleTextY(domain = [], s = 0) {\n return scalePoint()\n .domain(domain)\n .range([0, s])\n .padding(0);\n}\n\nexport function createScaleLinearX(domain = [], x = 0) {\n return scaleLinear()\n .domain(domain)\n .range([0, x]);\n}\n\nexport function createScaleLinearY(domain = [], y = 0) {\n return scaleLinear()\n .domain(domain)\n .range([y, 0]);\n}\n\nexport function createScaleY(type, domain = [], y = 0) {\n switch (type) {\n case 'time':\n return createScaleTimeY(domain, y);\n case 'text':\n return createScaleTextY(domain, y);\n default:\n return createScaleLinearY(domain, y);\n }\n}\n\nexport function createScaleX(type, domain = [], x = 0) {\n switch (type) {\n case 'time':\n return createScaleTimeX(domain, x);\n case 'text':\n return createScaleTextX(domain, x);\n default:\n return createScaleLinearX(domain, x);\n }\n}\n\nexport {\n defaultStyles,\n defaultColors\n};\n\nexport { defaultAxisStyles as getDefaultAxisStyles };\n"]}
\ No newline at end of file
diff --git a/npmdist/line-chart/hybrid/LineChart/common/defaultAxisStyles.js b/npmdist/line-chart/hybrid/LineChart/common/defaultAxisStyles.js
deleted file mode 100644
index 4ea2d21..0000000
--- a/npmdist/line-chart/hybrid/LineChart/common/defaultAxisStyles.js
+++ /dev/null
@@ -1,21 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-var defaultAxisStyles = exports.defaultAxisStyles = function defaultAxisStyles(vGrid, hGrid, orient) {
- return {
- '.x circle.tick-circle': {
- fill: vGrid ? 'none' : 'lightgrey'
- },
- '.y circle.tick-circle': {
- cx: orient === 'right' ? '+6px' : '-6px',
- fill: hGrid ? 'none' : 'lightgrey'
- },
- '.y.axis line': {
- display: hGrid ? 'inline' : 'none',
- stroke: 'lightgrey'
- }
- };
-};
-//# sourceMappingURL=defaultAxisStyles.js.map
\ No newline at end of file
diff --git a/npmdist/line-chart/hybrid/LineChart/common/defaultAxisStyles.js.map b/npmdist/line-chart/hybrid/LineChart/common/defaultAxisStyles.js.map
deleted file mode 100644
index cd0db63..0000000
--- a/npmdist/line-chart/hybrid/LineChart/common/defaultAxisStyles.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../../../../modules/line-chart/hybrid/LineChart/common/defaultAxisStyles.js"],"names":[],"mappings":";;;;;AAAO,IAAM,gDAAoB,SAApB,iBAAoB,CAAC,KAAD,EAAQ,KAAR,EAAe,MAAf;AAAA,SAA2B;AAC1D,6BAAyB;AACvB,YACG,KAAD,GACI,MADJ,GAEI;AAJiB,KADiC;AAO1D,6BAAyB;AACvB,UACG,WAAW,OAAZ,GACI,MADJ,GAEI,MAJiB;AAKvB,YACG,KAAD,GACI,MADJ,GAEI;AARiB,KAPiC;AAiB1D,oBAAgB;AACd,eACG,KAAD,GACI,QADJ,GAEI,MAJQ;AAKd,cAAQ;AALM;AAjB0C,GAA3B;AAAA,CAA1B","file":"defaultAxisStyles.js","sourcesContent":["export const defaultAxisStyles = (vGrid, hGrid, orient) => ({\n '.x circle.tick-circle': {\n fill:\n (vGrid)\n ? 'none'\n : 'lightgrey'\n },\n '.y circle.tick-circle': {\n cx:\n (orient === 'right')\n ? '+6px'\n : '-6px',\n fill:\n (hGrid)\n ? 'none'\n : 'lightgrey'\n },\n '.y.axis line': {\n display:\n (hGrid)\n ? 'inline'\n : 'none',\n stroke: 'lightgrey'\n }\n});\n"]}
\ No newline at end of file
diff --git a/npmdist/line-chart/hybrid/LineChart/common/defaultColors.js b/npmdist/line-chart/hybrid/LineChart/common/defaultColors.js
deleted file mode 100644
index 4ad6011..0000000
--- a/npmdist/line-chart/hybrid/LineChart/common/defaultColors.js
+++ /dev/null
@@ -1,8 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.default = ['#3F4C55', '#E3A51A', '#F4E956', '#AAAC84'];
-module.exports = exports['default'];
-//# sourceMappingURL=defaultColors.js.map
\ No newline at end of file
diff --git a/npmdist/line-chart/hybrid/LineChart/common/defaultColors.js.map b/npmdist/line-chart/hybrid/LineChart/common/defaultColors.js.map
deleted file mode 100644
index c6c4c7f..0000000
--- a/npmdist/line-chart/hybrid/LineChart/common/defaultColors.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../../../../modules/line-chart/hybrid/LineChart/common/defaultColors.js"],"names":[],"mappings":";;;;;kBACe,CACb,SADa,EAEb,SAFa,EAGb,SAHa,EAIb,SAJa,C","file":"defaultColors.js","sourcesContent":["\nexport default [\n '#3F4C55',\n '#E3A51A',\n '#F4E956',\n '#AAAC84'\n];\n"]}
\ No newline at end of file
diff --git a/npmdist/line-chart/hybrid/LineChart/common/defaultStyles.js b/npmdist/line-chart/hybrid/LineChart/common/defaultStyles.js
deleted file mode 100644
index 6c9b3ae..0000000
--- a/npmdist/line-chart/hybrid/LineChart/common/defaultStyles.js
+++ /dev/null
@@ -1,66 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.default = {
- '.line': {
- fill: 'none',
- strokeWidth: 1.5,
- opacity: 0.7
- },
- '.line:hover': {
- opacity: 1
- },
- '.area': {
- opacity: 0.7
- },
- '.area:hover': {
- opacity: 1
- },
- '.dot': {
- strokeWidth: 0,
- opacity: 0.85
- },
- '.dot:hover': {
- opacity: 1
- },
- 'circle.data-point': {
- r: 4,
- opacity: 0.7
- },
- 'circle.data-point:hover': {
- r: 6,
- opacity: 1
- },
- 'circle.tick-circle': {
- r: 2,
- fill: 'lightgrey'
- },
- '.x circle.tick-circle': {
- cy: '8px'
- },
- '.axis': {
- 'font-family': 'dobra-light,Arial,sans-serif',
- 'font-size': '9px'
- },
- '.axis .label': {
- font: '14px arial'
- },
- '.axis path, .axis line': {
- fill: 'none',
- strokeWidth: 1,
- 'shape-rendering': 'crispEdges'
- },
- 'x.axis path': {
- display: 'none',
- stroke: 'lightgrey'
- },
- '.tick line': {
- stroke: 'lightgrey',
- strokeWidth: 1,
- opacity: '0.7'
- }
-};
-module.exports = exports['default'];
-//# sourceMappingURL=defaultStyles.js.map
\ No newline at end of file
diff --git a/npmdist/line-chart/hybrid/LineChart/common/defaultStyles.js.map b/npmdist/line-chart/hybrid/LineChart/common/defaultStyles.js.map
deleted file mode 100644
index 748bd6c..0000000
--- a/npmdist/line-chart/hybrid/LineChart/common/defaultStyles.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../../../../modules/line-chart/hybrid/LineChart/common/defaultStyles.js"],"names":[],"mappings":";;;;;kBAAe;AACb,WAAS;AACP,UAAM,MADC;AAEP,iBAAa,GAFN;AAGP,aAAS;AAHF,GADI;AAMb,iBAAe;AACb,aAAS;AADI,GANF;AASb,WAAS;AACP,aAAS;AADF,GATI;AAYb,iBAAe;AACb,aAAS;AADI,GAZF;AAeb,UAAQ;AACN,iBAAa,CADP;AAEN,aAAS;AAFH,GAfK;AAmBb,gBAAc;AACZ,aAAS;AADG,GAnBD;AAsBb,uBAAqB;AACnB,OAAG,CADgB;AAEnB,aAAS;AAFU,GAtBR;AA0Bb,6BAA2B;AACzB,OAAG,CADsB;AAEzB,aAAS;AAFgB,GA1Bd;AA8Bb,wBAAsB;AACpB,OAAG,CADiB;AAEpB,UAAM;AAFc,GA9BT;AAkCb,2BAAyB;AACvB,QAAI;AADmB,GAlCZ;AAqCb,WAAS;AACP,mBAAe,8BADR;AAEP,iBAAa;AAFN,GArCI;AAyCb,kBAAgB;AACd,UAAM;AADQ,GAzCH;AA4Cb,4BAA0B;AACxB,UAAM,MADkB;AAExB,iBAAa,CAFW;AAGxB,uBAAmB;AAHK,GA5Cb;AAiDb,iBAAe;AACb,aAAS,MADI;AAEb,YAAQ;AAFK,GAjDF;AAqDb,gBAAc;AACZ,YAAQ,WADI;AAEZ,iBAAa,CAFD;AAGZ,aAAS;AAHG;AArDD,C","file":"defaultStyles.js","sourcesContent":["export default {\n '.line': {\n fill: 'none',\n strokeWidth: 1.5,\n opacity: 0.7\n },\n '.line:hover': {\n opacity: 1\n },\n '.area': {\n opacity: 0.7\n },\n '.area:hover': {\n opacity: 1\n },\n '.dot': {\n strokeWidth: 0,\n opacity: 0.85\n },\n '.dot:hover': {\n opacity: 1\n },\n 'circle.data-point': {\n r: 4,\n opacity: 0.7\n },\n 'circle.data-point:hover': {\n r: 6,\n opacity: 1\n },\n 'circle.tick-circle': {\n r: 2,\n fill: 'lightgrey'\n },\n '.x circle.tick-circle': {\n cy: '8px'\n },\n '.axis': {\n 'font-family': 'dobra-light,Arial,sans-serif',\n 'font-size': '9px'\n },\n '.axis .label': {\n font: '14px arial'\n },\n '.axis path, .axis line': {\n fill: 'none',\n strokeWidth: 1,\n 'shape-rendering': 'crispEdges'\n },\n 'x.axis path': {\n display: 'none',\n stroke: 'lightgrey'\n },\n '.tick line': {\n stroke: 'lightgrey',\n strokeWidth: 1,\n opacity: '0.7'\n }\n};\n"]}
\ No newline at end of file
diff --git a/npmdist/line-chart/hybrid/LineChart/index.js b/npmdist/line-chart/hybrid/LineChart/index.js
deleted file mode 100644
index c7254d5..0000000
--- a/npmdist/line-chart/hybrid/LineChart/index.js
+++ /dev/null
@@ -1,282 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-
-var _d = require('d3');
-
-var _common = require('./common');
-
-function initialise(chart, props) {
- var data = props.data;
- var type = props.type;
- var xType = props.xType;
- var yType = props.yType;
- var grid = props.grid;
- var hGrid = props.hGrid;
- var vGrid = props.vGrid;
- var width = props.width;
- var height = props.height;
- var margin = props.margin;
- var orient = props.orient;
- var xLabel = props.xLabel;
- var yLabel = props.yLabel;
- var colors = props.colors;
- var interpolate = props.interpolate;
- var pattern = props.pattern;
- var xDomain = props.xDomain;
- var yDomain = props.yDomain;
- var t = margin.top;
- var r = margin.right;
- var b = margin.bottom;
- var l = margin.left;
-
-
- var m = {
- t: t,
- r: r,
- b: b,
- l: l
- };
-
- var w = [width, l, // margin.left
- r // margin.right
- ].reduce(_common.reduce);
-
- var h = [height, t, // margin.top
- b // margin.bottom
- ].reduce(_common.reduce);
-
- var strokes = colors.concat(_common.defaultColors);
-
- var types = {
- x: xType || type,
- y: yType || type
- };
-
- var domains = {
- x: Array.isArray(xDomain) ? xDomain : (0, _common.createDomainX)(types.x, data, pattern),
- y: Array.isArray(yDomain) ? yDomain : (0, _common.createDomainY)(types.y, data, pattern)
- };
-
- var scales = {
- x: (0, _common.createScaleX)(types.x, domains.x, w),
- y: (0, _common.createScaleY)(types.y, domains.y, h)
- };
-
- var parsers = {
- x: (0, _common.createParserX)(types.x, pattern),
- y: (0, _common.createParserY)(types.y, pattern)
- };
-
- /*
- const patterns = {
- x: xPattern || pattern,
- y: yPattern || pattern
- };
- const formats = {
- x: createFormatX(types.x, patterns.x),
- y: createFormatY(types.y, patterns.y)
- };
- */
-
- var linePath = _d.svg.line().interpolate(interpolate).x(function (d) {
- return scales.x(parsers.x(d));
- }).y(function (d) {
- return scales.y(parsers.y(d));
- });
-
- var root = (0, _d.select)(chart).append('g').attr('class', 'chartGroup').attr('transform', 'translate(' + l + ', ' + t + ')');
-
- var xAxis = _d.svg.axis().scale(scales.x).orient('bottom');
-
- if (vGrid || grid) {
- xAxis.tickSize(-h, 6).tickPadding(10);
- } else {
- xAxis.tickSize(0, 6).tickPadding(16);
- }
-
- var xGroup = root.append('g').attr('class', 'x axis').attr('transform', 'translate(0, ' + h + ')');
-
- xGroup.call(xAxis);
-
- if (xLabel) {
- xGroup.append('text').attr('class', 'label').attr('x', orient === 'right' ? 0 : w).attr('y', m.b - m.t).attr('dx', orient === 'right' ? '0em' : '-.175em').attr('dy', '-.175em').style('dominant-baseline', 'ideographic').style('text-anchor', orient === 'right' ? 'start' : 'end').text(xLabel);
- }
-
- var yAxis = _d.svg.axis().scale(scales.y).orient(orient === 'right' ? 'right' : 'left');
-
- if (hGrid || grid) {
- yAxis.tickSize(-w, 6).tickPadding(10);
- } else {
- yAxis.tickSize(0, 6).tickPadding(16);
- }
-
- var yGroup = root.append('g').attr('class', 'y axis').attr('transform', orient === 'right' ? 'translate(' + w + ', 0)' : 'translate(0, 0)');
-
- yGroup.call(yAxis);
-
- if (yLabel) {
- yGroup.append('text').attr('class', 'label').attr('transform', 'rotate(-90)').attr('x', 0).attr('y', orient === 'right' ? +m.r - m.l : -m.l + m.r).attr('dx', 0).attr('dy', orient === 'right' ? '-.175em' : '1em').style('dominant-baseline', 'ideographic').style('text-anchor', 'end').text(yLabel);
- }
-
- var getStroke = function getStroke(d, i) {
- return strokes[i];
- };
-
- var chartPathsGroup = root.append('g').attr('class', 'chartPathsGroup');
-
- chartPathsGroup.selectAll('path').data(data).enter().append('path').attr('class', 'line').style('stroke', getStroke).attr('d', linePath);
-}
-
-function transition(chart, props) {
- var data = props.data;
- var type = props.type;
- var xType = props.xType;
- var yType = props.yType;
- var grid = props.grid;
- var hGrid = props.hGrid;
- var vGrid = props.vGrid;
- var width = props.width;
- var height = props.height;
- var margin = props.margin;
- var orient = props.orient;
- var xLabel = props.xLabel;
- var yLabel = props.yLabel;
- var colors = props.colors;
- var interpolate = props.interpolate;
- var pattern = props.pattern;
- var xDomain = props.xDomain;
- var yDomain = props.yDomain;
- var t = margin.top;
- var r = margin.right;
- var b = margin.bottom;
- var l = margin.left;
-
-
- var m = {
- t: t,
- r: r,
- b: b,
- l: l
- };
-
- var w = [width, l, // margin.left
- r // margin.right
- ].reduce(_common.reduce);
-
- var h = [height, t, // margin.top
- b // margin.bottom
- ].reduce(_common.reduce);
-
- var strokes = colors.concat(_common.defaultColors);
-
- var types = {
- x: xType || type,
- y: yType || type
- };
-
- var domains = {
- x: Array.isArray(xDomain) ? xDomain : (0, _common.createDomainX)(types.x, data, pattern),
- y: Array.isArray(yDomain) ? yDomain : (0, _common.createDomainY)(types.y, data, pattern)
- };
-
- var scales = {
- x: (0, _common.createScaleX)(types.x, domains.x, w),
- y: (0, _common.createScaleY)(types.y, domains.y, h)
- };
-
- var parsers = {
- x: (0, _common.createParserX)(types.x, pattern),
- y: (0, _common.createParserY)(types.y, pattern)
- };
-
- /*
- const patterns = {
- x: xPattern || pattern,
- y: yPattern || pattern
- };
- const formats = {
- x: createFormatX(types.x, patterns.x),
- y: createFormatY(types.y, patterns.y)
- };
- */
-
- var linePath = _d.svg.line().interpolate(interpolate).x(function (d) {
- return scales.x(parsers.x(d));
- }).y(function (d) {
- return scales.y(parsers.y(d));
- });
-
- var n = data.length;
-
- var root = (0, _d.select)(chart).selectAll('g.chartGroup');
-
- root.transition().duration(750).attr('transform', 'translate(' + l + ', ' + t + ')');
-
- var xAxis = _d.svg.axis().scale(scales.x).orient('bottom');
-
- if (vGrid || grid) {
- xAxis.tickSize(-h, 6).tickPadding(10);
- } else {
- xAxis.tickSize(0, 6).tickPadding(16);
- }
-
- var xGroup = root.selectAll('g.x.axis');
-
- xGroup.call(xAxis);
-
- xGroup.transition().duration(750).attr('transform', 'translate(0, ' + h + ')');
-
- xGroup.selectAll('text.label').remove();
-
- if (xLabel) {
- xGroup.append('text').attr('class', 'label').attr('x', orient === 'right' ? 0 : w).attr('y', m.b - m.t).attr('dx', orient === 'right' ? '0em' : '-.175em').attr('dy', '-.175em').style('dominant-baseline', 'ideographic').style('text-anchor', orient === 'right' ? 'start' : 'end').text(xLabel);
- }
-
- var yAxis = _d.svg.axis().scale(scales.y).orient(orient === 'right' ? 'right' : 'left');
-
- if (hGrid || grid) {
- yAxis.tickSize(-w, 6).tickPadding(10);
- } else {
- yAxis.tickSize(0, 6).tickPadding(16);
- }
-
- var yGroup = root.selectAll('g.y.axis');
-
- yGroup.call(yAxis);
-
- yGroup.transition().duration(750).attr('transform', orient === 'right' ? 'translate(' + w + ', 0)' : 'translate(0, 0)');
-
- yGroup.selectAll('text.label').remove();
-
- if (yLabel) {
- yGroup.append('text').attr('class', 'label').attr('transform', 'rotate(-90)').attr('x', 0).attr('y', orient === 'right' ? +m.r - m.l : -m.l + m.r).attr('dx', 0).attr('dy', orient === 'right' ? '-.175em' : '1em').style('dominant-baseline', 'ideographic').style('text-anchor', 'end').text(yLabel);
- }
-
- var getStroke = function getStroke(d, i) {
- return strokes[i];
- };
-
- var chartPathsGroup = root.selectAll('g.chartPathsGroup path').data(data);
-
- if (n) {
- chartPathsGroup.transition().duration(750).attr('class', 'line').style('stroke', getStroke).attr('d', function (d) {
- return linePath(d);
- });
-
- chartPathsGroup.enter().append('path').attr('class', 'line').style('stroke', getStroke).attr('d', function (d) {
- return linePath(d);
- });
- }
-
- chartPathsGroup.exit().remove();
-}
-
-exports.default = {
- initialise: initialise,
- transition: transition
-};
-module.exports = exports['default'];
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/npmdist/line-chart/hybrid/LineChart/index.js.map b/npmdist/line-chart/hybrid/LineChart/index.js.map
deleted file mode 100644
index 7e0f925..0000000
--- a/npmdist/line-chart/hybrid/LineChart/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../../../modules/line-chart/hybrid/LineChart/index.js"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import {\n select,\n svg\n} from 'd3';\n\nimport {\n // createUniqueID,\n reduce,\n // defaultStyles,\n // getDefaultAxisStyles,\n defaultColors,\n createDomainX,\n createDomainY,\n createScaleX,\n createScaleY,\n createParserX,\n createParserY // ,\n // createFormatX,\n // createFormatY\n} from './common';\n\nfunction initialise(chart, props) {\n const {\n data,\n // axes,\n type,\n xType,\n yType,\n grid,\n hGrid,\n vGrid,\n width,\n height,\n margin,\n orient,\n xLabel,\n yLabel,\n colors,\n // strokeWidth,\n interpolate,\n pattern,\n // xPattern,\n // yPattern,\n xDomain,\n yDomain\n } = props;\n\n const {\n top: t,\n right: r,\n bottom: b,\n left: l\n } = margin;\n\n const m = {\n t,\n r,\n b,\n l\n };\n\n const w = [\n width,\n l, // margin.left\n r // margin.right\n ].reduce(reduce);\n\n const h = [\n height,\n t, // margin.top\n b // margin.bottom\n ].reduce(reduce);\n\n const strokes = colors.concat(defaultColors);\n\n const types = {\n x: xType || type,\n y: yType || type\n };\n\n const domains = {\n x: (Array.isArray(xDomain))\n ? xDomain\n : createDomainX(types.x, data, pattern),\n y: (Array.isArray(yDomain))\n ? yDomain\n : createDomainY(types.y, data, pattern)\n };\n\n const scales = {\n x: createScaleX(types.x, domains.x, w),\n y: createScaleY(types.y, domains.y, h)\n };\n\n const parsers = {\n x: createParserX(types.x, pattern),\n y: createParserY(types.y, pattern)\n };\n\n /*\n const patterns = {\n x: xPattern || pattern,\n y: yPattern || pattern\n };\n\n const formats = {\n x: createFormatX(types.x, patterns.x),\n y: createFormatY(types.y, patterns.y)\n };\n */\n\n const linePath = svg.line()\n .interpolate(interpolate)\n .x((d) => scales.x(parsers.x(d)))\n .y((d) => scales.y(parsers.y(d)));\n\n const root = select(chart)\n .append('g')\n .attr('class', 'chartGroup')\n .attr('transform', `translate(${l}, ${t})`);\n\n const xAxis = svg.axis()\n .scale(scales.x)\n .orient('bottom');\n\n if (vGrid || grid) {\n xAxis\n .tickSize(-h, 6)\n .tickPadding(10);\n } else {\n xAxis\n .tickSize(0, 6)\n .tickPadding(16);\n }\n\n const xGroup = root\n .append('g')\n .attr('class', 'x axis')\n .attr('transform', `translate(0, ${h})`);\n\n xGroup\n .call(xAxis);\n\n if (xLabel) {\n xGroup\n .append('text')\n .attr('class', 'label')\n .attr('x', (orient === 'right')\n ? 0\n : w)\n .attr('y', (m.b - m.t))\n .attr('dx', (orient === 'right')\n ? '0em'\n : '-.175em')\n .attr('dy', '-.175em')\n .style('dominant-baseline', 'ideographic')\n .style('text-anchor', (orient === 'right')\n ? 'start'\n : 'end')\n .text(xLabel);\n }\n\n const yAxis = svg.axis()\n .scale(scales.y)\n .orient((orient === 'right')\n ? 'right'\n : 'left');\n\n if (hGrid || grid) {\n yAxis\n .tickSize(-w, 6)\n .tickPadding(10);\n } else {\n yAxis\n .tickSize(0, 6)\n .tickPadding(16);\n }\n\n const yGroup = root\n .append('g')\n .attr('class', 'y axis')\n .attr('transform', (orient === 'right')\n ? `translate(${w}, 0)`\n : 'translate(0, 0)');\n\n yGroup\n .call(yAxis);\n\n if (yLabel) {\n yGroup\n .append('text')\n .attr('class', 'label')\n .attr('transform', 'rotate(-90)')\n .attr('x', 0)\n .attr('y', (orient === 'right')\n ? +m.r - m.l\n : -m.l + m.r)\n .attr('dx', 0)\n .attr('dy', (orient === 'right')\n ? '-.175em'\n : '1em')\n .style('dominant-baseline', 'ideographic')\n .style('text-anchor', 'end')\n .text(yLabel);\n }\n\n const getStroke = (d, i) => strokes[i];\n\n const chartPathsGroup = root\n .append('g')\n .attr('class', 'chartPathsGroup');\n\n chartPathsGroup\n .selectAll('path')\n .data(data)\n .enter()\n .append('path')\n .attr('class', 'line')\n .style('stroke', getStroke)\n .attr('d', linePath);\n}\n\nfunction transition(chart, props) {\n const {\n data,\n // axes,\n type,\n xType,\n yType,\n grid,\n hGrid,\n vGrid,\n width,\n height,\n margin,\n orient,\n xLabel,\n yLabel,\n colors,\n // strokeWidth,\n interpolate,\n pattern,\n // xPattern,\n // yPattern,\n xDomain,\n yDomain\n } = props;\n\n const {\n top: t,\n right: r,\n bottom: b,\n left: l\n } = margin;\n\n const m = {\n t,\n r,\n b,\n l\n };\n\n const w = [\n width,\n l, // margin.left\n r // margin.right\n ].reduce(reduce);\n\n const h = [\n height,\n t, // margin.top\n b // margin.bottom\n ].reduce(reduce);\n\n const strokes = colors.concat(defaultColors);\n\n const types = {\n x: xType || type,\n y: yType || type\n };\n\n const domains = {\n x: (Array.isArray(xDomain))\n ? xDomain\n : createDomainX(types.x, data, pattern),\n y: (Array.isArray(yDomain))\n ? yDomain\n : createDomainY(types.y, data, pattern)\n };\n\n const scales = {\n x: createScaleX(types.x, domains.x, w),\n y: createScaleY(types.y, domains.y, h)\n };\n\n const parsers = {\n x: createParserX(types.x, pattern),\n y: createParserY(types.y, pattern)\n };\n\n /*\n const patterns = {\n x: xPattern || pattern,\n y: yPattern || pattern\n };\n\n const formats = {\n x: createFormatX(types.x, patterns.x),\n y: createFormatY(types.y, patterns.y)\n };\n */\n\n const linePath = svg.line()\n .interpolate(interpolate)\n .x((d) => scales.x(parsers.x(d)))\n .y((d) => scales.y(parsers.y(d)));\n\n const n = data.length;\n\n const root = select(chart)\n .selectAll('g.chartGroup');\n\n root\n .transition()\n .duration(750)\n .attr('transform', `translate(${l}, ${t})`);\n\n const xAxis = svg.axis()\n .scale(scales.x)\n .orient('bottom');\n\n if (vGrid || grid) {\n xAxis\n .tickSize(-h, 6)\n .tickPadding(10);\n } else {\n xAxis\n .tickSize(0, 6)\n .tickPadding(16);\n }\n\n const xGroup = root\n .selectAll('g.x.axis');\n\n xGroup\n .call(xAxis);\n\n xGroup\n .transition()\n .duration(750)\n .attr('transform', `translate(0, ${h})`);\n\n xGroup\n .selectAll('text.label')\n .remove();\n\n if (xLabel) {\n xGroup\n .append('text')\n .attr('class', 'label')\n .attr('x', (orient === 'right')\n ? 0\n : w)\n .attr('y', (m.b - m.t))\n .attr('dx', (orient === 'right')\n ? '0em'\n : '-.175em')\n .attr('dy', '-.175em')\n .style('dominant-baseline', 'ideographic')\n .style('text-anchor', (orient === 'right')\n ? 'start'\n : 'end')\n .text(xLabel);\n }\n\n const yAxis = svg.axis()\n .scale(scales.y)\n .orient((orient === 'right')\n ? 'right'\n : 'left');\n\n if (hGrid || grid) {\n yAxis\n .tickSize(-w, 6)\n .tickPadding(10);\n } else {\n yAxis\n .tickSize(0, 6)\n .tickPadding(16);\n }\n\n const yGroup = root\n .selectAll('g.y.axis');\n\n yGroup\n .call(yAxis);\n\n yGroup\n .transition()\n .duration(750)\n .attr('transform', (orient === 'right')\n ? `translate(${w}, 0)`\n : 'translate(0, 0)');\n\n yGroup\n .selectAll('text.label')\n .remove();\n\n if (yLabel) {\n yGroup\n .append('text')\n .attr('class', 'label')\n .attr('transform', 'rotate(-90)')\n .attr('x', 0)\n .attr('y', (orient === 'right')\n ? +m.r - m.l\n : -m.l + m.r)\n .attr('dx', 0)\n .attr('dy', (orient === 'right')\n ? '-.175em'\n : '1em')\n .style('dominant-baseline', 'ideographic')\n .style('text-anchor', 'end')\n .text(yLabel);\n }\n\n const getStroke = (d, i) => strokes[i];\n\n const chartPathsGroup = root\n .selectAll('g.chartPathsGroup path')\n .data(data);\n\n if (n) {\n chartPathsGroup\n .transition()\n .duration(750)\n .attr('class', 'line')\n .style('stroke', getStroke)\n .attr('d', (d) => linePath(d));\n\n chartPathsGroup\n .enter()\n .append('path')\n .attr('class', 'line')\n .style('stroke', getStroke)\n .attr('d', (d) => linePath(d));\n }\n\n chartPathsGroup\n .exit()\n .remove();\n}\n\nexport default {\n initialise,\n transition\n};\n"]}
\ No newline at end of file
diff --git a/npmdist/line-chart/hybrid/index.js b/npmdist/line-chart/hybrid/index.js
deleted file mode 100644
index 07403cb..0000000
--- a/npmdist/line-chart/hybrid/index.js
+++ /dev/null
@@ -1,172 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-
-var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
-
-var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
-
-var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
-
-var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
-
-var _createClass2 = require('babel-runtime/helpers/createClass');
-
-var _createClass3 = _interopRequireDefault(_createClass2);
-
-var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
-
-var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
-
-var _inherits2 = require('babel-runtime/helpers/inherits');
-
-var _inherits3 = _interopRequireDefault(_inherits2);
-
-var _react = require('react');
-
-var _react2 = _interopRequireDefault(_react);
-
-var _common = require('./LineChart/common');
-
-var _radium = require('radium');
-
-var _lodash = require('lodash.merge');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-var _LineChart = require('./LineChart');
-
-var _LineChart2 = _interopRequireDefault(_LineChart);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var LineChart = function (_React$Component) {
- (0, _inherits3.default)(LineChart, _React$Component);
-
- function LineChart(props) {
- (0, _classCallCheck3.default)(this, LineChart);
-
- var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(LineChart).call(this, props));
-
- _this.uid = (0, _common.createUniqueID)();
- return _this;
- }
-
- (0, _createClass3.default)(LineChart, [{
- key: 'componentDidMount',
- value: function componentDidMount() {
- var chart = this.refs.chart;
-
-
- var props = this.props;
-
- _LineChart2.default.initialise(chart, props);
- }
- }, {
- key: 'componentDidUpdate',
- value: function componentDidUpdate() {
- var chart = this.refs.chart;
-
-
- var props = this.props;
-
- _LineChart2.default.transition(chart, props);
- }
- }, {
- key: 'createStyle',
- value: function createStyle() {
- var _props = this.props;
- var style = _props.style;
- var grid = _props.grid;
- var vGrid = _props.vGrid;
- var hGrid = _props.hGrid;
- var orient = _props.orient;
-
-
- var uid = this.uid;
- var scope = '.line-chart-' + uid;
- var defaultAxisStyles = (0, _common.getDefaultAxisStyles)(vGrid || grid, hGrid || grid, orient);
- var rules = (0, _lodash2.default)({}, _common.defaultStyles, style, defaultAxisStyles);
-
- return _react2.default.createElement(_radium.Style, {
- scopeSelector: scope,
- rules: rules
- });
- }
- }, {
- key: 'render',
- value: function render() {
- var _props2 = this.props;
- var width = _props2.width;
- var height = _props2.height;
-
-
- var uid = this.uid;
- var className = 'line-chart-' + uid;
-
- return _react2.default.createElement(
- 'div',
- { ref: 'lineChart', className: className },
- this.createStyle(),
- _react2.default.createElement('svg', { ref: 'chart', width: width, height: height })
- );
- }
- }]);
- return LineChart;
-}(_react2.default.Component);
-
-exports.default = LineChart;
-
-
-LineChart.propTypes = {
- data: _react2.default.PropTypes.array.isRequired,
- axes: _react2.default.PropTypes.bool,
- grid: _react2.default.PropTypes.bool,
- hGrid: _react2.default.PropTypes.bool,
- vGrid: _react2.default.PropTypes.bool,
- type: _react2.default.PropTypes.string,
- xType: _react2.default.PropTypes.string,
- yType: _react2.default.PropTypes.string,
- interpolate: _react2.default.PropTypes.string,
- margin: _react2.default.PropTypes.shape({
- top: _react2.default.PropTypes.number,
- right: _react2.default.PropTypes.number,
- bottom: _react2.default.PropTypes.number,
- left: _react2.default.PropTypes.number
- }),
- width: _react2.default.PropTypes.number,
- height: _react2.default.PropTypes.number,
- orient: _react2.default.PropTypes.string,
- colors: _react2.default.PropTypes.array,
- strokeWidth: _react2.default.PropTypes.number,
- stroke: _react2.default.PropTypes.object,
- style: _react2.default.PropTypes.object,
- xLabel: _react2.default.PropTypes.string,
- yLabel: _react2.default.PropTypes.string,
- xDomain: _react2.default.PropTypes.array,
- yDomain: _react2.default.PropTypes.array,
- pattern: _react2.default.PropTypes.string,
- xPattern: _react2.default.PropTypes.string,
- yPattern: _react2.default.PropTypes.string
-};
-
-LineChart.defaultProps = {
- type: 'linear',
- xType: 'linear',
- yType: 'linear',
- interpolate: 'linear',
- margin: {
- top: 0,
- right: 0,
- bottom: 0,
- left: 0
- },
- orient: 'left',
- colors: [],
- strokeWidth: 2,
- style: {}
-};
-module.exports = exports['default'];
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/npmdist/line-chart/hybrid/index.js.map b/npmdist/line-chart/hybrid/index.js.map
deleted file mode 100644
index 08c5a52..0000000
--- a/npmdist/line-chart/hybrid/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../../modules/line-chart/hybrid/index.js"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import React from 'react';\nimport {\n createUniqueID,\n defaultStyles,\n getDefaultAxisStyles\n} from './LineChart/common';\nimport { Style } from 'radium';\nimport merge from 'lodash.merge';\n\nimport lineChart from './LineChart';\n\nexport default class LineChart extends React.Component {\n constructor(props) {\n super(props);\n this.uid = createUniqueID();\n }\n\n componentDidMount() {\n const {\n chart\n } = this.refs;\n\n const props = this.props;\n\n lineChart.initialise(chart, props);\n }\n\n componentDidUpdate() {\n const {\n chart\n } = this.refs;\n\n const props = this.props;\n\n lineChart.transition(chart, props);\n }\n\n createStyle() {\n const {\n style,\n grid,\n vGrid,\n hGrid,\n orient\n } = this.props;\n\n const uid = this.uid;\n const scope = `.line-chart-${uid}`;\n const defaultAxisStyles = getDefaultAxisStyles(vGrid || grid, hGrid || grid, orient);\n const rules = merge({}, defaultStyles, style, defaultAxisStyles);\n\n return (\n \n );\n }\n\n render() {\n const {\n width,\n height\n } = this.props;\n\n const uid = this.uid;\n const className = `line-chart-${uid}`;\n\n return (\n \n {this.createStyle()}\n \n
\n );\n }\n}\n\nLineChart.propTypes = {\n data: React.PropTypes.array.isRequired,\n axes: React.PropTypes.bool,\n grid: React.PropTypes.bool,\n hGrid: React.PropTypes.bool,\n vGrid: React.PropTypes.bool,\n type: React.PropTypes.string,\n xType: React.PropTypes.string,\n yType: React.PropTypes.string,\n interpolate: React.PropTypes.string,\n margin: React.PropTypes.shape({\n top: React.PropTypes.number,\n right: React.PropTypes.number,\n bottom: React.PropTypes.number,\n left: React.PropTypes.number\n }),\n width: React.PropTypes.number,\n height: React.PropTypes.number,\n orient: React.PropTypes.string,\n colors: React.PropTypes.array,\n strokeWidth: React.PropTypes.number,\n stroke: React.PropTypes.object,\n style: React.PropTypes.object,\n xLabel: React.PropTypes.string,\n yLabel: React.PropTypes.string,\n xDomain: React.PropTypes.array,\n yDomain: React.PropTypes.array,\n pattern: React.PropTypes.string,\n xPattern: React.PropTypes.string,\n yPattern: React.PropTypes.string\n};\n\nLineChart.defaultProps = {\n type: 'linear',\n xType: 'linear',\n yType: 'linear',\n interpolate: 'linear',\n margin: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n orient: 'left',\n colors: [],\n strokeWidth: 2,\n style: {}\n};\n"]}
\ No newline at end of file
diff --git a/npmdist/line-chart/index.js b/npmdist/line-chart/index.js
deleted file mode 100644
index b02229d..0000000
--- a/npmdist/line-chart/index.js
+++ /dev/null
@@ -1,452 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-
-var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
-
-var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
-
-var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
-
-var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
-
-var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
-
-var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
-
-var _createClass2 = require('babel-runtime/helpers/createClass');
-
-var _createClass3 = _interopRequireDefault(_createClass2);
-
-var _inherits2 = require('babel-runtime/helpers/inherits');
-
-var _inherits3 = _interopRequireDefault(_inherits2);
-
-var _react = require('react');
-
-var _react2 = _interopRequireDefault(_react);
-
-var _reactFauxDom = require('react-faux-dom');
-
-var _d = require('d3');
-
-var _shared = require('../shared');
-
-var _radium = require('radium');
-
-var _lodash = require('lodash.merge');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-var _d3TimeFormat = require('d3-time-format');
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var dateParser = {};
-
-var LineChart = function (_React$Component) {
- (0, _inherits3.default)(LineChart, _React$Component);
- (0, _createClass3.default)(LineChart, null, [{
- key: 'propTypes',
- get: function get() {
- return {
- data: _react2.default.PropTypes.array.isRequired,
- width: _react2.default.PropTypes.number,
- height: _react2.default.PropTypes.number,
- xType: _react2.default.PropTypes.string,
- yType: _react2.default.PropTypes.string,
- datePattern: _react2.default.PropTypes.string,
- interpolate: _react2.default.PropTypes.string,
- style: _react2.default.PropTypes.object,
- margin: _react2.default.PropTypes.object,
- axes: _react2.default.PropTypes.bool,
- grid: _react2.default.PropTypes.bool,
- verticalGrid: _react2.default.PropTypes.bool,
- xDomainRange: _react2.default.PropTypes.array,
- yDomainRange: _react2.default.PropTypes.array,
- tickTimeDisplayFormat: _react2.default.PropTypes.string,
- yTicks: _react2.default.PropTypes.number,
- xTicks: _react2.default.PropTypes.number,
- dataPoints: _react2.default.PropTypes.bool,
- lineColors: _react2.default.PropTypes.array,
- axisLabels: _react2.default.PropTypes.shape({
- x: _react2.default.PropTypes.string,
- y: _react2.default.PropTypes.string
- }),
- yAxisOrientRight: _react2.default.PropTypes.bool,
- mouseOverHandler: _react2.default.PropTypes.func,
- mouseOutHandler: _react2.default.PropTypes.func,
- mouseMoveHandler: _react2.default.PropTypes.func,
- clickHandler: _react2.default.PropTypes.func
- };
- }
- }, {
- key: 'defaultProps',
- get: function get() {
- return {
- width: 200,
- height: 150,
- datePattern: '%d-%b-%y',
- interpolate: 'linear',
- axes: false,
- xType: 'linear',
- yType: 'linear',
- lineColors: [],
- axisLabels: {
- x: '',
- y: ''
- },
- mouseOverHandler: function mouseOverHandler() {},
- mouseOutHandler: function mouseOutHandler() {},
- mouseMoveHandler: function mouseMoveHandler() {},
- clickHandler: function clickHandler() {}
- };
- }
- }]);
-
- function LineChart(props) {
- (0, _classCallCheck3.default)(this, LineChart);
-
- var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(LineChart).call(this, props));
-
- _this.uid = (0, _shared.createUniqueID)(props);
- return _this;
- }
-
- (0, _createClass3.default)(LineChart, [{
- key: 'componentDidMount',
- value: function componentDidMount() {
- var lineChart = this.refs.lineChart;
- (0, _shared.createCircularTicks)(lineChart);
- }
- }, {
- key: 'componentDidUpdate',
- value: function componentDidUpdate() {
- var lineChart = this.refs.lineChart;
- (0, _shared.createCircularTicks)(lineChart);
- }
- }, {
- key: 'createSvgNode',
- value: function createSvgNode(_ref) {
- var m = _ref.m;
- var w = _ref.w;
- var h = _ref.h;
-
- var node = (0, _reactFauxDom.createElement)('svg');
- node.setAttribute('width', w + m.left + m.right);
- node.setAttribute('height', h + m.top + m.bottom);
- return node;
- }
- }, {
- key: 'createSvgRoot',
- value: function createSvgRoot(_ref2) {
- var node = _ref2.node;
- var m = _ref2.m;
-
- return (0, _d.select)(node).append('g').attr('transform', 'translate(' + m.left + ', ' + m.top + ')');
- }
- }, {
- key: 'createXAxis',
- value: function createXAxis(_ref3) {
- var root = _ref3.root;
- var m = _ref3.m;
- var w = _ref3.w;
- var h = _ref3.h;
- var x = _ref3.x;
- var _props = this.props;
- var xType = _props.xType;
- var label = _props.axisLabels.x;
- var xTicks = _props.xTicks;
- var grid = _props.grid;
- var verticalGrid = _props.verticalGrid;
- var tickTimeDisplayFormat = _props.tickTimeDisplayFormat;
- var yAxisOrientRight = _props.yAxisOrientRight;
-
-
- var axis = _d.svg.axis().scale(x).orient('bottom');
-
- if (xType === 'time' && tickTimeDisplayFormat) {
- axis.tickFormat(_d.time.format(tickTimeDisplayFormat));
- }
-
- if (grid && verticalGrid) {
- axis.tickSize(-h, 6).tickPadding(15);
- } else {
- axis.tickSize(0).tickPadding(15);
- }
-
- if (xTicks) {
- axis.ticks(xTicks);
- }
-
- var group = root.append('g').attr('class', 'x axis').attr('transform', 'translate(0, ' + h + ')');
-
- group.call(axis);
-
- if (label) {
- group.append('text').attr('class', 'label').attr('y', m.bottom - 10).attr('x', yAxisOrientRight ? 0 : w).style('text-anchor', yAxisOrientRight ? 'start' : 'end').text(label);
- }
- }
- }, {
- key: 'createYAxis',
- value: function createYAxis(_ref4) {
- var root = _ref4.root;
- var m = _ref4.m;
- var w = _ref4.w;
- var y = _ref4.y;
- var _props2 = this.props;
- var yType = _props2.yType;
- var label = _props2.axisLabels.y;
- var yTicks = _props2.yTicks;
- var grid = _props2.grid;
- var tickTimeDisplayFormat = _props2.tickTimeDisplayFormat;
- var yAxisOrientRight = _props2.yAxisOrientRight;
-
-
- var axis = _d.svg.axis().scale(y).orient(yAxisOrientRight ? 'right' : 'left');
-
- if (yType === 'time' && tickTimeDisplayFormat) {
- axis.tickFormat(_d.time.format(tickTimeDisplayFormat));
- }
- if (grid) {
- axis.tickSize(-w, 6).tickPadding(12);
- } else {
- axis.tickPadding(10);
- }
-
- if (yTicks) {
- axis.ticks(yTicks);
- }
-
- var group = root.append('g').attr('class', 'y axis').attr('transform', yAxisOrientRight ? 'translate(' + w + ', 0)' : 'translate(0, 0)');
-
- group.call(axis);
-
- if (label) {
- group.append('text').attr('class', 'label').attr('transform', 'rotate(-90)').attr('x', 0).attr('y', yAxisOrientRight ? -20 + m.right : 0 - m.left).attr('dy', '.9em').style('text-anchor', 'end').text(label);
- }
- }
- }, {
- key: 'createLinePathChart',
- value: function createLinePathChart(_ref5) {
- var root = _ref5.root;
- var x = _ref5.x;
- var y = _ref5.y;
- var xValue = _ref5.xValue;
- var yValue = _ref5.yValue;
- var colors = _ref5.colors;
- var _props3 = this.props;
- var data = _props3.data;
- var interpolate = _props3.interpolate;
-
-
- var getStroke = function getStroke(d, i) {
- return colors[i];
- };
-
- var linePath = _d.svg.line().interpolate(interpolate).x(function (d) {
- return x(xValue(d));
- }).y(function (d) {
- return y(yValue(d));
- });
-
- var group = root.append('g').attr('class', 'lineChart');
-
- group.selectAll('path').data(data).enter().append('path').attr('class', 'line').style('stroke', getStroke).attr('d', linePath);
- }
- }, {
- key: 'createPoints',
- value: function createPoints(_ref6) {
- var _this2 = this;
-
- var root = _ref6.root;
- var x = _ref6.x;
- var y = _ref6.y;
- var colors = _ref6.colors;
- var _props4 = this.props;
- var data = _props4.data;
- var xType = _props4.xType;
- var yType = _props4.yType;
- var mouseOverHandler = _props4.mouseOverHandler;
- var mouseOutHandler = _props4.mouseOutHandler;
- var mouseMoveHandler = _props4.mouseMoveHandler;
- var clickHandler = _props4.clickHandler;
-
- /*
- * We don't really need to do this, but it
- * avoids obscure "this" below
- */
-
- var calculateDate = function calculateDate(v) {
- return _this2.parseDate(v);
- };
-
- var getStroke = function getStroke(d, i) {
- return colors[i];
- };
-
- /*
- * Creating the calculation functions
- */
- var calculateCX = function calculateCX(d) {
- return xType === 'time' ? x(calculateDate(d.x)) : x(d.x);
- };
- var calculateCY = function calculateCY(d) {
- return yType === 'time' ? y(calculateDate(d.y)) : y(d.y);
- };
-
- var mouseover = function mouseover(d) {
- return mouseOverHandler(d, _d.event);
- };
- var mouseout = function mouseout(d) {
- return mouseOutHandler(d, _d.event);
- };
- var mousemove = function mousemove(d) {
- return mouseMoveHandler(d, _d.event);
- };
- var click = function click(d) {
- return clickHandler(d, _d.event);
- };
-
- var group = root.append('g').attr('class', 'dataPoints');
-
- data.forEach(function (item) {
- item.forEach(function (d) {
- /*
- * Applying the calculation functions
- */
- group.datum(d).append('circle').attr('class', 'data-point').style('strokeWidth', '2px').style('stroke', getStroke).style('fill', 'white').attr('cx', calculateCX).attr('cy', calculateCY).on('mouseover', mouseover).on('mouseout', mouseout).on('mousemove', mousemove).on('click', click);
- });
- });
- }
- }, {
- key: 'createStyle',
- value: function createStyle() {
- var _props5 = this.props;
- var style = _props5.style;
- var grid = _props5.grid;
- var verticalGrid = _props5.verticalGrid;
- var yAxisOrientRight = _props5.yAxisOrientRight;
-
-
- var uid = this.uid;
- var scope = '.line-chart-' + uid;
- var axisStyles = (0, _shared.getAxisStyles)(grid, verticalGrid, yAxisOrientRight);
- var rules = (0, _lodash2.default)({}, _shared.defaultStyles, style, axisStyles);
-
- return _react2.default.createElement(_radium.Style, {
- scopeSelector: scope,
- rules: rules
- });
- }
- }, {
- key: 'parseDate',
- value: function parseDate(v) {
- var datePattern = this.props.datePattern;
-
-
- var datePatternParser = dateParser[datePattern] || (dateParser[datePattern] = (0, _d3TimeFormat.timeParse)(datePattern));
-
- return datePatternParser(v);
- }
- }, {
- key: 'calculateChartParameters',
- value: function calculateChartParameters() {
- var _this3 = this;
-
- var _props6 = this.props;
- var data = _props6.data;
- var axes = _props6.axes;
- var xType = _props6.xType;
- var yType = _props6.yType;
- var xDomainRange = _props6.xDomainRange;
- var yDomainRange = _props6.yDomainRange;
- var margin = _props6.margin;
- var width = _props6.width;
- var height = _props6.height;
- var lineColors = _props6.lineColors;
- var yAxisOrientRight = _props6.yAxisOrientRight;
-
- /*
- * We could "bind"!
- */
-
- var parseDate = function parseDate(v) {
- return _this3.parseDate(v);
- };
-
- /*
- * 'w' and 'h' are the width and height of the graph canvas
- * (excluding axes and other furniture)
- */
- var m = (0, _shared.calculateMargin)(axes, margin, yAxisOrientRight);
- var w = (0, _shared.reduce)(width, m.left, m.right);
- var h = (0, _shared.reduce)(height, m.top, m.bottom);
-
- var x = (0, _shared.createDomainRangeGenerator)('x', xDomainRange, data, xType, w, parseDate);
- var y = (0, _shared.createDomainRangeGenerator)('y', yDomainRange, data, yType, h, parseDate);
-
- var xValue = (0, _shared.createValueGenerator)('x', xType, parseDate);
- var yValue = (0, _shared.createValueGenerator)('y', yType, parseDate);
-
- var colors = lineColors.concat(_shared.defaultColors);
-
- var node = this.createSvgNode({ m: m, w: w, h: h });
- var root = this.createSvgRoot({ node: node, m: m });
-
- return {
- m: m,
- w: w,
- h: h,
- x: x,
- y: y,
- xValue: xValue,
- yValue: yValue,
- colors: colors,
- node: node,
- root: root
- };
- }
- }, {
- key: 'render',
- value: function render() {
- var _props7 = this.props;
- var axes = _props7.axes;
- var dataPoints = _props7.dataPoints;
-
-
- var p = this.calculateChartParameters();
-
- if (axes) {
- this.createXAxis(p);
-
- this.createYAxis(p);
- }
-
- this.createLinePathChart(p);
-
- if (dataPoints) {
- this.createPoints(p);
- }
-
- var uid = this.uid;
- var className = 'line-chart-' + uid;
- var node = p.node;
-
-
- return _react2.default.createElement(
- 'div',
- { ref: 'lineChart', className: className },
- this.createStyle(),
- node.toReact()
- );
- }
- }]);
- return LineChart;
-}(_react2.default.Component);
-
-exports.default = LineChart;
-module.exports = exports['default'];
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/npmdist/line-chart/index.js.map b/npmdist/line-chart/index.js.map
deleted file mode 100644
index 581e539..0000000
--- a/npmdist/line-chart/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../modules/line-chart/index.js"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import React from 'react';\nimport { createElement } from 'react-faux-dom';\nimport {\n event as lastEvent,\n select,\n svg,\n time\n} from 'd3';\nimport {\n createUniqueID,\n reduce,\n calculateMargin,\n createValueGenerator,\n createDomainRangeGenerator,\n defaultColors,\n defaultStyles,\n getAxisStyles,\n createCircularTicks\n} from '../shared';\nimport { Style } from 'radium';\nimport merge from 'lodash.merge';\nimport { timeParse as parse } from 'd3-time-format';\n\nconst dateParser = {};\n\nexport default class LineChart extends React.Component {\n static get propTypes() {\n return {\n data: React.PropTypes.array.isRequired,\n width: React.PropTypes.number,\n height: React.PropTypes.number,\n xType: React.PropTypes.string,\n yType: React.PropTypes.string,\n datePattern: React.PropTypes.string,\n interpolate: React.PropTypes.string,\n style: React.PropTypes.object,\n margin: React.PropTypes.object,\n axes: React.PropTypes.bool,\n grid: React.PropTypes.bool,\n verticalGrid: React.PropTypes.bool,\n xDomainRange: React.PropTypes.array,\n yDomainRange: React.PropTypes.array,\n tickTimeDisplayFormat: React.PropTypes.string,\n yTicks: React.PropTypes.number,\n xTicks: React.PropTypes.number,\n dataPoints: React.PropTypes.bool,\n lineColors: React.PropTypes.array,\n axisLabels: React.PropTypes.shape({\n x: React.PropTypes.string,\n y: React.PropTypes.string\n }),\n yAxisOrientRight: React.PropTypes.bool,\n mouseOverHandler: React.PropTypes.func,\n mouseOutHandler: React.PropTypes.func,\n mouseMoveHandler: React.PropTypes.func,\n clickHandler: React.PropTypes.func\n };\n }\n\n static get defaultProps() {\n return {\n width: 200,\n height: 150,\n datePattern: '%d-%b-%y',\n interpolate: 'linear',\n axes: false,\n xType: 'linear',\n yType: 'linear',\n lineColors: [],\n axisLabels: {\n x: '',\n y: ''\n },\n mouseOverHandler: () => {},\n mouseOutHandler: () => {},\n mouseMoveHandler: () => {},\n clickHandler: () => {}\n };\n }\n\n constructor(props) {\n super(props);\n this.uid = createUniqueID(props);\n }\n\n componentDidMount() {\n const lineChart = this.refs.lineChart;\n createCircularTicks(lineChart);\n }\n\n componentDidUpdate() {\n const lineChart = this.refs.lineChart;\n createCircularTicks(lineChart);\n }\n\n createSvgNode({ m, w, h }) {\n const node = createElement('svg');\n node.setAttribute('width', w + m.left + m.right);\n node.setAttribute('height', h + m.top + m.bottom);\n return node;\n }\n\n createSvgRoot({ node, m }) {\n return select(node)\n .append('g')\n .attr('transform', `translate(${m.left}, ${m.top})`);\n }\n\n createXAxis({ root, m, w, h, x }) {\n const {\n xType,\n axisLabels: { x: label },\n xTicks,\n grid,\n verticalGrid,\n tickTimeDisplayFormat,\n yAxisOrientRight\n } = this.props;\n\n const axis = svg.axis()\n .scale(x)\n .orient('bottom');\n\n if (xType === 'time' && tickTimeDisplayFormat) {\n axis\n .tickFormat(time.format(tickTimeDisplayFormat));\n }\n\n if (grid && verticalGrid) {\n axis\n .tickSize(-h, 6)\n .tickPadding(15);\n } else {\n axis\n .tickSize(0)\n .tickPadding(15);\n }\n\n if (xTicks) {\n axis.ticks(xTicks);\n }\n\n const group = root\n .append('g')\n .attr('class', 'x axis')\n .attr('transform', `translate(0, ${h})`);\n\n group\n .call(axis);\n\n if (label) {\n group\n .append('text')\n .attr('class', 'label')\n .attr('y', m.bottom - 10)\n .attr('x', yAxisOrientRight ? 0 : w)\n .style('text-anchor',\n (yAxisOrientRight)\n ? 'start'\n : 'end')\n .text(label);\n }\n }\n\n createYAxis({ root, m, w, y }) {\n const {\n yType,\n axisLabels: { y: label },\n yTicks,\n grid,\n tickTimeDisplayFormat,\n yAxisOrientRight\n } = this.props;\n\n const axis = svg.axis()\n .scale(y)\n .orient(yAxisOrientRight ? 'right' : 'left');\n\n if (yType === 'time' && tickTimeDisplayFormat) {\n axis\n .tickFormat(time.format(tickTimeDisplayFormat));\n }\n if (grid) {\n axis\n .tickSize(-w, 6)\n .tickPadding(12);\n } else {\n axis\n .tickPadding(10);\n }\n\n if (yTicks) {\n axis.ticks(yTicks);\n }\n\n const group = root\n .append('g')\n .attr('class', 'y axis')\n .attr('transform',\n (yAxisOrientRight)\n ? `translate(${w}, 0)`\n : 'translate(0, 0)');\n\n group\n .call(axis);\n\n if (label) {\n group\n .append('text')\n .attr('class', 'label')\n .attr('transform', 'rotate(-90)')\n .attr('x', 0)\n .attr('y',\n (yAxisOrientRight)\n ? -20 + m.right\n : 0 - m.left)\n .attr('dy', '.9em')\n .style('text-anchor', 'end')\n .text(label);\n }\n }\n\n createLinePathChart({ root, x, y, xValue, yValue, colors }) {\n const {\n data,\n interpolate\n } = this.props;\n\n const getStroke = (d, i) => colors[i];\n\n const linePath = svg.line()\n .interpolate(interpolate)\n .x((d) => x(xValue(d)))\n .y((d) => y(yValue(d)));\n\n const group = root\n .append('g')\n .attr('class', 'lineChart');\n\n group\n .selectAll('path')\n .data(data)\n .enter()\n .append('path')\n .attr('class', 'line')\n .style('stroke', getStroke)\n .attr('d', linePath);\n }\n\n createPoints({ root, x, y, colors }) {\n const {\n data,\n xType,\n yType,\n mouseOverHandler,\n mouseOutHandler,\n mouseMoveHandler,\n clickHandler\n } = this.props;\n\n /*\n * We don't really need to do this, but it\n * avoids obscure \"this\" below\n */\n const calculateDate = (v) => this.parseDate(v);\n\n const getStroke = (d, i) => colors[i];\n\n /*\n * Creating the calculation functions\n */\n const calculateCX = (d) => (\n (xType === 'time')\n ? x(calculateDate(d.x))\n : x(d.x));\n const calculateCY = (d) => (\n (yType === 'time')\n ? y(calculateDate(d.y))\n : y(d.y));\n\n const mouseover = (d) => mouseOverHandler(d, lastEvent);\n const mouseout = (d) => mouseOutHandler(d, lastEvent);\n const mousemove = (d) => mouseMoveHandler(d, lastEvent);\n const click = (d) => clickHandler(d, lastEvent);\n\n const group = root\n .append('g')\n .attr('class', 'dataPoints');\n\n data.forEach((item) => {\n item.forEach((d) => {\n /*\n * Applying the calculation functions\n */\n group\n .datum(d)\n .append('circle')\n .attr('class', 'data-point')\n .style('strokeWidth', '2px')\n .style('stroke', getStroke)\n .style('fill', 'white')\n .attr('cx', calculateCX)\n .attr('cy', calculateCY)\n .on('mouseover', mouseover)\n .on('mouseout', mouseout)\n .on('mousemove', mousemove)\n .on('click', click);\n });\n });\n }\n\n createStyle() {\n const {\n style,\n grid,\n verticalGrid,\n yAxisOrientRight\n } = this.props;\n\n const uid = this.uid;\n const scope = `.line-chart-${uid}`;\n const axisStyles = getAxisStyles(grid, verticalGrid, yAxisOrientRight);\n const rules = merge({}, defaultStyles, style, axisStyles);\n\n return (\n \n );\n }\n\n parseDate(v) {\n const {\n datePattern\n } = this.props;\n\n const datePatternParser = (\n dateParser[datePattern] || (\n dateParser[datePattern] = parse(datePattern)));\n\n return datePatternParser(v);\n }\n\n calculateChartParameters() {\n const {\n data,\n axes,\n xType,\n yType,\n xDomainRange,\n yDomainRange,\n margin,\n width,\n height,\n lineColors,\n yAxisOrientRight\n } = this.props;\n\n /*\n * We could \"bind\"!\n */\n const parseDate = (v) => this.parseDate(v);\n\n /*\n * 'w' and 'h' are the width and height of the graph canvas\n * (excluding axes and other furniture)\n */\n const m = calculateMargin(axes, margin, yAxisOrientRight);\n const w = reduce(width, m.left, m.right);\n const h = reduce(height, m.top, m.bottom);\n\n const x = createDomainRangeGenerator('x', xDomainRange, data, xType, w, parseDate);\n const y = createDomainRangeGenerator('y', yDomainRange, data, yType, h, parseDate);\n\n const xValue = createValueGenerator('x', xType, parseDate);\n const yValue = createValueGenerator('y', yType, parseDate);\n\n const colors = lineColors.concat(defaultColors);\n\n const node = this.createSvgNode({ m, w, h });\n const root = this.createSvgRoot({ node, m });\n\n return {\n m,\n w,\n h,\n x,\n y,\n xValue,\n yValue,\n colors,\n node,\n root\n };\n }\n\n render() {\n const {\n axes,\n dataPoints\n } = this.props;\n\n const p = this.calculateChartParameters();\n\n if (axes) {\n this.createXAxis(p);\n\n this.createYAxis(p);\n }\n\n this.createLinePathChart(p);\n\n if (dataPoints) {\n this.createPoints(p);\n }\n\n const uid = this.uid;\n const className = `line-chart-${uid}`;\n const {\n node\n } = p;\n\n return (\n \n {this.createStyle()}\n {node.toReact()}\n
\n );\n }\n}\n"]}
\ No newline at end of file
diff --git a/npmdist/line-chart/static/index.js b/npmdist/line-chart/static/index.js
deleted file mode 100644
index c6b0bd4..0000000
--- a/npmdist/line-chart/static/index.js
+++ /dev/null
@@ -1,453 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-
-var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
-
-var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
-
-var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
-
-var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
-
-var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
-
-var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
-
-var _createClass2 = require('babel-runtime/helpers/createClass');
-
-var _createClass3 = _interopRequireDefault(_createClass2);
-
-var _inherits2 = require('babel-runtime/helpers/inherits');
-
-var _inherits3 = _interopRequireDefault(_inherits2);
-
-var _react = require('react');
-
-var _react2 = _interopRequireDefault(_react);
-
-var _reactFauxDom = require('react-faux-dom');
-
-var _d = require('d3');
-
-var _shared = require('../../shared');
-
-var _radium = require('radium');
-
-var _lodash = require('lodash.merge');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-var _d3TimeFormat = require('d3-time-format');
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var dateParser = {};
-
-var LineChart = function (_React$Component) {
- (0, _inherits3.default)(LineChart, _React$Component);
- (0, _createClass3.default)(LineChart, null, [{
- key: 'propTypes',
- get: function get() {
- return {
- data: _react2.default.PropTypes.array.isRequired,
- width: _react2.default.PropTypes.number,
- height: _react2.default.PropTypes.number,
- xType: _react2.default.PropTypes.string,
- yType: _react2.default.PropTypes.string,
- datePattern: _react2.default.PropTypes.string,
- interpolate: _react2.default.PropTypes.string,
- style: _react2.default.PropTypes.object,
- margin: _react2.default.PropTypes.object,
- axes: _react2.default.PropTypes.bool,
- grid: _react2.default.PropTypes.bool,
- verticalGrid: _react2.default.PropTypes.bool,
- xDomainRange: _react2.default.PropTypes.array,
- yDomainRange: _react2.default.PropTypes.array,
- tickTimeDisplayFormat: _react2.default.PropTypes.string,
- yTicks: _react2.default.PropTypes.number,
- xTicks: _react2.default.PropTypes.number,
- dataPoints: _react2.default.PropTypes.bool,
- lineColors: _react2.default.PropTypes.array,
- axisLabels: _react2.default.PropTypes.shape({
- x: _react2.default.PropTypes.string,
- y: _react2.default.PropTypes.string
- }),
- yAxisOrientRight: _react2.default.PropTypes.bool,
- mouseOverHandler: _react2.default.PropTypes.func,
- mouseOutHandler: _react2.default.PropTypes.func,
- mouseMoveHandler: _react2.default.PropTypes.func,
- clickHandler: _react2.default.PropTypes.func
- };
- }
- }, {
- key: 'defaultProps',
- get: function get() {
- return {
- width: 200,
- height: 150,
- datePattern: '%d-%b-%y',
- interpolate: 'linear',
- axes: false,
- xType: 'linear',
- yType: 'linear',
- lineColors: [],
- axisLabels: {
- x: '',
- y: ''
- },
- mouseOverHandler: function mouseOverHandler() {},
- mouseOutHandler: function mouseOutHandler() {},
- mouseMoveHandler: function mouseMoveHandler() {},
- clickHandler: function clickHandler() {}
- };
- }
- }]);
-
- function LineChart(props) {
- (0, _classCallCheck3.default)(this, LineChart);
-
- var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(LineChart).call(this, props));
-
- _this.uid = (0, _shared.createUniqueID)();
- return _this;
- }
-
- (0, _createClass3.default)(LineChart, [{
- key: 'componentDidMount',
- value: function componentDidMount() {
- var lineChart = this.refs.lineChart;
- (0, _shared.createCircularTicks)(lineChart);
- }
- }, {
- key: 'componentDidUpdate',
- value: function componentDidUpdate() {
- var lineChart = this.refs.lineChart;
- (0, _shared.createCircularTicks)(lineChart);
- }
- }, {
- key: 'createSvgNode',
- value: function createSvgNode(_ref) {
- var m = _ref.m;
- var w = _ref.w;
- var h = _ref.h;
-
- var node = (0, _reactFauxDom.createElement)('svg');
- node.setAttribute('width', w + m.left + m.right);
- node.setAttribute('height', h + m.top + m.bottom);
- return node;
- }
- }, {
- key: 'createSvgRoot',
- value: function createSvgRoot(_ref2) {
- var node = _ref2.node;
- var m = _ref2.m;
-
- return (0, _d.select)(node).append('g').attr('transform', 'translate(' + m.left + ', ' + m.top + ')');
- }
- }, {
- key: 'createXAxis',
- value: function createXAxis(_ref3) {
- var root = _ref3.root;
- var m = _ref3.m;
- var w = _ref3.w;
- var h = _ref3.h;
- var x = _ref3.x;
- var _props = this.props;
- var xType = _props.xType;
- var label = _props.axisLabels.x;
- var xTicks = _props.xTicks;
- var grid = _props.grid;
- var verticalGrid = _props.verticalGrid;
- var tickTimeDisplayFormat = _props.tickTimeDisplayFormat;
- var yAxisOrientRight = _props.yAxisOrientRight;
-
-
- var axis = _d.svg.axis().scale(x).orient('bottom');
-
- if (xType === 'time' && tickTimeDisplayFormat) {
- axis.tickFormat(_d.time.format(tickTimeDisplayFormat));
- }
-
- if (grid && verticalGrid) {
- axis.tickSize(-h, 6).tickPadding(10);
- } else {
- axis.tickSize(0, 6).tickPadding(16); // wut
- }
-
- if (xTicks) {
- axis.ticks(xTicks);
- }
-
- var group = root.append('g').attr('class', 'x axis').attr('transform', 'translate(0, ' + h + ')');
-
- group.call(axis);
-
- if (label) {
- group.append('text').attr('class', 'label').attr('x', yAxisOrientRight ? 0 : w).attr('y', m.bottom - m.top).attr('dx', yAxisOrientRight ? '0em' : '-.175em').attr('dy', '-.175em').style('dominant-baseline', 'ideographic').style('text-anchor', yAxisOrientRight ? 'start' : 'end').text(label);
- }
- }
- }, {
- key: 'createYAxis',
- value: function createYAxis(_ref4) {
- var root = _ref4.root;
- var m = _ref4.m;
- var w = _ref4.w;
- var y = _ref4.y;
- var _props2 = this.props;
- var yType = _props2.yType;
- var label = _props2.axisLabels.y;
- var yTicks = _props2.yTicks;
- var grid = _props2.grid;
- var tickTimeDisplayFormat = _props2.tickTimeDisplayFormat;
- var yAxisOrientRight = _props2.yAxisOrientRight;
-
-
- var axis = _d.svg.axis().scale(y).orient(yAxisOrientRight ? 'right' : 'left');
-
- if (yType === 'time' && tickTimeDisplayFormat) {
- axis.tickFormat(_d.time.format(tickTimeDisplayFormat));
- }
-
- if (grid) {
- axis.tickSize(-w, 6).tickPadding(10);
- } else {
- axis.tickSize(0, 6).tickPadding(16); // wut
- }
-
- if (yTicks) {
- axis.ticks(yTicks);
- }
-
- var group = root.append('g').attr('class', 'y axis').attr('transform', yAxisOrientRight ? 'translate(' + w + ', 0)' : 'translate(0, 0)');
-
- group.call(axis);
-
- if (label) {
- group.append('text').attr('class', 'label').attr('transform', 'rotate(-90)').attr('x', 0).attr('y', yAxisOrientRight ? +m.right - m.left : -m.left + m.right).attr('dx', 0).attr('dy', yAxisOrientRight ? '-.175em' : '1em').style('dominant-baseline', 'ideographic').style('text-anchor', 'end').text(label);
- }
- }
- }, {
- key: 'createLinePathChart',
- value: function createLinePathChart(_ref5) {
- var root = _ref5.root;
- var x = _ref5.x;
- var y = _ref5.y;
- var xValue = _ref5.xValue;
- var yValue = _ref5.yValue;
- var colors = _ref5.colors;
- var _props3 = this.props;
- var data = _props3.data;
- var interpolate = _props3.interpolate;
-
-
- var getStroke = function getStroke(d, i) {
- return colors[i];
- };
-
- var linePath = _d.svg.line().interpolate(interpolate).x(function (d) {
- return x(xValue(d));
- }).y(function (d) {
- return y(yValue(d));
- });
-
- var group = root.append('g').attr('class', 'lineChart');
-
- group.selectAll('path').data(data).enter().append('path').attr('class', 'line').style('stroke', getStroke).attr('d', linePath);
- }
- }, {
- key: 'createPoints',
- value: function createPoints(_ref6) {
- var _this2 = this;
-
- var root = _ref6.root;
- var x = _ref6.x;
- var y = _ref6.y;
- var colors = _ref6.colors;
- var _props4 = this.props;
- var data = _props4.data;
- var xType = _props4.xType;
- var yType = _props4.yType;
- var mouseOverHandler = _props4.mouseOverHandler;
- var mouseOutHandler = _props4.mouseOutHandler;
- var mouseMoveHandler = _props4.mouseMoveHandler;
- var clickHandler = _props4.clickHandler;
-
- /*
- * We don't really need to do this, but it
- * avoids obscure "this" below
- */
-
- var calculateDate = function calculateDate(v) {
- return _this2.parseDate(v);
- };
-
- var getStroke = function getStroke(d, i) {
- return colors[i];
- };
-
- /*
- * Creating the calculation functions
- */
- var calculateCX = function calculateCX(d) {
- return xType === 'time' ? x(calculateDate(d.x)) : x(d.x);
- };
- var calculateCY = function calculateCY(d) {
- return yType === 'time' ? y(calculateDate(d.y)) : y(d.y);
- };
-
- var mouseover = function mouseover(d) {
- return mouseOverHandler(d, _d.event);
- };
- var mouseout = function mouseout(d) {
- return mouseOutHandler(d, _d.event);
- };
- var mousemove = function mousemove(d) {
- return mouseMoveHandler(d, _d.event);
- };
- var click = function click(d) {
- return clickHandler(d, _d.event);
- };
-
- var group = root.append('g').attr('class', 'dataPoints');
-
- data.forEach(function (item) {
- item.forEach(function (d) {
- /*
- * Applying the calculation functions
- */
- group.datum(d).append('circle').attr('class', 'data-point').style('strokeWidth', '2px').style('stroke', getStroke).style('fill', 'white').attr('cx', calculateCX).attr('cy', calculateCY).on('mouseover', mouseover).on('mouseout', mouseout).on('mousemove', mousemove).on('click', click);
- });
- });
- }
- }, {
- key: 'createStyle',
- value: function createStyle() {
- var _props5 = this.props;
- var style = _props5.style;
- var grid = _props5.grid;
- var verticalGrid = _props5.verticalGrid;
- var yAxisOrientRight = _props5.yAxisOrientRight;
-
-
- var uid = this.uid;
- var scope = '.line-chart-' + uid;
- var axisStyles = (0, _shared.getAxisStyles)(grid, verticalGrid, yAxisOrientRight);
- var rules = (0, _lodash2.default)({}, _shared.defaultStyles, style, axisStyles);
-
- return _react2.default.createElement(_radium.Style, {
- scopeSelector: scope,
- rules: rules
- });
- }
- }, {
- key: 'parseDate',
- value: function parseDate(v) {
- var datePattern = this.props.datePattern;
-
-
- var datePatternParser = dateParser[datePattern] || (dateParser[datePattern] = (0, _d3TimeFormat.timeParse)(datePattern));
-
- return datePatternParser(v);
- }
- }, {
- key: 'calculateChartParameters',
- value: function calculateChartParameters() {
- var _this3 = this;
-
- var _props6 = this.props;
- var data = _props6.data;
- var axes = _props6.axes;
- var xType = _props6.xType;
- var yType = _props6.yType;
- var xDomainRange = _props6.xDomainRange;
- var yDomainRange = _props6.yDomainRange;
- var margin = _props6.margin;
- var width = _props6.width;
- var height = _props6.height;
- var lineColors = _props6.lineColors;
- var yAxisOrientRight = _props6.yAxisOrientRight;
-
- /*
- * We could "bind"!
- */
-
- var parseDate = function parseDate(v) {
- return _this3.parseDate(v);
- };
-
- /*
- * 'w' and 'h' are the width and height of the graph canvas
- * (excluding axes and other furniture)
- */
- var m = (0, _shared.calculateMargin)(axes, margin, yAxisOrientRight);
- var w = (0, _shared.reduce)(width, m.left, m.right);
- var h = (0, _shared.reduce)(height, m.top, m.bottom);
-
- var x = (0, _shared.createDomainRangeGenerator)('x', xDomainRange, data, xType, w, parseDate);
- var y = (0, _shared.createDomainRangeGenerator)('y', yDomainRange, data, yType, h, parseDate);
-
- var xValue = (0, _shared.createValueGenerator)('x', xType, parseDate);
- var yValue = (0, _shared.createValueGenerator)('y', yType, parseDate);
-
- var colors = lineColors.concat(_shared.defaultColors);
-
- var node = this.createSvgNode({ m: m, w: w, h: h });
- var root = this.createSvgRoot({ node: node, m: m });
-
- return {
- m: m,
- w: w,
- h: h,
- x: x,
- y: y,
- xValue: xValue,
- yValue: yValue,
- colors: colors,
- node: node,
- root: root
- };
- }
- }, {
- key: 'render',
- value: function render() {
- var _props7 = this.props;
- var axes = _props7.axes;
- var dataPoints = _props7.dataPoints;
-
-
- var p = this.calculateChartParameters();
-
- if (axes) {
- this.createXAxis(p);
-
- this.createYAxis(p);
- }
-
- this.createLinePathChart(p);
-
- if (dataPoints) {
- this.createPoints(p);
- }
-
- var uid = this.uid;
- var className = 'line-chart-' + uid;
- var node = p.node;
-
-
- return _react2.default.createElement(
- 'div',
- { ref: 'lineChart', className: className },
- this.createStyle(),
- node.toReact()
- );
- }
- }]);
- return LineChart;
-}(_react2.default.Component);
-
-exports.default = LineChart;
-module.exports = exports['default'];
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/npmdist/line-chart/static/index.js.map b/npmdist/line-chart/static/index.js.map
deleted file mode 100644
index 89aec4c..0000000
--- a/npmdist/line-chart/static/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../../modules/line-chart/static/index.js"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import React from 'react';\nimport { createElement } from 'react-faux-dom';\nimport {\n event as lastEvent,\n select,\n svg,\n time\n} from 'd3';\nimport {\n createUniqueID,\n reduce,\n calculateMargin,\n createValueGenerator,\n createDomainRangeGenerator,\n defaultColors,\n defaultStyles,\n getAxisStyles,\n createCircularTicks\n} from '../../shared';\nimport { Style } from 'radium';\nimport merge from 'lodash.merge';\nimport { timeParse as parse } from 'd3-time-format';\n\nconst dateParser = {};\n\nexport default class LineChart extends React.Component {\n static get propTypes() {\n return {\n data: React.PropTypes.array.isRequired,\n width: React.PropTypes.number,\n height: React.PropTypes.number,\n xType: React.PropTypes.string,\n yType: React.PropTypes.string,\n datePattern: React.PropTypes.string,\n interpolate: React.PropTypes.string,\n style: React.PropTypes.object,\n margin: React.PropTypes.object,\n axes: React.PropTypes.bool,\n grid: React.PropTypes.bool,\n verticalGrid: React.PropTypes.bool,\n xDomainRange: React.PropTypes.array,\n yDomainRange: React.PropTypes.array,\n tickTimeDisplayFormat: React.PropTypes.string,\n yTicks: React.PropTypes.number,\n xTicks: React.PropTypes.number,\n dataPoints: React.PropTypes.bool,\n lineColors: React.PropTypes.array,\n axisLabels: React.PropTypes.shape({\n x: React.PropTypes.string,\n y: React.PropTypes.string\n }),\n yAxisOrientRight: React.PropTypes.bool,\n mouseOverHandler: React.PropTypes.func,\n mouseOutHandler: React.PropTypes.func,\n mouseMoveHandler: React.PropTypes.func,\n clickHandler: React.PropTypes.func\n };\n }\n\n static get defaultProps() {\n return {\n width: 200,\n height: 150,\n datePattern: '%d-%b-%y',\n interpolate: 'linear',\n axes: false,\n xType: 'linear',\n yType: 'linear',\n lineColors: [],\n axisLabels: {\n x: '',\n y: ''\n },\n mouseOverHandler: () => {},\n mouseOutHandler: () => {},\n mouseMoveHandler: () => {},\n clickHandler: () => {}\n };\n }\n\n constructor(props) {\n super(props);\n this.uid = createUniqueID();\n }\n\n componentDidMount() {\n const lineChart = this.refs.lineChart;\n createCircularTicks(lineChart);\n }\n\n componentDidUpdate() {\n const lineChart = this.refs.lineChart;\n createCircularTicks(lineChart);\n }\n\n createSvgNode({ m, w, h }) {\n const node = createElement('svg');\n node.setAttribute('width', w + m.left + m.right);\n node.setAttribute('height', h + m.top + m.bottom);\n return node;\n }\n\n createSvgRoot({ node, m }) {\n return select(node)\n .append('g')\n .attr('transform', `translate(${m.left}, ${m.top})`);\n }\n\n createXAxis({ root, m, w, h, x }) {\n const {\n xType,\n axisLabels: { x: label },\n xTicks,\n grid,\n verticalGrid,\n tickTimeDisplayFormat,\n yAxisOrientRight\n } = this.props;\n\n const axis = svg.axis()\n .scale(x)\n .orient('bottom');\n\n if (xType === 'time' && tickTimeDisplayFormat) {\n axis\n .tickFormat(time.format(tickTimeDisplayFormat));\n }\n\n if (grid && verticalGrid) {\n axis\n .tickSize(-h, 6)\n .tickPadding(10);\n } else {\n axis\n .tickSize(0, 6)\n .tickPadding(16); // wut\n }\n\n if (xTicks) {\n axis\n .ticks(xTicks);\n }\n\n const group = root\n .append('g')\n .attr('class', 'x axis')\n .attr('transform', `translate(0, ${h})`);\n\n group\n .call(axis);\n\n if (label) {\n group\n .append('text')\n .attr('class', 'label')\n .attr('x',\n (yAxisOrientRight)\n ? 0\n : w)\n .attr('y', (m.bottom - m.top))\n .attr('dx',\n (yAxisOrientRight)\n ? '0em'\n : '-.175em')\n .attr('dy', '-.175em')\n .style('dominant-baseline', 'ideographic')\n .style('text-anchor',\n (yAxisOrientRight)\n ? 'start'\n : 'end')\n .text(label);\n }\n }\n\n createYAxis({ root, m, w, y }) {\n const {\n yType,\n axisLabels: { y: label },\n yTicks,\n grid,\n tickTimeDisplayFormat,\n yAxisOrientRight\n } = this.props;\n\n const axis = svg.axis()\n .scale(y)\n .orient(\n (yAxisOrientRight)\n ? 'right'\n : 'left');\n\n if (yType === 'time' && tickTimeDisplayFormat) {\n axis\n .tickFormat(time.format(tickTimeDisplayFormat));\n }\n\n if (grid) {\n axis\n .tickSize(-w, 6)\n .tickPadding(10);\n } else {\n axis\n .tickSize(0, 6)\n .tickPadding(16); // wut\n }\n\n if (yTicks) {\n axis\n .ticks(yTicks);\n }\n\n const group = root\n .append('g')\n .attr('class', 'y axis')\n .attr('transform',\n (yAxisOrientRight)\n ? `translate(${w}, 0)`\n : 'translate(0, 0)');\n\n group\n .call(axis);\n\n if (label) {\n group\n .append('text')\n .attr('class', 'label')\n .attr('transform', 'rotate(-90)')\n .attr('x', 0)\n .attr('y',\n (yAxisOrientRight)\n ? +m.right - m.left\n : -m.left + m.right)\n .attr('dx', 0)\n .attr('dy',\n (yAxisOrientRight)\n ? '-.175em'\n : '1em')\n .style('dominant-baseline', 'ideographic')\n .style('text-anchor', 'end')\n .text(label);\n }\n }\n\n createLinePathChart({ root, x, y, xValue, yValue, colors }) {\n const {\n data,\n interpolate\n } = this.props;\n\n const getStroke = (d, i) => colors[i];\n\n const linePath = svg.line()\n .interpolate(interpolate)\n .x((d) => x(xValue(d)))\n .y((d) => y(yValue(d)));\n\n const group = root\n .append('g')\n .attr('class', 'lineChart');\n\n group\n .selectAll('path')\n .data(data)\n .enter()\n .append('path')\n .attr('class', 'line')\n .style('stroke', getStroke)\n .attr('d', linePath);\n }\n\n createPoints({ root, x, y, colors }) {\n const {\n data,\n xType,\n yType,\n mouseOverHandler,\n mouseOutHandler,\n mouseMoveHandler,\n clickHandler\n } = this.props;\n\n /*\n * We don't really need to do this, but it\n * avoids obscure \"this\" below\n */\n const calculateDate = (v) => this.parseDate(v);\n\n const getStroke = (d, i) => colors[i];\n\n /*\n * Creating the calculation functions\n */\n const calculateCX = (d) => (\n (xType === 'time')\n ? x(calculateDate(d.x))\n : x(d.x));\n const calculateCY = (d) => (\n (yType === 'time')\n ? y(calculateDate(d.y))\n : y(d.y));\n\n const mouseover = (d) => mouseOverHandler(d, lastEvent);\n const mouseout = (d) => mouseOutHandler(d, lastEvent);\n const mousemove = (d) => mouseMoveHandler(d, lastEvent);\n const click = (d) => clickHandler(d, lastEvent);\n\n const group = root\n .append('g')\n .attr('class', 'dataPoints');\n\n data.forEach((item) => {\n item.forEach((d) => {\n /*\n * Applying the calculation functions\n */\n group\n .datum(d)\n .append('circle')\n .attr('class', 'data-point')\n .style('strokeWidth', '2px')\n .style('stroke', getStroke)\n .style('fill', 'white')\n .attr('cx', calculateCX)\n .attr('cy', calculateCY)\n .on('mouseover', mouseover)\n .on('mouseout', mouseout)\n .on('mousemove', mousemove)\n .on('click', click);\n });\n });\n }\n\n createStyle() {\n const {\n style,\n grid,\n verticalGrid,\n yAxisOrientRight\n } = this.props;\n\n const uid = this.uid;\n const scope = `.line-chart-${uid}`;\n const axisStyles = getAxisStyles(grid, verticalGrid, yAxisOrientRight);\n const rules = merge({}, defaultStyles, style, axisStyles);\n\n return (\n \n );\n }\n\n parseDate(v) {\n const {\n datePattern\n } = this.props;\n\n const datePatternParser = (\n dateParser[datePattern] || (\n dateParser[datePattern] = parse(datePattern)));\n\n return datePatternParser(v);\n }\n\n calculateChartParameters() {\n const {\n data,\n axes,\n xType,\n yType,\n xDomainRange,\n yDomainRange,\n margin,\n width,\n height,\n lineColors,\n yAxisOrientRight\n } = this.props;\n\n /*\n * We could \"bind\"!\n */\n const parseDate = (v) => this.parseDate(v);\n\n /*\n * 'w' and 'h' are the width and height of the graph canvas\n * (excluding axes and other furniture)\n */\n const m = calculateMargin(axes, margin, yAxisOrientRight);\n const w = reduce(width, m.left, m.right);\n const h = reduce(height, m.top, m.bottom);\n\n const x = createDomainRangeGenerator('x', xDomainRange, data, xType, w, parseDate);\n const y = createDomainRangeGenerator('y', yDomainRange, data, yType, h, parseDate);\n\n const xValue = createValueGenerator('x', xType, parseDate);\n const yValue = createValueGenerator('y', yType, parseDate);\n\n const colors = lineColors.concat(defaultColors);\n\n const node = this.createSvgNode({ m, w, h });\n const root = this.createSvgRoot({ node, m });\n\n return {\n m,\n w,\n h,\n x,\n y,\n xValue,\n yValue,\n colors,\n node,\n root\n };\n }\n\n render() {\n const {\n axes,\n dataPoints\n } = this.props;\n\n const p = this.calculateChartParameters();\n\n if (axes) {\n this.createXAxis(p);\n\n this.createYAxis(p);\n }\n\n this.createLinePathChart(p);\n\n if (dataPoints) {\n this.createPoints(p);\n }\n\n const uid = this.uid;\n const className = `line-chart-${uid}`;\n const {\n node\n } = p;\n\n return (\n \n {this.createStyle()}\n {node.toReact()}\n
\n );\n }\n}\n"]}
\ No newline at end of file
diff --git a/npmdist/package.json b/npmdist/package.json
deleted file mode 100644
index f77c2bc..0000000
--- a/npmdist/package.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "name": "react-easy-chart",
- "version": "0.1.8",
- "description": "React component implementations of Mike Bostok's D3 visualisation library.",
- "main": "index.js",
- "scripts": {
- "prepublish": "babel ../modules --out-dir . --source-maps --presets es2015,react,stage-0,stage-1 --plugins babel-plugin-add-module-exports,babel-plugin-transform-class-properties,babel-plugin-transform-object-rest-spread,babel-plugin-transform-react-jsx,babel-plugin-transform-runtime"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/rma-consulting/react-easy-chart.git"
- },
- "license": "BSD-3-Clause",
- "bugs": {
- "url": "https://github.com/rma-consulting/react-easy-chart/issues"
- },
- "homepage": "https://github.com/rma-consulting/react-easy-chart#readme",
- "devDependencies": {},
- "dependencies": {
- "lodash.merge": "^4.0.1",
- "object-hash": "^1.1.4",
- "radium": "^0.18.1"
- },
- "peerDependencies": {
- "d3": "^3.5.17",
- "d3-array": "^0.8.1",
- "d3-scale": "^0.9.3",
- "d3-shape": "^0.7.1",
- "d3-time-format": "^0.4.0",
- "react": "^15.1.0",
- "react-dom": "^15.1.0",
- "react-faux-dom": "^2.5.0"
- }
-}
diff --git a/npmdist/pie-chart/hybrid/index.js b/npmdist/pie-chart/hybrid/index.js
deleted file mode 100644
index e320423..0000000
--- a/npmdist/pie-chart/hybrid/index.js
+++ /dev/null
@@ -1,452 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-
-var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray');
-
-var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
-
-var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
-
-var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
-
-var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
-
-var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
-
-var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
-
-var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
-
-var _createClass2 = require('babel-runtime/helpers/createClass');
-
-var _createClass3 = _interopRequireDefault(_createClass2);
-
-var _inherits2 = require('babel-runtime/helpers/inherits');
-
-var _inherits3 = _interopRequireDefault(_inherits2);
-
-var _react = require('react');
-
-var _react2 = _interopRequireDefault(_react);
-
-var _d = require('d3');
-
-var _shared = require('../../shared');
-
-var _reactFauxDom = require('react-faux-dom');
-
-var _radium = require('radium');
-
-var _lodash = require('lodash.merge');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var color = _d.scale.category20();
-var pie = _d.layout.pie().value(function (d) {
- return d.value;
-}).sort(null);
-
-var getSliceFill = function getSliceFill(d, i) {
- return d.data.color ? d.data.color : color(i);
-};
-
-var getLabelText = function getLabelText(d) {
- return d.data.key;
-};
-
-var PieChart = function (_React$Component) {
- (0, _inherits3.default)(PieChart, _React$Component);
- (0, _createClass3.default)(PieChart, null, [{
- key: 'propTypes',
- get: function get() {
- return {
- data: _react2.default.PropTypes.array.isRequired,
- innerHoleSize: _react2.default.PropTypes.number,
- size: _react2.default.PropTypes.number,
- padding: _react2.default.PropTypes.number,
- labels: _react2.default.PropTypes.bool,
- styles: _react2.default.PropTypes.object,
- mouseOverHandler: _react2.default.PropTypes.func,
- mouseOutHandler: _react2.default.PropTypes.func,
- mouseMoveHandler: _react2.default.PropTypes.func,
- clickHandler: _react2.default.PropTypes.func
- };
- }
- }, {
- key: 'defaultProps',
- get: function get() {
- return {
- size: 400,
- innerHoleSize: 0,
- padding: 2,
- labels: false,
- styles: {},
- mouseOverHandler: function mouseOverHandler() {},
- mouseOutHandler: function mouseOutHandler() {},
- mouseMoveHandler: function mouseMoveHandler() {},
- clickHandler: function clickHandler() {}
- };
- }
- }]);
-
- function PieChart(props) {
- (0, _classCallCheck3.default)(this, PieChart);
-
- var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(PieChart).call(this, props));
-
- _this.uid = (0, _shared.createUniqueID)(props);
- _this.currentSlices = [];
- _this.currentLabels = [];
- _this.tweenSlice = function (slice, index) {
- var currentSlice = _this.currentSlices[index];
- var i = (0, _d.interpolate)(currentSlice, slice);
- _this.currentSlices[index] = slice;
- return function (t) {
- return _this.getSliceArc()(i(t));
- };
- };
- return _this;
- }
-
- (0, _createClass3.default)(PieChart, [{
- key: 'componentDidMount',
- value: function componentDidMount() {
- this.initialise();
- }
- }, {
- key: 'componentDidUpdate',
- value: function componentDidUpdate() {
- this.transition();
- }
- }, {
- key: 'getSliceArc',
- value: function getSliceArc() {
- var padding = this.props.padding;
-
-
- var innerRadius = this.getInnerRadius();
- var outerRadius = this.getOuterRadius();
-
- return _d.svg.arc().innerRadius(innerRadius - padding).outerRadius(outerRadius - padding);
- }
- }, {
- key: 'getLabelArc',
- value: function getLabelArc() {
- var padding = this.props.padding;
-
-
- var outerRadius = this.getOuterRadius();
- var radius = outerRadius - padding - 20 * outerRadius / 100;
-
- return _d.svg.arc().outerRadius(radius).innerRadius(radius);
- }
- }, {
- key: 'getOuterRadius',
- value: function getOuterRadius() {
- return this.props.size * 0.5;
- }
- }, {
- key: 'getInnerRadius',
- value: function getInnerRadius() {
- return this.props.innerHoleSize * 0.5;
- }
- }, {
- key: 'getSlices',
- value: function getSlices() {
- var data = this.props.data;
-
-
- var uid = this.uid;
-
- return (0, _d.select)('#slices-' + uid).datum(data).selectAll('path');
- }
- }, {
- key: 'getLabels',
- value: function getLabels() {
- var data = this.props.data;
-
-
- var uid = this.uid;
-
- return (0, _d.select)('#labels-' + uid).datum(data).selectAll('text');
- }
- }, {
- key: 'createSvgNode',
- value: function createSvgNode(_ref) {
- var size = _ref.size;
-
- var node = (0, _reactFauxDom.createElement)('svg');
- node.setAttribute('width', size);
- node.setAttribute('height', size);
- return node;
- }
- }, {
- key: 'createSvgRoot',
- value: function createSvgRoot(_ref2) {
- var node = _ref2.node;
-
- return (0, _d.select)(node);
- }
- }, {
- key: 'initialiseLabels',
- value: function initialiseLabels() {
- var _this2 = this;
-
- var text = this.getLabels().data(pie);
-
- var getLabelArcTransform = function getLabelArcTransform(d) {
- var _getLabelArc$centroid = _this2.getLabelArc().centroid(d);
-
- var _getLabelArc$centroid2 = (0, _slicedToArray3.default)(_getLabelArc$centroid, 2);
-
- var labelX = _getLabelArc$centroid2[0];
- var labelY = _getLabelArc$centroid2[1];
-
- return 'translate(' + labelX + ', ' + labelY + ')';
- };
-
- var currentLabels = this.currentLabels;
-
- text.enter().append('text').attr('dy', '.35em').attr('class', 'pie-chart-label').attr('transform', getLabelArcTransform).text(getLabelText).each(function (d) {
- return currentLabels.push(d);
- });
- }
- }, {
- key: 'initialiseSlices',
- value: function initialiseSlices() {
- var _props = this.props;
- var mouseOverHandler = _props.mouseOverHandler;
- var mouseOutHandler = _props.mouseOutHandler;
- var mouseMoveHandler = _props.mouseMoveHandler;
- var clickHandler = _props.clickHandler;
-
-
- var mouseover = function mouseover(d) {
- return mouseOverHandler(d, _d.event);
- };
- var mouseout = function mouseout(d) {
- return mouseOutHandler(d, _d.event);
- };
- var mousemove = function mousemove(d) {
- return mouseMoveHandler(d, _d.event);
- };
- var click = function click(d) {
- return clickHandler(d, _d.event);
- };
-
- var currentSlices = this.currentSlices;
-
- var path = this.getSlices().data(pie);
-
- path.enter().append('path').attr('class', 'pie-chart-slice').attr('fill', getSliceFill).attr('d', this.getSliceArc()).on('mouseover', mouseover).on('mouseout', mouseout).on('mousemove', mousemove).on('click', click).each(function (d) {
- return currentSlices.push(d);
- });
- }
- }, {
- key: 'initialise',
- value: function initialise() {
- var labels = this.props.labels;
-
-
- this.initialiseSlices();
-
- if (labels) {
- this.initialiseLabels();
- }
- }
- }, {
- key: 'transitionSlices',
- value: function transitionSlices() {
- var _props2 = this.props;
- var data = _props2.data;
- var mouseOverHandler = _props2.mouseOverHandler;
- var mouseOutHandler = _props2.mouseOutHandler;
- var mouseMoveHandler = _props2.mouseMoveHandler;
- var clickHandler = _props2.clickHandler;
-
-
- var mouseover = function mouseover(d) {
- return mouseOverHandler(d, _d.event);
- };
- var mouseout = function mouseout(d) {
- return mouseOutHandler(d, _d.event);
- };
- var mousemove = function mousemove(d) {
- return mouseMoveHandler(d, _d.event);
- };
- var click = function click(d) {
- return clickHandler(d, _d.event);
- };
-
- var n = data.length;
- var currentSlices = this.currentSlices;
-
- var path = this.getSlices().data(pie);
-
- if (n) {
- // we don't need to do this, but it's fun
- /*
- * Change current slices
- * Transition current slice dimensions
- */
- path.attr('fill', getSliceFill).on('mouseover', mouseover).on('mouseout', mouseout).on('mousemove', mousemove).on('click', click).transition().duration(750).attrTween('d', this.tweenSlice);
-
- /*
- * Add new slices
- */
- path.enter().append('path').attr('class', 'pie-chart-slice').attr('fill', getSliceFill).on('mouseover', mouseover).on('mouseout', mouseout).on('mousemove', mousemove).on('click', click).each(function (d, i) {
- return currentSlices.splice(i, 1, d);
- }).transition().duration(750).attrTween('d', this.tweenSlice);
- }
-
- /*
- * Remove old slices
- */
- path.exit().remove();
-
- currentSlices.length = n; // = this.currentSlices.slice(0, n)
- }
- }, {
- key: 'transitionLabels',
- value: function transitionLabels() {
- var _this3 = this;
-
- var data = this.props.data;
-
-
- var getLabelArcTransform = function getLabelArcTransform(d) {
- var _getLabelArc$centroid3 = _this3.getLabelArc().centroid(d);
-
- var _getLabelArc$centroid4 = (0, _slicedToArray3.default)(_getLabelArc$centroid3, 2);
-
- var labelX = _getLabelArc$centroid4[0];
- var labelY = _getLabelArc$centroid4[1];
-
- return 'translate(' + labelX + ', ' + labelY + ')';
- };
-
- var n = data.length;
- var currentLabels = this.currentLabels;
- var text = this.getLabels().data(pie);
-
- if (n) {
- // we don't need to do this, but it's fun
- /*
- * Change current labels
- */
- text.transition().duration(750).attr('transform', getLabelArcTransform).text(getLabelText);
-
- /*
- * Add new labels
- */
- text.enter().append('text').attr('dy', '.35em').attr('class', 'pie-chart-label').attr('transform', getLabelArcTransform).text(getLabelText).each(function (d, i) {
- return currentLabels.splice(i, 1, d);
- }).transition().duration(750);
- }
-
- /*
- * Remove old labels
- */
- text.exit().remove();
-
- currentLabels.length = n;
- }
- }, {
- key: 'transition',
- value: function transition() {
- var labels = this.props.labels;
-
-
- this.transitionSlices();
-
- if (labels) {
- this.transitionLabels();
- }
- }
- }, {
- key: 'createSlices',
- value: function createSlices(_ref3) {
- var root = _ref3.root;
-
- var uid = this.uid;
- var radius = this.getOuterRadius();
-
- root.append('g').attr('id', 'slices-' + uid).attr('transform', 'translate(' + radius + ', ' + radius + ')');
- }
- }, {
- key: 'createLabels',
- value: function createLabels(_ref4) {
- var root = _ref4.root;
-
- var uid = this.uid;
- var radius = this.getOuterRadius();
-
- root.append('g').attr('id', 'labels-' + uid).attr('transform', 'translate(' + radius + ', ' + radius + ')');
- }
- }, {
- key: 'createStyle',
- value: function createStyle() {
- var styles = this.props.styles;
-
-
- var uid = this.uid;
- var scope = '.pie-chart-' + uid;
- var rules = (0, _lodash2.default)({}, _shared.defaultStyles, styles);
-
- return _react2.default.createElement(_radium.Style, {
- scopeSelector: scope,
- rules: rules
- });
- }
- }, {
- key: 'calculateChartParameters',
- value: function calculateChartParameters() {
- var size = this.props.size;
-
-
- var node = this.createSvgNode({ size: size });
- var root = this.createSvgRoot({ node: node });
-
- return {
- node: node,
- root: root
- };
- }
- }, {
- key: 'render',
- value: function render() {
- var labels = this.props.labels;
-
-
- var p = this.calculateChartParameters();
-
- this.createSlices(p);
-
- if (labels) {
- this.createLabels(p);
- }
-
- var uid = this.uid;
- var className = 'pie-chart-' + uid;
- var node = p.node;
-
-
- return _react2.default.createElement(
- 'div',
- { className: className },
- this.createStyle(),
- node.toReact()
- );
- }
- }]);
- return PieChart;
-}(_react2.default.Component);
-
-exports.default = PieChart;
-module.exports = exports['default'];
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/npmdist/pie-chart/hybrid/index.js.map b/npmdist/pie-chart/hybrid/index.js.map
deleted file mode 100644
index 02fbc70..0000000
--- a/npmdist/pie-chart/hybrid/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../../modules/pie-chart/hybrid/index.js"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import React from 'react';\nimport {\n scale,\n layout,\n svg,\n select,\n event as lastEvent,\n interpolate\n} from 'd3';\nimport {\n createUniqueID,\n defaultStyles\n} from '../../shared';\nimport { createElement } from 'react-faux-dom';\nimport { Style } from 'radium';\nimport merge from 'lodash.merge';\n\nconst color = scale.category20();\nconst pie = layout.pie()\n .value((d) => d.value)\n .sort(null);\n\nconst getSliceFill = (d, i) => (\n (d.data.color)\n ? d.data.color\n : color(i));\n\nconst getLabelText = (d) => d.data.key;\n\nexport default class PieChart extends React.Component {\n static get propTypes() {\n return {\n data: React.PropTypes.array.isRequired,\n innerHoleSize: React.PropTypes.number,\n size: React.PropTypes.number,\n padding: React.PropTypes.number,\n labels: React.PropTypes.bool,\n styles: React.PropTypes.object,\n mouseOverHandler: React.PropTypes.func,\n mouseOutHandler: React.PropTypes.func,\n mouseMoveHandler: React.PropTypes.func,\n clickHandler: React.PropTypes.func\n };\n }\n\n static get defaultProps() {\n return {\n size: 400,\n innerHoleSize: 0,\n padding: 2,\n labels: false,\n styles: {},\n mouseOverHandler: () => {},\n mouseOutHandler: () => {},\n mouseMoveHandler: () => {},\n clickHandler: () => {}\n };\n }\n\n constructor(props) {\n super(props);\n this.uid = createUniqueID(props);\n this.currentSlices = [];\n this.currentLabels = [];\n this.tweenSlice = (slice, index) => {\n const currentSlice = this.currentSlices[index];\n const i = interpolate(currentSlice, slice);\n this.currentSlices[index] = slice;\n return (t) => this.getSliceArc()(i(t));\n };\n }\n\n componentDidMount() {\n this.initialise();\n }\n\n componentDidUpdate() {\n this.transition();\n }\n\n getSliceArc() {\n const {\n padding\n } = this.props;\n\n const innerRadius = this.getInnerRadius();\n const outerRadius = this.getOuterRadius();\n\n return svg.arc()\n .innerRadius(innerRadius - padding)\n .outerRadius(outerRadius - padding);\n }\n\n getLabelArc() {\n const {\n padding\n } = this.props;\n\n const outerRadius = this.getOuterRadius();\n const radius = outerRadius - padding - ((20 * outerRadius) / 100);\n\n return svg.arc()\n .outerRadius(radius)\n .innerRadius(radius);\n }\n\n getOuterRadius() {\n return this.props.size * 0.5;\n }\n\n getInnerRadius() {\n return this.props.innerHoleSize * 0.5;\n }\n\n getSlices() {\n const {\n data\n } = this.props;\n\n const uid = this.uid;\n\n return select(`#slices-${uid}`)\n .datum(data)\n .selectAll('path');\n }\n\n getLabels() {\n const {\n data\n } = this.props;\n\n const uid = this.uid;\n\n return select(`#labels-${uid}`)\n .datum(data)\n .selectAll('text');\n }\n\n createSvgNode({ size }) {\n const node = createElement('svg');\n node.setAttribute('width', size);\n node.setAttribute('height', size);\n return node;\n }\n\n createSvgRoot({ node }) {\n return select(node);\n }\n\n initialiseLabels() {\n const text = this.getLabels()\n .data(pie);\n\n const getLabelArcTransform = (d) => {\n const [labelX, labelY] = this.getLabelArc().centroid(d);\n return `translate(${labelX}, ${labelY})`;\n };\n\n const currentLabels = this.currentLabels;\n\n text\n .enter()\n .append('text')\n .attr('dy', '.35em')\n .attr('class', 'pie-chart-label')\n .attr('transform', getLabelArcTransform)\n .text(getLabelText)\n .each((d) => currentLabels.push(d));\n }\n\n initialiseSlices() {\n const {\n mouseOverHandler,\n mouseOutHandler,\n mouseMoveHandler,\n clickHandler\n } = this.props;\n\n const mouseover = (d) => mouseOverHandler(d, lastEvent);\n const mouseout = (d) => mouseOutHandler(d, lastEvent);\n const mousemove = (d) => mouseMoveHandler(d, lastEvent);\n const click = (d) => clickHandler(d, lastEvent);\n\n const currentSlices = this.currentSlices;\n\n const path = this.getSlices()\n .data(pie);\n\n path\n .enter()\n .append('path')\n .attr('class', 'pie-chart-slice')\n .attr('fill', getSliceFill)\n .attr('d', this.getSliceArc())\n .on('mouseover', mouseover)\n .on('mouseout', mouseout)\n .on('mousemove', mousemove)\n .on('click', click)\n .each((d) => currentSlices.push(d));\n }\n\n initialise() {\n const {\n labels\n } = this.props;\n\n this.initialiseSlices();\n\n if (labels) {\n this.initialiseLabels();\n }\n }\n\n transitionSlices() {\n const {\n data,\n mouseOverHandler,\n mouseOutHandler,\n mouseMoveHandler,\n clickHandler\n } = this.props;\n\n const mouseover = (d) => mouseOverHandler(d, lastEvent);\n const mouseout = (d) => mouseOutHandler(d, lastEvent);\n const mousemove = (d) => mouseMoveHandler(d, lastEvent);\n const click = (d) => clickHandler(d, lastEvent);\n\n const n = data.length;\n const currentSlices = this.currentSlices;\n\n const path = this.getSlices()\n .data(pie);\n\n if (n) { // we don't need to do this, but it's fun\n /*\n * Change current slices\n * Transition current slice dimensions\n */\n path\n .attr('fill', getSliceFill)\n .on('mouseover', mouseover)\n .on('mouseout', mouseout)\n .on('mousemove', mousemove)\n .on('click', click)\n .transition()\n .duration(750)\n .attrTween('d', this.tweenSlice);\n\n /*\n * Add new slices\n */\n path\n .enter()\n .append('path')\n .attr('class', 'pie-chart-slice')\n .attr('fill', getSliceFill)\n .on('mouseover', mouseover)\n .on('mouseout', mouseout)\n .on('mousemove', mousemove)\n .on('click', click)\n .each((d, i) => currentSlices.splice(i, 1, d))\n .transition()\n .duration(750)\n .attrTween('d', this.tweenSlice);\n }\n\n /*\n * Remove old slices\n */\n path\n .exit()\n .remove();\n\n currentSlices.length = n; // = this.currentSlices.slice(0, n)\n }\n\n transitionLabels() {\n const {\n data\n } = this.props;\n\n const getLabelArcTransform = (d) => {\n const [labelX, labelY] = this.getLabelArc().centroid(d);\n return `translate(${labelX}, ${labelY})`;\n };\n\n const n = data.length;\n const currentLabels = this.currentLabels;\n const text = this.getLabels()\n .data(pie);\n\n if (n) { // we don't need to do this, but it's fun\n /*\n * Change current labels\n */\n text\n .transition()\n .duration(750)\n .attr('transform', getLabelArcTransform)\n .text(getLabelText);\n\n /*\n * Add new labels\n */\n text\n .enter()\n .append('text')\n .attr('dy', '.35em')\n .attr('class', 'pie-chart-label')\n .attr('transform', getLabelArcTransform)\n .text(getLabelText)\n .each((d, i) => currentLabels.splice(i, 1, d))\n .transition()\n .duration(750);\n }\n\n /*\n * Remove old labels\n */\n text\n .exit()\n .remove();\n\n currentLabels.length = n;\n }\n\n transition() {\n const {\n labels\n } = this.props;\n\n this.transitionSlices();\n\n if (labels) {\n this.transitionLabels();\n }\n }\n\n createSlices({ root }) {\n const uid = this.uid;\n const radius = this.getOuterRadius();\n\n root\n .append('g')\n .attr('id', `slices-${uid}`)\n .attr('transform', `translate(${radius}, ${radius})`);\n }\n\n createLabels({ root }) {\n const uid = this.uid;\n const radius = this.getOuterRadius();\n\n root\n .append('g')\n .attr('id', `labels-${uid}`)\n .attr('transform', `translate(${radius}, ${radius})`);\n }\n\n createStyle() {\n const {\n styles\n } = this.props;\n\n const uid = this.uid;\n const scope = `.pie-chart-${uid}`;\n const rules = merge({}, defaultStyles, styles);\n\n return (\n \n );\n }\n\n calculateChartParameters() {\n const {\n size\n } = this.props;\n\n const node = this.createSvgNode({ size });\n const root = this.createSvgRoot({ node });\n\n return {\n node,\n root\n };\n }\n\n render() {\n const {\n labels\n } = this.props;\n\n const p = this.calculateChartParameters();\n\n this.createSlices(p);\n\n if (labels) {\n this.createLabels(p);\n }\n\n const uid = this.uid;\n const className = `pie-chart-${uid}`;\n const {\n node\n } = p;\n\n return (\n \n {this.createStyle()}\n {node.toReact()}\n
\n );\n }\n}\n"]}
\ No newline at end of file
diff --git a/npmdist/pie-chart/index.js b/npmdist/pie-chart/index.js
deleted file mode 100644
index 44339d0..0000000
--- a/npmdist/pie-chart/index.js
+++ /dev/null
@@ -1,194 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-
-var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
-
-var _react = require('react');
-
-var _react2 = _interopRequireDefault(_react);
-
-var _d = require('d3');
-
-var _shared = require('../shared');
-
-var _reactFauxDom = require('react-faux-dom');
-
-var _radium = require('radium');
-
-var _lodash = require('lodash.merge');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
-function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
-var PieChart = (function (_React$Component) {
- _inherits(PieChart, _React$Component);
-
- _createClass(PieChart, null, [{
- key: 'propTypes',
- get: function get() {
- return {
- data: _react2.default.PropTypes.array.isRequired,
- innerHoleSize: _react2.default.PropTypes.number,
- size: _react2.default.PropTypes.number,
- padding: _react2.default.PropTypes.number,
- labels: _react2.default.PropTypes.bool,
- styles: _react2.default.PropTypes.object,
- mouseOverHandler: _react2.default.PropTypes.func,
- mouseOutHandler: _react2.default.PropTypes.func,
- mouseMoveHandler: _react2.default.PropTypes.func,
- clickHandler: _react2.default.PropTypes.func
- };
- }
- }, {
- key: 'defaultProps',
- get: function get() {
- return {
- size: 400,
- innerHoleSize: 0,
- padding: 2,
- labels: false,
- styles: {},
- mouseOverHandler: function mouseOverHandler() {},
- mouseOutHandler: function mouseOutHandler() {},
- mouseMoveHandler: function mouseMoveHandler() {},
- clickHandler: function clickHandler() {}
- };
- }
- }]);
-
- function PieChart(props) {
- _classCallCheck(this, PieChart);
-
- var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(PieChart).call(this, props));
-
- _this.uid = Math.floor(Math.random() * new Date().getTime());
- _this.color = _d.scale.category20();
- _this.path = null;
- _this.text = null;
- _this.pie = _d.layout.pie().value(function (d) {
- return d.value;
- }).sort(null);
- _this.current = [];
- _this.currentTxt = [];
- return _this;
- }
-
- _createClass(PieChart, [{
- key: 'componentDidMount',
- value: function componentDidMount() {
- this.draw();
- }
- }, {
- key: 'componentDidUpdate',
- value: function componentDidUpdate() {
- this.update();
- }
- }, {
- key: 'getArc',
- value: function getArc() {
- return _d.svg.arc().innerRadius(this.getInnerRadius() - this.props.padding).outerRadius(this.getRadius() - this.props.padding);
- }
- }, {
- key: 'getLabelArc',
- value: function getLabelArc() {
- return _d.svg.arc().outerRadius(this.getRadius() - this.props.padding - 20 * this.getRadius() / 100).innerRadius(this.getRadius() - this.props.padding - 20 * this.getRadius() / 100);
- }
- }, {
- key: 'getRadius',
- value: function getRadius() {
- return this.props.size * 0.5;
- }
- }, {
- key: 'getInnerRadius',
- value: function getInnerRadius() {
- return this.props.innerHoleSize * 0.5;
- }
- }, {
- key: 'draw',
- value: function draw() {
- var _this2 = this;
-
- this.path = (0, _d.select)('#pie_' + this.uid).selectAll('path').data(this.pie(this.props.data)).enter().append('path').attr('fill', function (d, i) {
- return d.data.color ? d.data.color : _this2.color(i);
- }).attr('d', this.getArc()).attr('class', 'pie_chart_lines').on('mouseover', function (d) {
- return _this2.props.mouseOverHandler(d, _d.event);
- }).on('mouseout', function (d) {
- return _this2.props.mouseOutHandler(d, _d.event);
- }).on('mousemove', function () {
- return _this2.props.mouseMoveHandler(_d.event);
- }).on('click', function (d) {
- return _this2.props.clickHandler(d, _d.event);
- }).each(function (d) {
- _this2.current.push(d);
- });
- if (this.props.labels) {
- this.text = (0, _d.select)('#labels_' + this.uid).selectAll('text').data(this.pie(this.props.data)).enter().append('text').attr('transform', function (d) {
- return 'translate(' + _this2.getLabelArc().centroid(d) + ')';
- }).attr('dy', '.35em').attr('class', 'pie_chart_text').text(function (d) {
- return d.data.key;
- }).each(function (d) {
- _this2.currentTxt.push(d);
- });
- }
- }
- }, {
- key: 'update',
- value: function update() {
- var _this3 = this;
-
- this.path.data(this.pie(this.props.data)).transition().duration(750).attrTween('d', this.tween.bind(this));
- if (this.props.labels) {
- this.text.data(this.pie(this.props.data)).transition().duration(750).attr('transform', function (d) {
- return 'translate(' + _this3.getLabelArc().centroid(d) + ')';
- });
- }
- }
- }, {
- key: 'tween',
- value: function tween(a, index) {
- var _this4 = this;
-
- var cur = this.current[index];
- var i = (0, _d.interpolate)(cur, a);
- this.current[index] = a;
- return function (t) {
- return _this4.getArc()(i(t));
- };
- }
- }, {
- key: 'render',
- value: function render() {
- var node = (0, _reactFauxDom.createElement)('svg');
- (0, _d.select)(node).attr('width', this.props.size).attr('height', this.props.size).append('g').attr('id', 'pie_' + this.uid).attr('transform', 'translate(' + this.getRadius() + ', ' + this.getRadius() + ')');
- (0, _d.select)(node).attr('width', this.props.size).attr('height', this.props.size).append('g').attr('id', 'labels_' + this.uid).attr('transform', 'translate(' + this.getRadius() + ', ' + this.getRadius() + ')');
-
- var uid = Math.floor(Math.random() * new Date().getTime());
-
- return _react2.default.createElement(
- 'div',
- { className: 'pie_chart' + uid },
- _react2.default.createElement(_radium.Style, {
- scopeSelector: '.pie_chart' + uid,
- rules: (0, _lodash2.default)({}, _shared.defaultStyle, this.props.styles)
- }),
- node.toReact()
- );
- }
- }]);
-
- return PieChart;
-})(_react2.default.Component);
-
-exports.default = PieChart;
-module.exports = exports['default'];
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/npmdist/pie-chart/index.js.map b/npmdist/pie-chart/index.js.map
deleted file mode 100644
index 93d2bc0..0000000
--- a/npmdist/pie-chart/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../modules/pie-chart/index.js"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import React from 'react';\nimport { scale, layout, svg, select, event as d3LastEvent, interpolate } from 'd3';\nimport {defaultStyle} from '../shared';\nimport { createElement } from 'react-faux-dom';\nimport { Style } from 'radium';\nimport merge from 'lodash.merge';\n\nexport default class PieChart extends React.Component {\n static get propTypes() {\n return {\n data: React.PropTypes.array.isRequired,\n innerHoleSize: React.PropTypes.number,\n size: React.PropTypes.number,\n padding: React.PropTypes.number,\n labels: React.PropTypes.bool,\n styles: React.PropTypes.object,\n mouseOverHandler: React.PropTypes.func,\n mouseOutHandler: React.PropTypes.func,\n mouseMoveHandler: React.PropTypes.func,\n clickHandler: React.PropTypes.func\n };\n }\n\n static get defaultProps() {\n return {\n size: 400,\n innerHoleSize: 0,\n padding: 2,\n labels: false,\n styles: {},\n mouseOverHandler: () => {},\n mouseOutHandler: () => {},\n mouseMoveHandler: () => {},\n clickHandler: () => {}\n };\n }\n\n constructor(props) {\n super(props);\n this.uid = Math.floor(Math.random() * new Date().getTime());\n this.color = scale.category20();\n this.path = null;\n this.text = null;\n this.pie = layout.pie().value((d) => d.value).sort(null);\n this.current = [];\n this.currentTxt = [];\n }\n\n componentDidMount() {\n this.draw();\n }\n\n componentDidUpdate() {\n this.update();\n }\n\n getArc() {\n return svg.arc()\n .innerRadius(this.getInnerRadius() - this.props.padding)\n .outerRadius(this.getRadius() - this.props.padding);\n }\n\n getLabelArc() {\n return svg.arc()\n .outerRadius(this.getRadius() - this.props.padding - ((20 * this.getRadius()) / 100))\n .innerRadius(this.getRadius() - this.props.padding - ((20 * this.getRadius()) / 100));\n }\n\n getRadius() {\n return this.props.size * 0.5;\n }\n\n getInnerRadius() {\n return this.props.innerHoleSize * 0.5;\n }\n\n draw() {\n this.path = select(`#pie_${this.uid}`)\n .selectAll('path')\n .data(this.pie(this.props.data))\n .enter()\n .append('path')\n .attr('fill', (d, i) => d.data.color ? d.data.color : this.color(i))\n .attr('d', this.getArc())\n .attr('class', 'pie_chart_lines')\n .on('mouseover', (d) => this.props.mouseOverHandler(d, d3LastEvent))\n .on('mouseout', (d) => this.props.mouseOutHandler(d, d3LastEvent))\n .on('mousemove', () => this.props.mouseMoveHandler(d3LastEvent))\n .on('click', (d) => this.props.clickHandler(d, d3LastEvent))\n .each((d) => {\n this.current.push(d);\n });\n if (this.props.labels) {\n this.text = select(`#labels_${this.uid}`)\n .selectAll('text')\n .data(this.pie(this.props.data))\n .enter()\n .append('text')\n .attr('transform', (d) => `translate(${this.getLabelArc().centroid(d)})`)\n .attr('dy', '.35em')\n .attr('class', 'pie_chart_text')\n .text((d) => d.data.key)\n .each((d) => {\n this.currentTxt.push(d);\n });\n }\n }\n\n update() {\n this.path\n .data(this.pie(this.props.data))\n .transition()\n .duration(750)\n .attrTween('d', this.tween.bind(this));\n if (this.props.labels) {\n this.text\n .data(this.pie(this.props.data))\n .transition()\n .duration(750)\n .attr('transform', (d) => `translate(${this.getLabelArc().centroid(d)})`);\n }\n }\n\n tween(a, index) {\n const cur = this.current[index];\n const i = interpolate(cur, a);\n this.current[index] = a;\n return (t) => this.getArc()(i(t));\n }\n\n render() {\n const node = createElement('svg');\n select(node)\n .attr('width', this.props.size)\n .attr('height', this.props.size)\n .append('g')\n .attr('id', `pie_${this.uid}`)\n .attr('transform', `translate(${this.getRadius()}, ${this.getRadius()})`);\n select(node)\n .attr('width', this.props.size)\n .attr('height', this.props.size)\n .append('g')\n .attr('id', `labels_${this.uid}`)\n .attr('transform', `translate(${this.getRadius()}, ${this.getRadius()})`);\n\n const uid = Math.floor(Math.random() * new Date().getTime());\n\n return (\n \n \n {node.toReact()}\n
\n );\n }\n}\n"]}
\ No newline at end of file
diff --git a/npmdist/pie-chart/static/index.js b/npmdist/pie-chart/static/index.js
deleted file mode 100644
index e1a1dec..0000000
--- a/npmdist/pie-chart/static/index.js
+++ /dev/null
@@ -1,272 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-
-var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray');
-
-var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
-
-var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
-
-var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
-
-var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
-
-var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
-
-var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
-
-var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
-
-var _createClass2 = require('babel-runtime/helpers/createClass');
-
-var _createClass3 = _interopRequireDefault(_createClass2);
-
-var _inherits2 = require('babel-runtime/helpers/inherits');
-
-var _inherits3 = _interopRequireDefault(_inherits2);
-
-var _react = require('react');
-
-var _react2 = _interopRequireDefault(_react);
-
-var _d = require('d3');
-
-var _shared = require('../../shared');
-
-var _reactFauxDom = require('react-faux-dom');
-
-var _radium = require('radium');
-
-var _lodash = require('lodash.merge');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var color = _d.scale.category20();
-var pie = _d.layout.pie().value(function (d) {
- return d.value;
-}).sort(null);
-
-var getSliceFill = function getSliceFill(d, i) {
- return d.data.color ? d.data.color : color(i);
-};
-
-var getLabelText = function getLabelText(d) {
- return d.data.key;
-};
-
-var PieChart = function (_React$Component) {
- (0, _inherits3.default)(PieChart, _React$Component);
- (0, _createClass3.default)(PieChart, null, [{
- key: 'propTypes',
- get: function get() {
- return {
- data: _react2.default.PropTypes.array.isRequired,
- innerHoleSize: _react2.default.PropTypes.number,
- size: _react2.default.PropTypes.number,
- padding: _react2.default.PropTypes.number,
- labels: _react2.default.PropTypes.bool,
- styles: _react2.default.PropTypes.object,
- mouseOverHandler: _react2.default.PropTypes.func,
- mouseOutHandler: _react2.default.PropTypes.func,
- mouseMoveHandler: _react2.default.PropTypes.func,
- clickHandler: _react2.default.PropTypes.func
- };
- }
- }, {
- key: 'defaultProps',
- get: function get() {
- return {
- size: 400,
- innerHoleSize: 0,
- padding: 2,
- labels: false,
- styles: {},
- mouseOverHandler: function mouseOverHandler() {},
- mouseOutHandler: function mouseOutHandler() {},
- mouseMoveHandler: function mouseMoveHandler() {},
- clickHandler: function clickHandler() {}
- };
- }
- }]);
-
- function PieChart(props) {
- (0, _classCallCheck3.default)(this, PieChart);
-
- var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(PieChart).call(this, props));
-
- _this.uid = (0, _shared.createUniqueID)(props);
- return _this;
- }
-
- (0, _createClass3.default)(PieChart, [{
- key: 'getSliceArc',
- value: function getSliceArc() {
- var padding = this.props.padding;
-
-
- var innerRadius = this.getInnerRadius();
- var outerRadius = this.getOuterRadius();
-
- return _d.svg.arc().innerRadius(innerRadius - padding).outerRadius(outerRadius - padding);
- }
- }, {
- key: 'getLabelArc',
- value: function getLabelArc() {
- var padding = this.props.padding;
-
-
- var outerRadius = this.getOuterRadius();
- var radius = outerRadius - padding - 20 * outerRadius / 100;
-
- return _d.svg.arc().outerRadius(radius).innerRadius(radius);
- }
- }, {
- key: 'getOuterRadius',
- value: function getOuterRadius() {
- return this.props.size * 0.5;
- }
- }, {
- key: 'getInnerRadius',
- value: function getInnerRadius() {
- return this.props.innerHoleSize * 0.5;
- }
- }, {
- key: 'createSvgNode',
- value: function createSvgNode(_ref) {
- var size = _ref.size;
-
- var node = (0, _reactFauxDom.createElement)('svg');
- node.setAttribute('width', size);
- node.setAttribute('height', size);
- return node;
- }
- }, {
- key: 'createSvgRoot',
- value: function createSvgRoot(_ref2) {
- var node = _ref2.node;
-
- return (0, _d.select)(node);
- }
- }, {
- key: 'createSlices',
- value: function createSlices(_ref3) {
- var root = _ref3.root;
- var _props = this.props;
- var data = _props.data;
- var mouseOverHandler = _props.mouseOverHandler;
- var mouseOutHandler = _props.mouseOutHandler;
- var mouseMoveHandler = _props.mouseMoveHandler;
- var clickHandler = _props.clickHandler;
-
-
- var radius = this.getOuterRadius();
-
- var mouseover = function mouseover(d) {
- return mouseOverHandler(d, _d.event);
- };
- var mouseout = function mouseout(d) {
- return mouseOutHandler(d, _d.event);
- };
- var mousemove = function mousemove(d) {
- return mouseMoveHandler(d, _d.event);
- };
- var click = function click(d) {
- return clickHandler(d, _d.event);
- };
-
- var path = root.append('g').attr('transform', 'translate(' + radius + ', ' + radius + ')').datum(data).selectAll('path').data(pie);
-
- path.enter().append('path').attr('class', 'pie-chart-slice').attr('fill', getSliceFill).attr('d', this.getSliceArc()).on('mouseover', mouseover).on('mouseout', mouseout).on('mousemove', mousemove).on('click', click);
- }
- }, {
- key: 'createLabels',
- value: function createLabels(_ref4) {
- var _this2 = this;
-
- var root = _ref4.root;
- var data = this.props.data;
-
-
- var radius = this.getOuterRadius();
-
- var getLabelArcTransform = function getLabelArcTransform(d) {
- var _getLabelArc$centroid = _this2.getLabelArc().centroid(d);
-
- var _getLabelArc$centroid2 = (0, _slicedToArray3.default)(_getLabelArc$centroid, 2);
-
- var labelX = _getLabelArc$centroid2[0];
- var labelY = _getLabelArc$centroid2[1];
-
- return 'translate(' + labelX + ', ' + labelY + ')';
- };
-
- var text = root.append('g').attr('transform', 'translate(' + radius + ', ' + radius + ')').datum(data).selectAll('text').data(pie);
- text.enter().append('text').attr('class', 'pie-chart-label').attr('dy', '.35em').attr('transform', getLabelArcTransform).text(getLabelText);
- }
- }, {
- key: 'createStyle',
- value: function createStyle() {
- var styles = this.props.styles;
-
-
- var uid = this.uid;
- var scope = '.pie-chart-' + uid;
- var rules = (0, _lodash2.default)({}, _shared.defaultStyles, styles);
-
- return _react2.default.createElement(_radium.Style, {
- scopeSelector: scope,
- rules: rules
- });
- }
- }, {
- key: 'calculateChartParameters',
- value: function calculateChartParameters() {
- var size = this.props.size;
-
-
- var node = this.createSvgNode({ size: size });
- var root = this.createSvgRoot({ node: node });
-
- return {
- node: node,
- root: root
- };
- }
- }, {
- key: 'render',
- value: function render() {
- var labels = this.props.labels;
-
-
- var p = this.calculateChartParameters();
-
- this.createSlices(p);
-
- if (labels) {
- this.createLabels(p);
- }
-
- var uid = this.uid;
- var className = 'pie-chart-' + uid;
- var node = p.node;
-
-
- return _react2.default.createElement(
- 'div',
- { className: className },
- this.createStyle(),
- node.toReact()
- );
- }
- }]);
- return PieChart;
-}(_react2.default.Component);
-
-exports.default = PieChart;
-module.exports = exports['default'];
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/npmdist/pie-chart/static/index.js.map b/npmdist/pie-chart/static/index.js.map
deleted file mode 100644
index 5cb7ea7..0000000
--- a/npmdist/pie-chart/static/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../../modules/pie-chart/static/index.js"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import React from 'react';\nimport {\n scale,\n layout,\n svg,\n select,\n event as lastEvent\n} from 'd3';\nimport {\n createUniqueID,\n defaultStyles\n} from '../../shared';\nimport { createElement } from 'react-faux-dom';\nimport { Style } from 'radium';\nimport merge from 'lodash.merge';\n\nconst color = scale.category20();\nconst pie = layout.pie()\n .value((d) => d.value)\n .sort(null);\n\nconst getSliceFill = (d, i) => (\n (d.data.color)\n ? d.data.color\n : color(i));\n\nconst getLabelText = (d) => d.data.key;\n\nexport default class PieChart extends React.Component {\n static get propTypes() {\n return {\n data: React.PropTypes.array.isRequired,\n innerHoleSize: React.PropTypes.number,\n size: React.PropTypes.number,\n padding: React.PropTypes.number,\n labels: React.PropTypes.bool,\n styles: React.PropTypes.object,\n mouseOverHandler: React.PropTypes.func,\n mouseOutHandler: React.PropTypes.func,\n mouseMoveHandler: React.PropTypes.func,\n clickHandler: React.PropTypes.func\n };\n }\n\n static get defaultProps() {\n return {\n size: 400,\n innerHoleSize: 0,\n padding: 2,\n labels: false,\n styles: {},\n mouseOverHandler: () => {},\n mouseOutHandler: () => {},\n mouseMoveHandler: () => {},\n clickHandler: () => {}\n };\n }\n\n constructor(props) {\n super(props);\n this.uid = createUniqueID(props);\n }\n\n getSliceArc() {\n const {\n padding\n } = this.props;\n\n const innerRadius = this.getInnerRadius();\n const outerRadius = this.getOuterRadius();\n\n return svg.arc()\n .innerRadius(innerRadius - padding)\n .outerRadius(outerRadius - padding);\n }\n\n getLabelArc() {\n const {\n padding\n } = this.props;\n\n const outerRadius = this.getOuterRadius();\n const radius = outerRadius - padding - ((20 * outerRadius) / 100);\n\n return svg.arc()\n .outerRadius(radius)\n .innerRadius(radius);\n }\n\n getOuterRadius() {\n return this.props.size * 0.5;\n }\n\n getInnerRadius() {\n return this.props.innerHoleSize * 0.5;\n }\n\n createSvgNode({ size }) {\n const node = createElement('svg');\n node.setAttribute('width', size);\n node.setAttribute('height', size);\n return node;\n }\n\n createSvgRoot({ node }) {\n return select(node);\n }\n\n createSlices({ root }) {\n const {\n data,\n mouseOverHandler,\n mouseOutHandler,\n mouseMoveHandler,\n clickHandler\n } = this.props;\n\n const radius = this.getOuterRadius();\n\n const mouseover = (d) => mouseOverHandler(d, lastEvent);\n const mouseout = (d) => mouseOutHandler(d, lastEvent);\n const mousemove = (d) => mouseMoveHandler(d, lastEvent);\n const click = (d) => clickHandler(d, lastEvent);\n\n const path = root\n .append('g')\n .attr('transform', `translate(${radius}, ${radius})`)\n .datum(data)\n .selectAll('path')\n .data(pie);\n\n path\n .enter()\n .append('path')\n .attr('class', 'pie-chart-slice')\n .attr('fill', getSliceFill)\n .attr('d', this.getSliceArc())\n .on('mouseover', mouseover)\n .on('mouseout', mouseout)\n .on('mousemove', mousemove)\n .on('click', click);\n }\n\n createLabels({ root }) {\n const {\n data\n } = this.props;\n\n const radius = this.getOuterRadius();\n\n const getLabelArcTransform = (d) => {\n const [labelX, labelY] = this.getLabelArc().centroid(d);\n return `translate(${labelX}, ${labelY})`;\n };\n\n const text = root\n .append('g')\n .attr('transform', `translate(${radius}, ${radius})`)\n .datum(data)\n .selectAll('text')\n .data(pie);\n text\n .enter()\n .append('text')\n .attr('class', 'pie-chart-label')\n .attr('dy', '.35em')\n .attr('transform', getLabelArcTransform)\n .text(getLabelText);\n }\n\n createStyle() {\n const {\n styles\n } = this.props;\n\n const uid = this.uid;\n const scope = `.pie-chart-${uid}`;\n const rules = merge({}, defaultStyles, styles);\n\n return (\n \n );\n }\n\n calculateChartParameters() {\n const {\n size\n } = this.props;\n\n const node = this.createSvgNode({ size });\n const root = this.createSvgRoot({ node });\n\n return {\n node,\n root\n };\n }\n\n render() {\n const {\n labels\n } = this.props;\n\n const p = this.calculateChartParameters();\n\n this.createSlices(p);\n\n if (labels) {\n this.createLabels(p);\n }\n\n const uid = this.uid;\n const className = `pie-chart-${uid}`;\n const {\n node\n } = p;\n\n return (\n \n {this.createStyle()}\n {node.toReact()}\n
\n );\n }\n}\n"]}
\ No newline at end of file
diff --git a/npmdist/scatterplot-chart/hybrid/index.js b/npmdist/scatterplot-chart/hybrid/index.js
deleted file mode 100644
index 799dbda..0000000
--- a/npmdist/scatterplot-chart/hybrid/index.js
+++ /dev/null
@@ -1,722 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-
-var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
-
-var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
-
-var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
-
-var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
-
-var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
-
-var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
-
-var _createClass2 = require('babel-runtime/helpers/createClass');
-
-var _createClass3 = _interopRequireDefault(_createClass2);
-
-var _inherits2 = require('babel-runtime/helpers/inherits');
-
-var _inherits3 = _interopRequireDefault(_inherits2);
-
-var _react = require('react');
-
-var _react2 = _interopRequireDefault(_react);
-
-var _d3Scale = require('d3-scale');
-
-var _d = require('d3');
-
-var _d3TimeFormat = require('d3-time-format');
-
-var _d3Array = require('d3-array');
-
-var _reactFauxDom = require('react-faux-dom');
-
-var _radium = require('radium');
-
-var _lodash = require('lodash.merge');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-var _shared = require('../../shared');
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var dateParser = {};
-
-var color = _d.scale.category20();
-
-var axisMargin = 18;
-
-var ScatterplotChart = function (_React$Component) {
- (0, _inherits3.default)(ScatterplotChart, _React$Component);
- (0, _createClass3.default)(ScatterplotChart, null, [{
- key: 'propTypes',
- get: function get() {
- return {
- axes: _react2.default.PropTypes.bool,
- axisLabels: _react2.default.PropTypes.shape({
- x: _react2.default.PropTypes.string,
- y: _react2.default.PropTypes.string
- }),
- clickHandler: _react2.default.PropTypes.func,
- config: _react2.default.PropTypes.array,
- data: _react2.default.PropTypes.array.isRequired,
- datePattern: _react2.default.PropTypes.string,
- yAxisOrientRight: _react2.default.PropTypes.bool,
- dotRadius: _react2.default.PropTypes.number,
- verticalGrid: _react2.default.PropTypes.bool,
- grid: _react2.default.PropTypes.bool,
- height: _react2.default.PropTypes.number,
- useLegend: _react2.default.PropTypes.bool,
- margin: _react2.default.PropTypes.object,
- mouseOverHandler: _react2.default.PropTypes.func,
- mouseOutHandler: _react2.default.PropTypes.func,
- mouseMoveHandler: _react2.default.PropTypes.func,
- style: _react2.default.PropTypes.object,
- tickTimeDisplayFormat: _react2.default.PropTypes.string,
- width: _react2.default.PropTypes.number,
- xDomainRange: _react2.default.PropTypes.array,
- yDomainRange: _react2.default.PropTypes.array,
- xTickNumber: _react2.default.PropTypes.number,
- yTickNumber: _react2.default.PropTypes.number,
- xTicks: _react2.default.PropTypes.number,
- yTicks: _react2.default.PropTypes.number,
- xType: _react2.default.PropTypes.string,
- yType: _react2.default.PropTypes.string
- };
- }
- }, {
- key: 'defaultProps',
- get: function get() {
- return {
- axes: false,
- axisLabels: {
- x: '',
- y: ''
- },
- clickHandler: function clickHandler() {},
- config: [],
- datePattern: '%d-%b-%y',
- dotRadius: 5,
- grid: false,
- mouseOverHandler: function mouseOverHandler() {},
- mouseOutHandler: function mouseOutHandler() {},
- mouseMoveHandler: function mouseMoveHandler() {},
- width: 320,
- height: 180,
- xType: 'linear',
- yType: 'linear'
- };
- }
- }]);
-
- function ScatterplotChart(props) {
- (0, _classCallCheck3.default)(this, ScatterplotChart);
-
- var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(ScatterplotChart).call(this, props));
-
- _this.uid = (0, _shared.createUniqueID)(props);
- return _this;
- }
-
- (0, _createClass3.default)(ScatterplotChart, [{
- key: 'componentDidMount',
- value: function componentDidMount() {
- this.initialise();
- var ref = this.refs.scatterplotChart;
- (0, _shared.createCircularTicks)(ref);
- }
- }, {
- key: 'componentDidUpdate',
- value: function componentDidUpdate() {
- this.transition();
- var ref = this.refs.scatterplotChart;
- (0, _shared.createCircularTicks)(ref);
- }
- }, {
- key: 'getScale',
- value: function getScale(type) {
- switch (type) {
- case 'time':
- return _d.time.scale();
- case 'text':
- return (0, _d3Scale.scalePoint)();
- default:
- return (0, _d3Scale.scaleLinear)();
- }
- }
- }, {
- key: 'getDataConfig',
- value: function getDataConfig(type) {
- var config = this.props.config;
-
-
- var index = config.findIndex(function (item) {
- return item.type === type;
- });
- return config[index];
- }
- }, {
- key: 'getFill',
- value: function getFill(data) {
- var configItem = this.getDataConfig(data.type);
- return configItem ? configItem.color : color(data.type);
- }
- }, {
- key: 'getRadius',
- value: function getRadius(data, dataItem, dotRadius) {
- if (typeof data[0].z !== 'undefined') {
- var range = (0, _d3Array.extent)(data, function (d) {
- return d.z;
- });
- var mn = range[0];
- var mx = range[1];
- var p = (dataItem.z - mn) / (mx - mn);
- var minRad = 5;
- var maxRad = 20;
- var rad = minRad + (maxRad - minRad) * p;
- return rad;
- }
- return dotRadius;
- }
- }, {
- key: 'getStroke',
- value: function getStroke(data) {
- var configItem = this.getDataConfig(data.type);
- return configItem ? configItem.stroke : 'none'; // typeof configItem !== 'undefined' ? configItem.stroke : 'none';
- }
- }, {
- key: 'getCircles',
- value: function getCircles() {
- var uid = this.uid;
- return (0, _d.select)('#scatterplot-chart-' + uid).selectAll('circle'); // '.dot'
- }
- }, {
- key: 'getXAxis',
- value: function getXAxis() {
- var uid = this.uid;
- return (0, _d.select)('#scatterplot-x-axis-' + uid);
- }
- }, {
- key: 'getYAxis',
- value: function getYAxis() {
- var uid = this.uid;
- return (0, _d.select)('#scatterplot-y-axis-' + uid);
- }
- }, {
- key: 'createDomainRangeGenerator',
- value: function createDomainRangeGenerator(axisType, domainRange, data, type, length, yAxisOrientRight) {
- var _this2 = this;
-
- var dataIndex = axisType === 'x' ? 'x' : 'y';
-
- var axis = void 0;
- var minAmount = void 0;
- var maxAmount = void 0;
-
- var parseDate = function parseDate(v) {
- return _this2.parseDate(v);
- };
-
- switch (type) {
- case 'text':
- axis = (0, _d3Scale.scalePoint)();
- axis.domain(data.map(function (d) {
- return d[dataIndex];
- }), 1).range([0, length]).padding(1);
- break;
- case 'linear':
- axis = (0, _d3Scale.scaleLinear)();
- minAmount = (0, _d.min)(data, function (d) {
- return d[dataIndex];
- });
- maxAmount = (0, _d.max)(data, function (d) {
- return d[dataIndex];
- });
- if (domainRange) {
- axis.domain(domainRange); // calculateDomainRange(domainRange, type, parseDate));
- } else {
- // set initial domain
- axis.domain([minAmount, maxAmount]);
- // calculate 1 tick offset
- var ticks = axis.ticks();
-
- minAmount = yAxisOrientRight && axisType === 'x' ? minAmount : minAmount - (ticks[1] - ticks[0]);
-
- maxAmount = yAxisOrientRight && axisType === 'x' ? maxAmount + (ticks[1] - ticks[0]) : maxAmount;
-
- axis.domain([minAmount, maxAmount]);
- }
- axis.range(axisType === 'x' ? [0, length] : [length, 0]);
- break;
- case 'time':
- axis = _d.time.scale();
- axis.domain(domainRange ? (0, _shared.calculateDomainRange)(domainRange) : (0, _d3Array.extent)(data, function (d) {
- return parseDate(d[dataIndex]);
- })).range(axisType === 'x' ? [0, length] : [length, 0]);
- break;
- default:
- break;
- }
- return axis;
- }
- }, {
- key: 'calculateMargin',
- value: function calculateMargin(axes, spacer, yAxisOrientRight) {
- if (yAxisOrientRight) {
- return axes ? { top: 24, right: 48, bottom: 24, left: 24 } : { top: spacer, right: spacer, bottom: spacer, left: spacer };
- }
- return axes ? { top: 24, right: 24, bottom: 24, left: 48 } : { top: spacer, right: spacer, bottom: spacer, left: spacer };
- }
- }, {
- key: 'calculateInnerW',
- value: function calculateInnerW(w, m) {
- return w - (m.left + m.right);
- }
- }, {
- key: 'calculateInnerH',
- value: function calculateInnerH(h, m) {
- var dotRadius = this.props.dotRadius;
-
-
- return h - (m.top + m.bottom + dotRadius * 2);
- }
- }, {
- key: 'calculateXAxis',
- value: function calculateXAxis(_ref) {
- var h = _ref.h;
- var x = _ref.x;
- var _props = this.props;
- var xType = _props.xType;
- var tickTimeDisplayFormat = _props.tickTimeDisplayFormat;
- var xTickNumber = _props.xTickNumber;
- var grid = _props.grid;
- var verticalGrid = _props.verticalGrid;
- var xTicks = _props.xTicks;
-
-
- var axis = _d.svg.axis().scale(x).orient('bottom');
-
- if (xType === 'time' && tickTimeDisplayFormat) {
- axis.tickFormat(_d.time.format(tickTimeDisplayFormat));
- }
-
- if (xTickNumber) {
- axis.ticks(xTickNumber);
- }
-
- if (grid && verticalGrid) {
- axis.tickSize(-h, 6).tickPadding(15);
- } else {
- axis.tickSize(0).tickPadding(15);
- }
-
- if (xTicks) {
- axis.ticks(xTicks);
- }
-
- return axis;
- }
- }, {
- key: 'calculateYAxis',
- value: function calculateYAxis(_ref2) {
- var y = _ref2.y;
- var innerW = _ref2.innerW;
- var _props2 = this.props;
- var grid = _props2.grid;
- var yTicks = _props2.yTicks;
- var yAxisOrientRight = _props2.yAxisOrientRight;
-
-
- var axis = _d.svg.axis().scale(y).orient(yAxisOrientRight ? 'right' : 'left');
-
- if (grid) {
- axis.tickSize(-innerW, 6).tickPadding(12);
- } else {
- axis.tickPadding(10);
- }
-
- if (yTicks) {
- axis.ticks(yTicks);
- }
-
- return axis;
- }
- }, {
- key: 'initialise',
- value: function initialise() {
- var axes = this.props.axes;
-
-
- var p = this.calculateChartParameters();
-
- if (axes) {
- this.initialiseXAxis(p);
-
- this.initialiseYAxis(p);
- }
-
- this.initialiseChart(p);
- }
- }, {
- key: 'initialiseXAxis',
- value: function initialiseXAxis(_ref3) {
- var xAxis = _ref3.xAxis;
-
- this.getXAxis().call(xAxis);
- }
- }, {
- key: 'initialiseYAxis',
- value: function initialiseYAxis(_ref4) {
- var yAxis = _ref4.yAxis;
-
- this.getYAxis().call(yAxis);
- }
- }, {
- key: 'initialiseChart',
- value: function initialiseChart(_ref5) {
- var _this3 = this;
-
- var x = _ref5.x;
- var y = _ref5.y;
- var _props3 = this.props;
- var data = _props3.data;
- var dotRadius = _props3.dotRadius;
- var xType = _props3.xType;
- var mouseOverHandler = _props3.mouseOverHandler;
- var mouseOutHandler = _props3.mouseOutHandler;
- var mouseMoveHandler = _props3.mouseMoveHandler;
- var clickHandler = _props3.clickHandler;
-
-
- var calculateDate = function calculateDate(v) {
- return _this3.parseDate(v);
- };
-
- var calculateR = function calculateR(d) {
- return _this3.getRadius(data, d, dotRadius);
- };
- var calculateCX = function calculateCX(d) {
- return xType === 'time' ? x(calculateDate(d.x)) : x(d.x);
- };
- var calculateCY = function calculateCY(d) {
- return y(d.y);
- };
-
- var getFill = function getFill(d) {
- return _this3.getFill(d);
- };
- var getStroke = function getStroke(d) {
- return _this3.getStroke(d);
- };
-
- var mouseOver = function mouseOver(d) {
- return mouseOverHandler(d, _d.event);
- };
- var mouseOut = function mouseOut(d) {
- return mouseOutHandler(d, _d.event);
- };
- var mouseMove = function mouseMove(d) {
- return mouseMoveHandler(d, _d.event);
- };
- var click = function click(d) {
- return clickHandler(d, _d.event);
- };
-
- var circle = this.getCircles().data(data);
-
- circle.enter().append('circle').attr('class', 'dot').attr('r', calculateR).attr('cx', calculateCX).attr('cy', calculateCY).style('fill', getFill).style('stroke', getStroke).on('mouseover', mouseOver).on('mouseout', mouseOut).on('mousemove', mouseMove).on('click', click);
- }
- }, {
- key: 'transition',
- value: function transition() {
- var axes = this.props.axes;
-
-
- var p = this.calculateChartParameters();
-
- if (axes) {
- this.transitionXAxis(p);
-
- this.transitionYAxis(p);
- }
-
- this.transitionChart(p);
- }
- }, {
- key: 'transitionXAxis',
- value: function transitionXAxis(_ref6) {
- var xAxis = _ref6.xAxis;
-
- this.getXAxis().transition().duration(750).call(xAxis);
- }
- }, {
- key: 'transitionYAxis',
- value: function transitionYAxis(_ref7) {
- var yAxis = _ref7.yAxis;
-
- this.getYAxis().transition().duration(750).call(yAxis);
- }
- }, {
- key: 'transitionChart',
- value: function transitionChart(_ref8) {
- var _this4 = this;
-
- var x = _ref8.x;
- var y = _ref8.y;
- var _props4 = this.props;
- var data = _props4.data;
- var dotRadius = _props4.dotRadius;
- var xType = _props4.xType;
- var mouseOverHandler = _props4.mouseOverHandler;
- var mouseOutHandler = _props4.mouseOutHandler;
- var mouseMoveHandler = _props4.mouseMoveHandler;
- var clickHandler = _props4.clickHandler;
-
-
- var calculateDate = function calculateDate(v) {
- return _this4.parseDate(v);
- };
-
- var calculateR = function calculateR(d) {
- return _this4.getRadius(data, d, dotRadius);
- };
- var calculateCX = function calculateCX(d) {
- return xType === 'time' ? x(calculateDate(d.x)) : x(d.x);
- };
- var calculateCY = function calculateCY(d) {
- return y(d.y);
- };
-
- var mouseOver = function mouseOver(d) {
- return mouseOverHandler(d, _d.event);
- };
- var mouseOut = function mouseOut(d) {
- return mouseOutHandler(d, _d.event);
- };
- var mouseMove = function mouseMove(d) {
- return mouseMoveHandler(d, _d.event);
- };
- var click = function click(d) {
- return clickHandler(d, _d.event);
- };
-
- var getFill = function getFill(d) {
- return _this4.getFill(d);
- };
- var getStroke = function getStroke(d) {
- return _this4.getStroke(d);
- };
-
- var n = data.length;
- var circle = this.getCircles().data(data);
-
- if (n) {
- circle.transition().duration(750).attr('r', calculateR).attr('cx', calculateCX).attr('cy', calculateCY);
-
- circle.style('fill', getFill).style('stroke', getStroke).on('mouseover', mouseOver).on('mouseout', mouseOut).on('mousemove', mouseMove).on('click', click);
-
- circle.enter().append('circle').attr('class', 'dot').attr('r', calculateR).attr('cx', calculateCX).attr('cy', calculateCY).style('fill', getFill).style('stroke', getStroke).on('mouseover', mouseOver).on('mouseout', mouseOut).on('mousemove', mouseMove).on('click', click);
- }
-
- circle.exit().remove();
- }
- }, {
- key: 'createSvgNode',
- value: function createSvgNode(_ref9) {
- var m = _ref9.m;
- var w = _ref9.w;
- var h = _ref9.h;
-
- var node = (0, _reactFauxDom.createElement)('svg');
- node.setAttribute('width', w + m.left + m.right);
- node.setAttribute('height', h + m.top + m.bottom);
- return node;
- }
- }, {
- key: 'createSvgRoot',
- value: function createSvgRoot(_ref10) {
- var node = _ref10.node;
- var m = _ref10.m;
-
- return (0, _d.select)(node).append('g').attr('transform', 'translate(' + m.left + ', ' + m.top + ')');
- }
- }, {
- key: 'createXAxis',
- value: function createXAxis(_ref11) {
- var m = _ref11.m;
- var innerW = _ref11.innerW;
- var innerH = _ref11.innerH;
- var root = _ref11.root;
- var _props5 = this.props;
- var yAxisOrientRight = _props5.yAxisOrientRight;
- var label = _props5.axisLabels.x;
-
-
- var uid = this.uid;
-
- var group = root.append('g').attr('class', 'x axis').attr('id', 'scatterplot-x-axis-' + uid).attr('transform', 'translate(0, ' + innerH + ')');
-
- if (label) {
- group.append('text').attr('class', 'label').attr('x', yAxisOrientRight ? 0 : innerW).attr('y', m.bottom + axisMargin).style('text-anchor', yAxisOrientRight ? 'start' : 'end').text(label);
- }
- }
- }, {
- key: 'createYAxis',
- value: function createYAxis(_ref12) {
- var m = _ref12.m;
- var innerW = _ref12.innerW;
- var root = _ref12.root;
- var _props6 = this.props;
- var yAxisOrientRight = _props6.yAxisOrientRight;
- var label = _props6.axisLabels.y;
-
-
- var uid = this.uid;
-
- var group = root.append('g').attr('class', 'y axis').attr('id', 'scatterplot-y-axis-' + uid).attr('transform', yAxisOrientRight ? 'translate(' + innerW + ', 0)' : 'translate(0, 0)');
-
- if (label) {
- group.append('text').attr('class', 'label').attr('transform', 'rotate(-90)').attr('y', yAxisOrientRight ? -25 + m.right : 10 - m.left).attr('dy', '.71em').style('text-anchor', 'end').text(label);
- }
- }
- }, {
- key: 'createScatterplotChart',
- value: function createScatterplotChart(_ref13) {
- var root = _ref13.root;
-
- var uid = this.uid;
-
- root.append('g').attr('id', 'scatterplot-chart-' + uid);
- }
- }, {
- key: 'createStyle',
- value: function createStyle() {
- var _props7 = this.props;
- var style = _props7.style;
- var grid = _props7.grid;
- var verticalGrid = _props7.verticalGrid;
- var yAxisOrientRight = _props7.yAxisOrientRight;
-
-
- var uid = this.uid;
- var scope = '.scatterplot-chart-' + uid;
- var axisStyles = (0, _shared.getAxisStyles)(grid, verticalGrid, yAxisOrientRight);
- var rules = (0, _lodash2.default)({}, _shared.defaultStyles, style, axisStyles);
-
- return _react2.default.createElement(_radium.Style, {
- scopeSelector: scope,
- rules: rules
- });
- }
- }, {
- key: 'parseDate',
- value: function parseDate(v) {
- var datePattern = this.props.datePattern;
-
-
- var datePatternParser = dateParser[datePattern] || (dateParser[datePattern] = (0, _d3TimeFormat.timeParse)(datePattern));
-
- return datePatternParser(v);
- }
- }, {
- key: 'calculateChartParameters',
- value: function calculateChartParameters() {
- var _this5 = this;
-
- var _props8 = this.props;
- var axes = _props8.axes;
- var data = _props8.data;
- var margin = _props8.margin;
- var width = _props8.width;
- var height = _props8.height;
- var dotRadius = _props8.dotRadius;
- var xType = _props8.xType;
- var yType = _props8.yType;
- var xDomainRange = _props8.xDomainRange;
- var yDomainRange = _props8.yDomainRange;
- var yAxisOrientRight = _props8.yAxisOrientRight;
-
- /*
- * We could "bind"!
- */
-
- var parseDate = function parseDate(v) {
- return _this5.parseDate(v);
- };
-
- var m = margin || this.calculateMargin(axes, dotRadius * 2, yAxisOrientRight);
- var w = width;
- var h = height + dotRadius * 3;
-
- var innerW = this.calculateInnerW(width, m);
- var innerH = this.calculateInnerH(height, m);
-
- var defaultXDomainRange = (0, _shared.calculateDomainRange)(xDomainRange, xType, parseDate);
- var defaultYDomainRange = (0, _shared.calculateDomainRange)(yDomainRange, yType, parseDate);
-
- var x = this.createDomainRangeGenerator('x', defaultXDomainRange, data, xType, innerW, yAxisOrientRight);
- var y = this.createDomainRangeGenerator('y', defaultYDomainRange, data, yType, innerH, yAxisOrientRight);
-
- var xAxis = this.calculateXAxis({ m: m, h: h, x: x, innerW: innerW });
- var yAxis = this.calculateYAxis({ m: m, y: y, innerW: innerW });
-
- var node = this.createSvgNode({ m: m, w: w, h: h });
- var root = this.createSvgRoot({ node: node, m: m });
-
- return {
- m: m,
- w: w,
- h: h,
- innerW: innerW,
- innerH: innerH,
- x: x,
- y: y,
- xAxis: xAxis,
- yAxis: yAxis,
- node: node,
- root: root
- };
- }
- }, {
- key: 'render',
- value: function render() {
- var axes = this.props.axes;
-
-
- var p = this.calculateChartParameters();
-
- if (axes) {
- this.createXAxis(p);
-
- this.createYAxis(p);
- }
-
- this.createScatterplotChart(p);
-
- var uid = this.uid;
- var className = 'scatterplot-chart-' + uid;
- var node = p.node;
-
-
- return _react2.default.createElement(
- 'div',
- { ref: 'scatterplotChart', className: className },
- this.createStyle(),
- node.toReact()
- );
- }
- }]);
- return ScatterplotChart;
-}(_react2.default.Component);
-
-exports.default = ScatterplotChart;
-module.exports = exports['default'];
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/npmdist/scatterplot-chart/hybrid/index.js.map b/npmdist/scatterplot-chart/hybrid/index.js.map
deleted file mode 100644
index 04c3cba..0000000
--- a/npmdist/scatterplot-chart/hybrid/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../../modules/scatterplot-chart/hybrid/index.js"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import React from 'react';\nimport {\n scaleLinear as linear,\n scalePoint as point\n} from 'd3-scale';\nimport {\n event as lastEvent,\n min,\n max,\n scale,\n select,\n svg,\n time\n} from 'd3';\nimport { timeParse as parse } from 'd3-time-format';\nimport { extent } from 'd3-array';\nimport { createElement } from 'react-faux-dom';\nimport { Style } from 'radium';\nimport merge from 'lodash.merge';\nimport {\n createUniqueID,\n calculateDomainRange,\n defaultStyles,\n getAxisStyles,\n createCircularTicks\n} from '../../shared';\n\nconst dateParser = {};\n\nconst color = scale.category20();\n\nconst axisMargin = 18;\n\nexport default class ScatterplotChart extends React.Component {\n static get propTypes() {\n return {\n axes: React.PropTypes.bool,\n axisLabels: React.PropTypes.shape({\n x: React.PropTypes.string,\n y: React.PropTypes.string\n }),\n clickHandler: React.PropTypes.func,\n config: React.PropTypes.array,\n data: React.PropTypes.array.isRequired,\n datePattern: React.PropTypes.string,\n yAxisOrientRight: React.PropTypes.bool,\n dotRadius: React.PropTypes.number,\n verticalGrid: React.PropTypes.bool,\n grid: React.PropTypes.bool,\n height: React.PropTypes.number,\n useLegend: React.PropTypes.bool,\n margin: React.PropTypes.object,\n mouseOverHandler: React.PropTypes.func,\n mouseOutHandler: React.PropTypes.func,\n mouseMoveHandler: React.PropTypes.func,\n style: React.PropTypes.object,\n tickTimeDisplayFormat: React.PropTypes.string,\n width: React.PropTypes.number,\n xDomainRange: React.PropTypes.array,\n yDomainRange: React.PropTypes.array,\n xTickNumber: React.PropTypes.number,\n yTickNumber: React.PropTypes.number,\n xTicks: React.PropTypes.number,\n yTicks: React.PropTypes.number,\n xType: React.PropTypes.string,\n yType: React.PropTypes.string\n };\n }\n\n static get defaultProps() {\n return {\n axes: false,\n axisLabels: {\n x: '',\n y: ''\n },\n clickHandler: () => {},\n config: [],\n datePattern: '%d-%b-%y',\n dotRadius: 5,\n grid: false,\n mouseOverHandler: () => {},\n mouseOutHandler: () => {},\n mouseMoveHandler: () => {},\n width: 320,\n height: 180,\n xType: 'linear',\n yType: 'linear'\n };\n }\n\n constructor(props) {\n super(props);\n this.uid = createUniqueID(props);\n }\n\n componentDidMount() {\n this.initialise();\n const ref = this.refs.scatterplotChart;\n createCircularTicks(ref);\n }\n\n componentDidUpdate() {\n this.transition();\n const ref = this.refs.scatterplotChart;\n createCircularTicks(ref);\n }\n\n getScale(type) {\n switch (type) {\n case 'time':\n return time.scale();\n case 'text':\n return point();\n default:\n return linear();\n }\n }\n\n getDataConfig(type) {\n const {\n config\n } = this.props;\n\n const index = config.findIndex((item) => item.type === type);\n return config[index];\n }\n\n getFill(data) {\n const configItem = this.getDataConfig(data.type);\n return (configItem)\n ? configItem.color\n : color(data.type);\n }\n\n getRadius(data, dataItem, dotRadius) {\n if (typeof data[0].z !== 'undefined') {\n const range = extent(data, (d) => d.z);\n const mn = range[0];\n const mx = range[1];\n const p = ((dataItem.z - mn) / (mx - mn));\n const minRad = 5;\n const maxRad = 20;\n const rad = minRad + ((maxRad - minRad) * p);\n return rad;\n }\n return dotRadius;\n }\n\n getStroke(data) {\n const configItem = this.getDataConfig(data.type);\n return (configItem)\n ? configItem.stroke\n : 'none'; // typeof configItem !== 'undefined' ? configItem.stroke : 'none';\n }\n\n getCircles() {\n const uid = this.uid;\n return select(`#scatterplot-chart-${uid}`)\n .selectAll('circle'); // '.dot'\n }\n\n getXAxis() {\n const uid = this.uid;\n return select(`#scatterplot-x-axis-${uid}`);\n }\n\n getYAxis() {\n const uid = this.uid;\n return select(`#scatterplot-y-axis-${uid}`);\n }\n\n createDomainRangeGenerator(axisType, domainRange, data, type, length, yAxisOrientRight) {\n const dataIndex =\n (axisType === 'x')\n ? 'x'\n : 'y';\n\n let axis;\n let minAmount;\n let maxAmount;\n\n const parseDate = (v) => this.parseDate(v);\n\n switch (type) {\n case 'text':\n axis = point();\n axis\n .domain(data.map((d) => d[dataIndex]), 1)\n .range([0, length])\n .padding(1);\n break;\n case 'linear':\n axis = linear();\n minAmount = min(data, (d) => d[dataIndex]);\n maxAmount = max(data, (d) => d[dataIndex]);\n if (domainRange) {\n axis\n .domain(domainRange); // calculateDomainRange(domainRange, type, parseDate));\n } else {\n // set initial domain\n axis\n .domain([minAmount, maxAmount]);\n // calculate 1 tick offset\n const ticks = axis.ticks();\n\n minAmount =\n (yAxisOrientRight && axisType === 'x')\n ? minAmount\n : minAmount - (ticks[1] - ticks[0]);\n\n maxAmount =\n (yAxisOrientRight && axisType === 'x')\n ? maxAmount + (ticks[1] - ticks[0])\n : maxAmount;\n\n axis\n .domain([minAmount, maxAmount]);\n }\n axis\n .range(\n (axisType === 'x')\n ? [0, length]\n : [length, 0]);\n break;\n case 'time':\n axis = time.scale();\n axis\n .domain(\n (domainRange)\n ? calculateDomainRange(domainRange)\n : extent(data, (d) => parseDate(d[dataIndex])))\n .range(\n (axisType === 'x')\n ? [0, length]\n : [length, 0]);\n break;\n default:\n break;\n }\n return axis;\n }\n\n calculateMargin(axes, spacer, yAxisOrientRight) {\n if (yAxisOrientRight) {\n return (axes)\n ? { top: 24, right: 48, bottom: 24, left: 24 }\n : { top: spacer, right: spacer, bottom: spacer, left: spacer };\n }\n return (axes)\n ? { top: 24, right: 24, bottom: 24, left: 48 }\n : { top: spacer, right: spacer, bottom: spacer, left: spacer };\n }\n\n calculateInnerW(w, m) {\n return (w - (m.left + m.right));\n }\n\n calculateInnerH(h, m) {\n const {\n dotRadius\n } = this.props;\n\n return (h - (m.top + m.bottom + (dotRadius * 2)));\n }\n\n calculateXAxis({ h, x }) {\n const {\n xType,\n tickTimeDisplayFormat,\n xTickNumber,\n grid,\n verticalGrid,\n xTicks\n } = this.props;\n\n const axis = svg.axis()\n .scale(x)\n .orient('bottom');\n\n if (xType === 'time' && tickTimeDisplayFormat) {\n axis\n .tickFormat(time.format(tickTimeDisplayFormat));\n }\n\n if (xTickNumber) {\n axis\n .ticks(xTickNumber);\n }\n\n if (grid && verticalGrid) {\n axis\n .tickSize(-h, 6)\n .tickPadding(15);\n } else {\n axis\n .tickSize(0)\n .tickPadding(15);\n }\n\n if (xTicks) {\n axis\n .ticks(xTicks);\n }\n\n return axis;\n }\n\n calculateYAxis({ y, innerW }) {\n const {\n grid,\n yTicks,\n yAxisOrientRight\n } = this.props;\n\n const axis = svg.axis()\n .scale(y)\n .orient(\n (yAxisOrientRight)\n ? 'right'\n : 'left');\n\n if (grid) {\n axis\n .tickSize(-innerW, 6)\n .tickPadding(12);\n } else {\n axis\n .tickPadding(10);\n }\n\n if (yTicks) {\n axis\n .ticks(yTicks);\n }\n\n return axis;\n }\n\n initialise() {\n const {\n axes\n } = this.props;\n\n const p = this.calculateChartParameters();\n\n if (axes) {\n this.initialiseXAxis(p);\n\n this.initialiseYAxis(p);\n }\n\n this.initialiseChart(p);\n }\n\n initialiseXAxis({ xAxis }) {\n this.getXAxis()\n .call(xAxis);\n }\n\n initialiseYAxis({ yAxis }) {\n this.getYAxis()\n .call(yAxis);\n }\n\n initialiseChart({ x, y }) {\n const {\n data,\n dotRadius,\n xType,\n mouseOverHandler,\n mouseOutHandler,\n mouseMoveHandler,\n clickHandler\n } = this.props;\n\n const calculateDate = (v) => this.parseDate(v);\n\n const calculateR = (d) => this.getRadius(data, d, dotRadius);\n const calculateCX = (d) => (\n (xType === 'time')\n ? x(calculateDate(d.x))\n : x(d.x));\n const calculateCY = (d) => y(d.y);\n\n const getFill = (d) => this.getFill(d);\n const getStroke = (d) => this.getStroke(d);\n\n const mouseOver = (d) => mouseOverHandler(d, lastEvent);\n const mouseOut = (d) => mouseOutHandler(d, lastEvent);\n const mouseMove = (d) => mouseMoveHandler(d, lastEvent);\n const click = (d) => clickHandler(d, lastEvent);\n\n const circle = this.getCircles()\n .data(data);\n\n circle\n .enter()\n .append('circle')\n .attr('class', 'dot')\n .attr('r', calculateR)\n .attr('cx', calculateCX)\n .attr('cy', calculateCY)\n .style('fill', getFill)\n .style('stroke', getStroke)\n .on('mouseover', mouseOver)\n .on('mouseout', mouseOut)\n .on('mousemove', mouseMove)\n .on('click', click);\n }\n\n transition() {\n const {\n axes\n } = this.props;\n\n const p = this.calculateChartParameters();\n\n if (axes) {\n this.transitionXAxis(p);\n\n this.transitionYAxis(p);\n }\n\n this.transitionChart(p);\n }\n\n transitionXAxis({ xAxis }) {\n this.getXAxis()\n .transition()\n .duration(750)\n .call(xAxis);\n }\n\n transitionYAxis({ yAxis }) {\n this.getYAxis()\n .transition()\n .duration(750)\n .call(yAxis);\n }\n\n transitionChart({ x, y }) {\n const {\n data,\n dotRadius,\n xType,\n mouseOverHandler,\n mouseOutHandler,\n mouseMoveHandler,\n clickHandler\n } = this.props;\n\n const calculateDate = (v) => this.parseDate(v);\n\n const calculateR = (d) => this.getRadius(data, d, dotRadius);\n const calculateCX = (d) => (\n (xType === 'time')\n ? x(calculateDate(d.x))\n : x(d.x));\n const calculateCY = (d) => y(d.y);\n\n const mouseOver = (d) => mouseOverHandler(d, lastEvent);\n const mouseOut = (d) => mouseOutHandler(d, lastEvent);\n const mouseMove = (d) => mouseMoveHandler(d, lastEvent);\n const click = (d) => clickHandler(d, lastEvent);\n\n const getFill = (d) => this.getFill(d);\n const getStroke = (d) => this.getStroke(d);\n\n const n = data.length;\n const circle = this.getCircles()\n .data(data);\n\n if (n) {\n circle\n .transition()\n .duration(750)\n .attr('r', calculateR)\n .attr('cx', calculateCX)\n .attr('cy', calculateCY);\n\n circle\n .style('fill', getFill)\n .style('stroke', getStroke)\n .on('mouseover', mouseOver)\n .on('mouseout', mouseOut)\n .on('mousemove', mouseMove)\n .on('click', click);\n\n circle\n .enter()\n .append('circle')\n .attr('class', 'dot')\n .attr('r', calculateR)\n .attr('cx', calculateCX)\n .attr('cy', calculateCY)\n .style('fill', getFill)\n .style('stroke', getStroke)\n .on('mouseover', mouseOver)\n .on('mouseout', mouseOut)\n .on('mousemove', mouseMove)\n .on('click', click);\n }\n\n circle\n .exit()\n .remove();\n }\n\n createSvgNode({ m, w, h }) {\n const node = createElement('svg');\n node.setAttribute('width', w + m.left + m.right);\n node.setAttribute('height', h + m.top + m.bottom);\n return node;\n }\n\n createSvgRoot({ node, m }) {\n return select(node)\n .append('g')\n .attr('transform', `translate(${m.left}, ${m.top})`);\n }\n\n createXAxis({ m, innerW, innerH, root }) {\n const {\n yAxisOrientRight,\n axisLabels: { x: label }\n } = this.props;\n\n const uid = this.uid;\n\n const group = root\n .append('g')\n .attr('class', 'x axis')\n .attr('id', `scatterplot-x-axis-${uid}`)\n .attr('transform', `translate(0, ${innerH})`);\n\n if (label) {\n group\n .append('text')\n .attr('class', 'label')\n .attr('x',\n (yAxisOrientRight)\n ? 0\n : innerW)\n .attr('y', m.bottom + axisMargin)\n .style('text-anchor',\n (yAxisOrientRight)\n ? 'start'\n : 'end')\n .text(label);\n }\n }\n\n createYAxis({ m, innerW, root }) {\n const {\n yAxisOrientRight,\n axisLabels: { y: label }\n } = this.props;\n\n const uid = this.uid;\n\n const group = root\n .append('g')\n .attr('class', 'y axis')\n .attr('id', `scatterplot-y-axis-${uid}`)\n .attr('transform',\n (yAxisOrientRight)\n ? `translate(${innerW}, 0)`\n : 'translate(0, 0)');\n\n if (label) {\n group\n .append('text')\n .attr('class', 'label')\n .attr('transform', 'rotate(-90)')\n .attr('y',\n (yAxisOrientRight)\n ? -25 + m.right\n : 10 - m.left\n )\n .attr('dy', '.71em')\n .style('text-anchor', 'end')\n .text(label);\n }\n }\n\n createScatterplotChart({ root }) {\n const uid = this.uid;\n\n root\n .append('g')\n .attr('id', `scatterplot-chart-${uid}`);\n }\n\n createStyle() {\n const {\n style,\n grid,\n verticalGrid,\n yAxisOrientRight\n } = this.props;\n\n const uid = this.uid;\n const scope = `.scatterplot-chart-${uid}`;\n const axisStyles = getAxisStyles(grid, verticalGrid, yAxisOrientRight);\n const rules = merge({}, defaultStyles, style, axisStyles);\n\n return (\n \n );\n }\n\n parseDate(v) {\n const {\n datePattern\n } = this.props;\n\n const datePatternParser = (\n dateParser[datePattern] || (\n dateParser[datePattern] = parse(datePattern)));\n\n return datePatternParser(v);\n }\n\n calculateChartParameters() {\n const {\n axes,\n data,\n margin,\n width,\n height,\n dotRadius,\n xType,\n yType,\n xDomainRange,\n yDomainRange,\n yAxisOrientRight\n } = this.props;\n\n /*\n * We could \"bind\"!\n */\n const parseDate = (v) => this.parseDate(v);\n\n const m = margin || this.calculateMargin(axes, dotRadius * 2, yAxisOrientRight);\n const w = width;\n const h = height + (dotRadius * 3);\n\n const innerW = this.calculateInnerW(width, m);\n const innerH = this.calculateInnerH(height, m);\n\n const defaultXDomainRange = calculateDomainRange(xDomainRange, xType, parseDate);\n const defaultYDomainRange = calculateDomainRange(yDomainRange, yType, parseDate);\n\n const x = this.createDomainRangeGenerator(\n 'x', defaultXDomainRange, data, xType, innerW, yAxisOrientRight);\n const y = this.createDomainRangeGenerator(\n 'y', defaultYDomainRange, data, yType, innerH, yAxisOrientRight);\n\n const xAxis = this.calculateXAxis({ m, h, x, innerW });\n const yAxis = this.calculateYAxis({ m, y, innerW });\n\n const node = this.createSvgNode({ m, w, h });\n const root = this.createSvgRoot({ node, m });\n\n return {\n m,\n w,\n h,\n innerW,\n innerH,\n x,\n y,\n xAxis,\n yAxis,\n node,\n root\n };\n }\n\n render() {\n const {\n axes\n } = this.props;\n\n const p = this.calculateChartParameters();\n\n if (axes) {\n this.createXAxis(p);\n\n this.createYAxis(p);\n }\n\n this.createScatterplotChart(p);\n\n const uid = this.uid;\n const className = `scatterplot-chart-${uid}`;\n const {\n node\n } = p;\n\n return (\n \n {this.createStyle()}\n {node.toReact()}\n
\n );\n }\n}\n"]}
\ No newline at end of file
diff --git a/npmdist/scatterplot-chart/index.js b/npmdist/scatterplot-chart/index.js
deleted file mode 100644
index 7865cd0..0000000
--- a/npmdist/scatterplot-chart/index.js
+++ /dev/null
@@ -1,422 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-
-var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
-
-var _react = require('react');
-
-var _react2 = _interopRequireDefault(_react);
-
-var _d3Scale = require('d3-scale');
-
-var _d = require('d3');
-
-var _d3TimeFormat = require('d3-time-format');
-
-var _d3Array = require('d3-array');
-
-var _reactFauxDom = require('react-faux-dom');
-
-var _radium = require('radium');
-
-var _lodash = require('lodash.merge');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-var _shared = require('../shared');
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
-function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
-var parseDate = null;
-var axisMargin = 18;
-
-var ScatterplotChart = (function (_React$Component) {
- _inherits(ScatterplotChart, _React$Component);
-
- _createClass(ScatterplotChart, null, [{
- key: 'propTypes',
- get: function get() {
- return {
- axes: _react2.default.PropTypes.bool,
- axisLabels: _react2.default.PropTypes.object,
- clickHandler: _react2.default.PropTypes.func,
- config: _react2.default.PropTypes.array,
- data: _react2.default.PropTypes.array.isRequired,
- datePattern: _react2.default.PropTypes.string,
- yAxisOrientRight: _react2.default.PropTypes.bool,
- dotRadius: _react2.default.PropTypes.number,
- verticalGrid: _react2.default.PropTypes.bool,
- grid: _react2.default.PropTypes.bool,
- height: _react2.default.PropTypes.number,
- useLegend: _react2.default.PropTypes.bool,
- margin: _react2.default.PropTypes.object,
- mouseOverHandler: _react2.default.PropTypes.func,
- mouseOutHandler: _react2.default.PropTypes.func,
- mouseMoveHandler: _react2.default.PropTypes.func,
- style: _react2.default.PropTypes.object,
- tickTimeDisplayFormat: _react2.default.PropTypes.string,
- width: _react2.default.PropTypes.number,
- xDomainRange: _react2.default.PropTypes.array,
- yDomainRange: _react2.default.PropTypes.array,
- xTickNumber: _react2.default.PropTypes.number,
- yTickNumber: _react2.default.PropTypes.number,
- yTicks: _react2.default.PropTypes.number,
- xTicks: _react2.default.PropTypes.number,
- xType: _react2.default.PropTypes.string,
- yType: _react2.default.PropTypes.string
- };
- }
- }, {
- key: 'defaultProps',
- get: function get() {
- return {
- axes: false,
- axisLabels: {},
- clickHandler: function clickHandler() {},
- config: [],
- datePattern: '%d-%b-%y',
- dotRadius: 5,
- grid: false,
- mouseOverHandler: function mouseOverHandler() {},
- mouseOutHandler: function mouseOutHandler() {},
- mouseMoveHandler: function mouseMoveHandler() {},
- width: 320,
- height: 180,
- xType: 'linear',
- yType: 'linear'
- };
- }
- }]);
-
- function ScatterplotChart(props) {
- _classCallCheck(this, ScatterplotChart);
-
- var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(ScatterplotChart).call(this, props));
-
- _this.color = _d.scale.category20();
- _this.margin = 0;
- _this.width = 0;
- _this.height = 0;
- _this.innerWidth = 0;
- _this.innerHeight = 0;
- _this.xDomainRange = null;
- _this.yDomainRange = null;
- _this.x = null;
- _this.y = null;
- _this.axisX = null;
- _this.axisY = null;
- _this.xAxis = null;
- _this.yAxis = null;
- _this.chart = null;
- _this.uid = Math.floor(Math.random() * new Date().getTime());
- return _this;
- }
-
- _createClass(ScatterplotChart, [{
- key: 'componentWillMount',
- value: function componentWillMount() {
- parseDate = (0, _d3TimeFormat.format)(this.props.datePattern).parse;
- this.width = this.props.width;
- this.height = this.props.height;
- this.setMargin();
- this.setWidthAndHeight();
- this.setDomainRange();
- this.setXandY();
- this.setXaxis();
- this.setYaxis();
- }
- }, {
- key: 'componentDidMount',
- value: function componentDidMount() {
- this.drawAxisX();
- this.drawAxisY();
- this.drawChart();
- (0, _shared.createCircularTicks)(this.refs[this.uid]);
- }
- }, {
- key: 'componentDidUpdate',
- value: function componentDidUpdate() {
- this.setWidthAndHeight();
- this.setDomainRange();
- this.setXandY();
- this.setXaxis();
- this.setYaxis();
- this.updateAxisX();
- this.updateAxisY();
- this.updateChart();
- (0, _shared.createCircularTicks)(this.refs[this.uid]);
- }
- }, {
- key: 'setMargin',
- value: function setMargin() {
- this.margin = this.props.margin ? this.props.margin : this.calcMargin(this.props.axes, this.props.dotRadius * 2, this.props.yAxisOrientRight);
- }
- }, {
- key: 'setWidthAndHeight',
- value: function setWidthAndHeight() {
- this.width = this.props.width;
- this.height = this.props.height + this.props.dotRadius * 3;
- this.innerWidth = this.props.width - (this.margin.left + this.margin.right);
- this.innerHeight = this.props.height - (this.margin.top + this.margin.bottom + this.props.dotRadius * 2);
- }
- }, {
- key: 'setDomainRange',
- value: function setDomainRange() {
- this.yDomainRange = this.props.yDomainRange ? (0, _shared.calcDefaultDomain)(this.props.yDomainRange, this.props.yType, parseDate) : null;
- this.xDomainRange = this.props.xDomainRange ? (0, _shared.calcDefaultDomain)(this.props.xDomainRange, this.props.xType, parseDate) : null;
- }
- }, {
- key: 'setXandY',
- value: function setXandY() {
- var w = this.props.width - (this.margin.left + this.margin.right);
- var h = this.props.height - (this.margin.top + this.margin.bottom + this.props.dotRadius * 2);
- this.x = this.setDomainAndRange('x', this.xDomainRange, this.props.data, this.props.xType, w, this.props.yAxisOrientRight);
- this.y = this.setDomainAndRange('y', this.yDomainRange, this.props.data, this.props.yType, h, this.props.yAxisOrientRight);
- }
- }, {
- key: 'setXaxis',
- value: function setXaxis() {
- this.xAxis = _d.svg.axis().scale(this.x).orient('bottom');
- if (this.props.xType === 'time' && this.props.tickTimeDisplayFormat) {
- this.xAxis.tickFormat(_d.time.format(this.props.tickTimeDisplayFormat));
- }
- if (this.props.xTickNumber) this.xAxis.ticks(this.props.xTickNumber);
-
- if (this.props.grid && this.props.verticalGrid) {
- this.xAxis.tickSize(-this.height, 6).tickPadding(15);
- } else {
- this.xAxis.tickSize(0).tickPadding(15);
- }
-
- if (this.props.xTicks) this.xAxis.ticks(this.props.xTicks);
- }
- }, {
- key: 'setYaxis',
- value: function setYaxis() {
- this.yAxis = _d.svg.axis().scale(this.y).orient(this.props.yAxisOrientRight ? 'right' : 'left');
- if (this.props.grid) {
- this.yAxis.tickSize(-this.innerWidth, 6).tickPadding(12);
- } else {
- this.yAxis.tickPadding(10);
- }
- if (this.props.yTicks) this.yAxis.ticks(this.props.yTicks);
- }
- }, {
- key: 'getScale',
- value: function getScale(type) {
- switch (type) {
- case 'time':
- return _d.time.scale();
- case 'text':
- return (0, _d3Scale.ordinal)();
- default:
- return (0, _d3Scale.linear)();
- }
- }
- }, {
- key: 'setDomainAndRange',
- value: function setDomainAndRange(axesType, domainRange, data, type, length, yAxisOrientRight) {
- var dataIndex = axesType === 'x' ? 'x' : 'y';
- var d3Axis = undefined;
- switch (type) {
- case 'text':
- d3Axis = (0, _d3Scale.ordinal)();
- d3Axis.domain(data.map(function (d) {
- return d[dataIndex];
- }), 1);
- d3Axis.rangePoints([0, length], 1);
- break;
- case 'linear':
- var minAmount = (0, _d.min)(data, function (d) {
- return d[dataIndex];
- });
- var maxAmount = (0, _d.max)(data, function (d) {
- return d[dataIndex];
- });
- d3Axis = (0, _d3Scale.linear)();
- if (domainRange) {
- d3Axis.domain((0, _shared.calcDefaultDomain)(domainRange, type, parseDate));
- } else {
- // set initial domain
- d3Axis.domain([minAmount, maxAmount]);
- // calculate 1 tick offset
- var ticks = d3Axis.ticks();
- minAmount = yAxisOrientRight && axesType === 'x' ? minAmount : minAmount - (ticks[1] - ticks[0]);
- maxAmount = yAxisOrientRight && axesType === 'x' ? maxAmount + (ticks[1] - ticks[0]) : maxAmount;
- d3Axis.domain([minAmount, maxAmount]);
- }
- d3Axis.range(axesType === 'x' ? [0, length] : [length, 0]);
- break;
- case 'time':
- d3Axis = _d.time.scale();
- if (domainRange) {
- d3Axis.domain((0, _shared.calcDefaultDomain)(domainRange));
- } else {
- d3Axis.domain((0, _d3Array.extent)(data, function (d) {
- return parseDate(d[dataIndex]);
- }));
- }
- d3Axis.range(axesType === 'x' ? [0, length] : [length, 0], 1);
- break;
- default:
- break;
- }
- return d3Axis;
- }
- }, {
- key: 'getDataConfig',
- value: function getDataConfig(type) {
- var index = this.props.config.findIndex(function (item) {
- return item.type === type;
- });
- return this.props.config[index];
- }
- }, {
- key: 'getFill',
- value: function getFill(data) {
- var configItem = this.getDataConfig(data.type);
- return typeof configItem !== 'undefined' ? configItem.color : this.color(data.type);
- }
- }, {
- key: 'getRadius',
- value: function getRadius(data, dataItem, dotRadius) {
- if (typeof data[0].z !== 'undefined') {
- var range = (0, _d3Array.extent)(data, function (d) {
- return d.z;
- });
- var mn = range[0];
- var mx = range[1];
- var p = (dataItem.z - mn) / (mx - mn);
- var minRad = 5;
- var maxRad = 20;
- var rad = minRad + (maxRad - minRad) * p;
- return rad;
- }
- return dotRadius;
- }
- }, {
- key: 'getStroke',
- value: function getStroke(data) {
- var configItem = this.getDataConfig(data.type);
- return typeof configItem !== 'undefined' ? configItem.stroke : 'none';
- }
- }, {
- key: 'drawAxisX',
- value: function drawAxisX() {
- if (this.props.axes) {
- this.axisX = (0, _d.select)('#axis-x-' + this.uid).attr('class', 'x axis').attr('transform', 'translate(0, ' + this.innerHeight + ')').call(this.xAxis).append('text').attr('id', 'label-x').attr('class', 'label').attr('x', this.props.yAxisOrientRight ? 0 : this.innerWidth).attr('y', this.margin.bottom + axisMargin).style('text-anchor', this.props.yAxisOrientRight ? 'start' : 'end').text(this.props.axisLabels.x);
- }
- }
- }, {
- key: 'drawAxisY',
- value: function drawAxisY() {
- if (this.props.axes) {
- this.axisY = (0, _d.select)('#axis-y-' + this.uid).attr('class', 'y axis').call(this.yAxis).attr('transform', this.props.yAxisOrientRight ? 'translate(' + this.innerWidth + ', 0)' : 'translate(0, 0)').append('text').attr('class', 'label').attr('transform', 'rotate(-90)').attr('y', this.props.yAxisOrientRight ? -25 + this.margin.right : 10 - this.margin.left).attr('dy', '.71em').style('text-anchor', 'end').text(this.props.axisLabels.y);
- }
- }
- }, {
- key: 'drawChart',
- value: function drawChart() {
- var _this2 = this;
-
- this.chart = (0, _d.select)('#dots-' + this.uid).selectAll('.dot').data(this.props.data).enter().append('circle').attr('class', 'dot').attr('r', function (d) {
- return _this2.getRadius(_this2.props.data, d, _this2.props.dotRadius);
- }).attr('cx', function (d) {
- switch (_this2.props.xType) {
- case 'time':
- return _this2.x(parseDate(d.x));
- default:
- return _this2.x(d.x);
- }
- }).attr('cy', function (d) {
- return _this2.y(d.y);
- }).style('fill', function (d) {
- return _this2.getFill(d);
- }).style('stroke', function (d) {
- return _this2.getStroke(d);
- }).on('mouseover', function (d) {
- return _this2.props.mouseOverHandler(d, _d.event);
- }).on('mouseout', function (d) {
- return _this2.props.mouseOutHandler(d, _d.event);
- }).on('mousemove', function () {
- return _this2.props.mouseMoveHandler(_d.event);
- }).on('click', function (d) {
- return _this2.props.clickHandler(d, _d.event);
- });
- }
- }, {
- key: 'updateAxisX',
- value: function updateAxisX() {
- if (this.props.axes) {
- this.axisX = (0, _d.select)('#axis-x-' + this.uid).attr('transform', 'translate(0, ' + this.innerHeight + ')').transition().duration(750).call(this.xAxis).select('#label-x').attr('x', this.props.yAxisOrientRight ? 0 : this.innerWidth);
- }
- }
- }, {
- key: 'updateAxisY',
- value: function updateAxisY() {
- if (this.props.axes) {
- this.axisY = (0, _d.select)('#axis-y-' + this.uid).transition().duration(750).call(this.yAxis);
- }
- }
- }, {
- key: 'updateChart',
- value: function updateChart() {
- var _this3 = this;
-
- this.chart.data(this.props.data).transition().duration(750).attr('cx', function (d) {
- switch (_this3.props.xType) {
- case 'time':
- return _this3.x(parseDate(d.x));
- default:
- return _this3.x(d.x);
- }
- }).attr('cy', function (d) {
- return _this3.y(d.y);
- });
- }
- }, {
- key: 'calcMargin',
- value: function calcMargin(axes, spacer, yAxisOrientRight) {
- var defaultMargins = axes ? { top: 24, right: 24, bottom: 24, left: 48 } : { top: spacer, right: spacer, bottom: spacer, left: spacer };
- if (yAxisOrientRight) {
- defaultMargins = axes ? { top: 24, right: 48, bottom: 24, left: 24 } : { top: spacer, right: spacer, bottom: spacer, left: spacer };
- }
- return defaultMargins;
- }
- }, {
- key: 'render',
- value: function render() {
- this.setWidthAndHeight();
- var node = (0, _reactFauxDom.createElement)('svg');
- var chart = (0, _d.select)(node).attr('width', this.width).attr('height', this.height).append('g').attr('id', 'area-' + this.uid).attr('transform', 'translate(' + this.margin.left + ', ' + this.margin.top + ')');
-
- chart.append('g').attr('id', 'axis-x-' + this.uid);
- chart.append('g').attr('id', 'axis-y-' + this.uid);
- chart.append('g').attr('id', 'dots-' + this.uid);
-
- var uid = Math.floor(Math.random() * new Date().getTime());
-
- return _react2.default.createElement(
- 'div',
- { ref: this.uid, className: 'scatterplot_chart' + uid },
- _react2.default.createElement(_radium.Style, { scopeSelector: '.scatterplot_chart' + uid, rules: (0, _lodash2.default)({}, _shared.defaultStyle, this.props.style, (0, _shared.getAxisStyles)(this.props.grid, this.props.verticalGrid, this.props.yAxisOrientRight)) }),
- node.toReact()
- );
- }
- }]);
-
- return ScatterplotChart;
-})(_react2.default.Component);
-
-exports.default = ScatterplotChart;
-module.exports = exports['default'];
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/npmdist/scatterplot-chart/index.js.map b/npmdist/scatterplot-chart/index.js.map
deleted file mode 100644
index 1547ad8..0000000
--- a/npmdist/scatterplot-chart/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../modules/scatterplot-chart/index.js"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import React from 'react';\nimport {linear, ordinal} from 'd3-scale';\nimport {event as d3LastEvent, min, max, scale, select, svg, time} from 'd3';\nimport {format} from 'd3-time-format';\nimport {extent} from 'd3-array';\nimport { createElement } from 'react-faux-dom';\nimport {Style} from 'radium';\nimport merge from 'lodash.merge';\nimport {calcDefaultDomain, defaultStyle, getAxisStyles, createCircularTicks} from '../shared';\n\nlet parseDate = null;\nconst axisMargin = 18;\n\nexport default class ScatterplotChart extends React.Component {\n static get propTypes() {\n return {\n axes: React.PropTypes.bool,\n axisLabels: React.PropTypes.object,\n clickHandler: React.PropTypes.func,\n config: React.PropTypes.array,\n data: React.PropTypes.array.isRequired,\n datePattern: React.PropTypes.string,\n yAxisOrientRight: React.PropTypes.bool,\n dotRadius: React.PropTypes.number,\n verticalGrid: React.PropTypes.bool,\n grid: React.PropTypes.bool,\n height: React.PropTypes.number,\n useLegend: React.PropTypes.bool,\n margin: React.PropTypes.object,\n mouseOverHandler: React.PropTypes.func,\n mouseOutHandler: React.PropTypes.func,\n mouseMoveHandler: React.PropTypes.func,\n style: React.PropTypes.object,\n tickTimeDisplayFormat: React.PropTypes.string,\n width: React.PropTypes.number,\n xDomainRange: React.PropTypes.array,\n yDomainRange: React.PropTypes.array,\n xTickNumber: React.PropTypes.number,\n yTickNumber: React.PropTypes.number,\n yTicks: React.PropTypes.number,\n xTicks: React.PropTypes.number,\n xType: React.PropTypes.string,\n yType: React.PropTypes.string\n };\n }\n\n static get defaultProps() {\n return {\n axes: false,\n axisLabels: {},\n clickHandler: () => {},\n config: [],\n datePattern: '%d-%b-%y',\n dotRadius: 5,\n grid: false,\n mouseOverHandler: () => {},\n mouseOutHandler: () => {},\n mouseMoveHandler: () => {},\n width: 320,\n height: 180,\n xType: 'linear',\n yType: 'linear'\n };\n }\n\n constructor(props) {\n super(props);\n this.color = scale.category20();\n this.margin = 0;\n this.width = 0;\n this.height = 0;\n this.innerWidth = 0;\n this.innerHeight = 0;\n this.xDomainRange = null;\n this.yDomainRange = null;\n this.x = null;\n this.y = null;\n this.axisX = null;\n this.axisY = null;\n this.xAxis = null;\n this.yAxis = null;\n this.chart = null;\n this.uid = Math.floor(Math.random() * new Date().getTime());\n }\n\n componentWillMount() {\n parseDate = format(this.props.datePattern).parse;\n this.width = this.props.width;\n this.height = this.props.height;\n this.setMargin();\n this.setWidthAndHeight();\n this.setDomainRange();\n this.setXandY();\n this.setXaxis();\n this.setYaxis();\n }\n\n componentDidMount() {\n this.drawAxisX();\n this.drawAxisY();\n this.drawChart();\n createCircularTicks(this.refs[this.uid]);\n }\n\n componentDidUpdate() {\n this.setWidthAndHeight();\n this.setDomainRange();\n this.setXandY();\n this.setXaxis();\n this.setYaxis();\n this.updateAxisX();\n this.updateAxisY();\n this.updateChart();\n createCircularTicks(this.refs[this.uid]);\n }\n\n setMargin() {\n this.margin = this.props.margin ? this.props.margin :\n this.calcMargin(\n this.props.axes,\n this.props.dotRadius * 2, this.props.yAxisOrientRight\n );\n }\n\n setWidthAndHeight() {\n this.width = this.props.width;\n this.height = this.props.height + (this.props.dotRadius * 3);\n this.innerWidth = this.props.width - (this.margin.left + this.margin.right);\n this.innerHeight =\n this.props.height - (this.margin.top +\n this.margin.bottom + (this.props.dotRadius * 2));\n }\n\n setDomainRange() {\n this.yDomainRange = this.props.yDomainRange ?\n calcDefaultDomain(this.props.yDomainRange, this.props.yType, parseDate) :\n null;\n this.xDomainRange = this.props.xDomainRange ?\n calcDefaultDomain(this.props.xDomainRange, this.props.xType, parseDate) :\n null;\n }\n\n setXandY() {\n const w = this.props.width - (this.margin.left + this.margin.right);\n const h = this.props.height - (this.margin.top + this.margin.bottom + (this.props.dotRadius * 2));\n this.x = this.setDomainAndRange(\n 'x',\n this.xDomainRange,\n this.props.data,\n this.props.xType,\n w,\n this.props.yAxisOrientRight\n );\n this.y = this.setDomainAndRange(\n 'y',\n this.yDomainRange,\n this.props.data,\n this.props.yType,\n h,\n this.props.yAxisOrientRight);\n }\n\n setXaxis() {\n this.xAxis = svg.axis()\n .scale(this.x)\n .orient('bottom');\n if (this.props.xType === 'time' && this.props.tickTimeDisplayFormat) {\n this.xAxis.tickFormat(time.format(this.props.tickTimeDisplayFormat));\n }\n if (this.props.xTickNumber) this.xAxis.ticks(this.props.xTickNumber);\n\n if (this.props.grid && this.props.verticalGrid) { this.xAxis.tickSize(-this.height, 6).tickPadding(15); } else { this.xAxis.tickSize(0).tickPadding(15);}\n\n if (this.props.xTicks) this.xAxis.ticks(this.props.xTicks);\n }\n\n setYaxis() {\n this.yAxis = svg.axis()\n .scale(this.y)\n .orient(this.props.yAxisOrientRight ? 'right' : 'left');\n if (this.props.grid) { this.yAxis.tickSize(-this.innerWidth, 6).tickPadding(12); } else { this.yAxis.tickPadding(10); }\n if (this.props.yTicks) this.yAxis.ticks(this.props.yTicks);\n }\n\n getScale(type) {\n switch (type) {\n case 'time':\n return time.scale();\n case 'text':\n return ordinal();\n default:\n return linear();\n }\n }\n\n setDomainAndRange(axesType, domainRange, data, type, length, yAxisOrientRight) {\n const dataIndex = axesType === 'x' ? 'x' : 'y';\n let d3Axis;\n switch (type) {\n case 'text':\n d3Axis = ordinal();\n d3Axis.domain(data.map((d) => d[dataIndex]), 1);\n d3Axis.rangePoints([0, length], 1);\n break;\n case 'linear':\n let minAmount = min(data, (d) => d[dataIndex]);\n let maxAmount = max(data, (d) => d[dataIndex]);\n d3Axis = linear();\n if (domainRange) {\n d3Axis.domain(calcDefaultDomain(domainRange, type, parseDate));\n } else {\n // set initial domain\n d3Axis.domain([minAmount, maxAmount]);\n // calculate 1 tick offset\n const ticks = d3Axis.ticks();\n minAmount = yAxisOrientRight && axesType === 'x' ? minAmount : minAmount - (ticks[1] - ticks[0]);\n maxAmount = yAxisOrientRight && axesType === 'x' ? maxAmount + (ticks[1] - ticks[0]) : maxAmount;\n d3Axis.domain([minAmount, maxAmount]);\n }\n d3Axis.range(axesType === 'x' ? [0, length] : [length, 0]);\n break;\n case 'time':\n d3Axis = time.scale();\n if (domainRange) {\n d3Axis.domain(calcDefaultDomain(domainRange));\n } else {\n d3Axis.domain(extent(data, (d) => parseDate(d[dataIndex])));\n }\n d3Axis.range(axesType === 'x' ? [0, length] : [length, 0], 1);\n break;\n default:\n break;\n }\n return d3Axis;\n }\n\n getDataConfig(type) {\n const index = this.props.config.findIndex((item) => item.type === type);\n return this.props.config[index];\n }\n\n getFill(data) {\n const configItem = this.getDataConfig(data.type);\n return typeof configItem !== 'undefined' ? configItem.color : this.color(data.type);\n }\n\n getRadius(data, dataItem, dotRadius) {\n if (typeof data[0].z !== 'undefined') {\n const range = extent(data, (d) => d.z);\n const mn = range[0];\n const mx = range[1];\n const p = ((dataItem.z - mn) / (mx - mn));\n const minRad = 5;\n const maxRad = 20;\n const rad = minRad + ((maxRad - minRad) * p);\n return rad;\n }\n return dotRadius;\n }\n\n getStroke(data) {\n const configItem = this.getDataConfig(data.type);\n return typeof configItem !== 'undefined' ? configItem.stroke : 'none';\n }\n\n drawAxisX() {\n if (this.props.axes) {\n this.axisX = select(`#axis-x-${this.uid}`)\n .attr('class', 'x axis')\n .attr('transform', `translate(0, ${this.innerHeight})`)\n .call(this.xAxis)\n .append('text')\n .attr('id', 'label-x')\n .attr('class', 'label')\n .attr('x', this.props.yAxisOrientRight ? 0 : this.innerWidth)\n .attr('y', this.margin.bottom + axisMargin)\n .style('text-anchor', this.props.yAxisOrientRight ? 'start' : 'end')\n .text(this.props.axisLabels.x);\n }\n }\n\n drawAxisY() {\n if (this.props.axes) {\n this.axisY = select(`#axis-y-${this.uid}`)\n .attr('class', 'y axis')\n .call(this.yAxis)\n .attr(\n 'transform', this.props.yAxisOrientRight ?\n `translate(${this.innerWidth}, 0)` : `translate(0, 0)`\n )\n .append('text')\n .attr('class', 'label')\n .attr('transform', 'rotate(-90)')\n .attr('y', this.props.yAxisOrientRight ?\n -25 + this.margin.right : 10 - this.margin.left\n )\n .attr('dy', '.71em')\n .style('text-anchor', 'end')\n .text(this.props.axisLabels.y);\n }\n }\n\n drawChart() {\n this.chart = select(`#dots-${this.uid}`)\n .selectAll('.dot')\n .data(this.props.data)\n .enter()\n .append('circle')\n .attr('class', 'dot')\n .attr('r', (d) => this.getRadius(this.props.data, d, this.props.dotRadius))\n .attr('cx', (d) => {\n switch (this.props.xType) {\n case ('time'):\n return this.x(parseDate(d.x));\n default:\n return this.x(d.x);\n }\n })\n .attr('cy', (d) => { return this.y(d.y); })\n .style('fill', (d) => this.getFill(d))\n .style('stroke', (d) => this.getStroke(d))\n .on('mouseover', (d) => this.props.mouseOverHandler(d, d3LastEvent))\n .on('mouseout', (d) => this.props.mouseOutHandler(d, d3LastEvent))\n .on('mousemove', () => this.props.mouseMoveHandler(d3LastEvent))\n .on('click', (d) => this.props.clickHandler(d, d3LastEvent));\n }\n\n updateAxisX() {\n if (this.props.axes) {\n this.axisX = select(`#axis-x-${this.uid}`)\n .attr('transform', `translate(0, ${this.innerHeight})`)\n .transition()\n .duration(750)\n .call(this.xAxis)\n .select('#label-x')\n .attr('x', this.props.yAxisOrientRight ? 0 : this.innerWidth);\n }\n }\n\n updateAxisY() {\n if (this.props.axes) {\n this.axisY = select(`#axis-y-${this.uid}`)\n .transition()\n .duration(750)\n .call(this.yAxis);\n }\n }\n\n updateChart() {\n this.chart\n .data(this.props.data)\n .transition()\n .duration(750)\n .attr('cx', (d) => {\n switch (this.props.xType) {\n case ('time'):\n return this.x(parseDate(d.x));\n default:\n return this.x(d.x);\n }\n })\n .attr('cy', (d) => { return this.y(d.y); });\n }\n\n calcMargin(axes, spacer, yAxisOrientRight) {\n let defaultMargins = axes ?\n {top: 24, right: 24, bottom: 24, left: 48} :\n {top: spacer, right: spacer, bottom: spacer, left: spacer};\n if (yAxisOrientRight) {\n defaultMargins = axes ? {top: 24, right: 48, bottom: 24, left: 24} : {top: spacer, right: spacer, bottom: spacer, left: spacer};\n }\n return defaultMargins;\n }\n\n render() {\n this.setWidthAndHeight();\n const node = createElement('svg');\n const chart = select(node)\n .attr('width', this.width)\n .attr('height', this.height)\n .append('g')\n .attr('id', `area-${this.uid}`)\n .attr('transform', `translate(${this.margin.left}, ${this.margin.top})`);\n\n chart.append('g')\n .attr('id', `axis-x-${this.uid}`);\n chart.append('g')\n .attr('id', `axis-y-${this.uid}`);\n chart.append('g')\n .attr('id', `dots-${this.uid}`);\n\n const uid = Math.floor(Math.random() * new Date().getTime());\n\n return (\n \n \n {node.toReact()}\n
\n );\n }\n}\n"]}
\ No newline at end of file
diff --git a/npmdist/scatterplot-chart/static/index.js b/npmdist/scatterplot-chart/static/index.js
deleted file mode 100644
index 203a231..0000000
--- a/npmdist/scatterplot-chart/static/index.js
+++ /dev/null
@@ -1,576 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-
-var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
-
-var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
-
-var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
-
-var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
-
-var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
-
-var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
-
-var _createClass2 = require('babel-runtime/helpers/createClass');
-
-var _createClass3 = _interopRequireDefault(_createClass2);
-
-var _inherits2 = require('babel-runtime/helpers/inherits');
-
-var _inherits3 = _interopRequireDefault(_inherits2);
-
-var _react = require('react');
-
-var _react2 = _interopRequireDefault(_react);
-
-var _d3Scale = require('d3-scale');
-
-var _d = require('d3');
-
-var _d3TimeFormat = require('d3-time-format');
-
-var _d3Array = require('d3-array');
-
-var _reactFauxDom = require('react-faux-dom');
-
-var _radium = require('radium');
-
-var _lodash = require('lodash.merge');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-var _shared = require('../../shared');
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var dateParser = {};
-
-var color = _d.scale.category20();
-
-var axisMargin = 18;
-
-var ScatterplotChart = function (_React$Component) {
- (0, _inherits3.default)(ScatterplotChart, _React$Component);
- (0, _createClass3.default)(ScatterplotChart, null, [{
- key: 'propTypes',
- get: function get() {
- return {
- axes: _react2.default.PropTypes.bool,
- axisLabels: _react2.default.PropTypes.shape({
- x: _react2.default.PropTypes.string,
- y: _react2.default.PropTypes.string
- }),
- clickHandler: _react2.default.PropTypes.func,
- config: _react2.default.PropTypes.array,
- data: _react2.default.PropTypes.array.isRequired,
- datePattern: _react2.default.PropTypes.string,
- yAxisOrientRight: _react2.default.PropTypes.bool,
- dotRadius: _react2.default.PropTypes.number,
- verticalGrid: _react2.default.PropTypes.bool,
- grid: _react2.default.PropTypes.bool,
- height: _react2.default.PropTypes.number,
- useLegend: _react2.default.PropTypes.bool,
- margin: _react2.default.PropTypes.object,
- mouseOverHandler: _react2.default.PropTypes.func,
- mouseOutHandler: _react2.default.PropTypes.func,
- mouseMoveHandler: _react2.default.PropTypes.func,
- style: _react2.default.PropTypes.object,
- tickTimeDisplayFormat: _react2.default.PropTypes.string,
- width: _react2.default.PropTypes.number,
- xDomainRange: _react2.default.PropTypes.array,
- yDomainRange: _react2.default.PropTypes.array,
- xTickNumber: _react2.default.PropTypes.number,
- yTickNumber: _react2.default.PropTypes.number,
- xTicks: _react2.default.PropTypes.number,
- yTicks: _react2.default.PropTypes.number,
- xType: _react2.default.PropTypes.string,
- yType: _react2.default.PropTypes.string
- };
- }
- }, {
- key: 'defaultProps',
- get: function get() {
- return {
- axes: false,
- axisLabels: {
- x: '',
- y: ''
- },
- clickHandler: function clickHandler() {},
- config: [],
- datePattern: '%d-%b-%y',
- dotRadius: 5,
- grid: false,
- mouseOverHandler: function mouseOverHandler() {},
- mouseOutHandler: function mouseOutHandler() {},
- mouseMoveHandler: function mouseMoveHandler() {},
- width: 320,
- height: 180,
- xType: 'linear',
- yType: 'linear'
- };
- }
- }]);
-
- function ScatterplotChart(props) {
- (0, _classCallCheck3.default)(this, ScatterplotChart);
-
- var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(ScatterplotChart).call(this, props));
-
- _this.uid = (0, _shared.createUniqueID)(props);
- return _this;
- }
-
- (0, _createClass3.default)(ScatterplotChart, [{
- key: 'componentDidMount',
- value: function componentDidMount() {
- var ref = this.refs.scatterplotChart;
- (0, _shared.createCircularTicks)(ref);
- }
- }, {
- key: 'componentDidUpdate',
- value: function componentDidUpdate() {
- var ref = this.refs.scatterplotChart;
- (0, _shared.createCircularTicks)(ref);
- }
- }, {
- key: 'getScale',
- value: function getScale(type) {
- switch (type) {
- case 'time':
- return _d.time.scale();
- case 'text':
- return (0, _d3Scale.scalePoint)();
- default:
- return (0, _d3Scale.scaleLinear)();
- }
- }
- }, {
- key: 'getDataConfig',
- value: function getDataConfig(type) {
- var config = this.props.config;
-
-
- var index = config.findIndex(function (item) {
- return item.type === type;
- });
- return config[index];
- }
- }, {
- key: 'getFill',
- value: function getFill(data) {
- var configItem = this.getDataConfig(data.type);
- return configItem ? configItem.color : color(data.type);
- }
- }, {
- key: 'getRadius',
- value: function getRadius(data, dataItem, dotRadius) {
- if (typeof data[0].z !== 'undefined') {
- var range = (0, _d3Array.extent)(data, function (d) {
- return d.z;
- });
- var mn = range[0];
- var mx = range[1];
- var p = (dataItem.z - mn) / (mx - mn);
- var minRad = 5;
- var maxRad = 20;
- var rad = minRad + (maxRad - minRad) * p;
- return rad;
- }
- return dotRadius;
- }
- }, {
- key: 'getStroke',
- value: function getStroke(data) {
- var configItem = this.getDataConfig(data.type);
- return configItem ? configItem.stroke : 'none'; // typeof configItem !== 'undefined' ? configItem.stroke : 'none';
- }
- }, {
- key: 'createDomainRangeGenerator',
- value: function createDomainRangeGenerator(axisType, domainRange, data, type, length, yAxisOrientRight) {
- var _this2 = this;
-
- var dataIndex = axisType === 'x' ? 'x' : 'y';
-
- var axis = void 0;
- var minAmount = void 0;
- var maxAmount = void 0;
-
- var parseDate = function parseDate(v) {
- return _this2.parseDate(v);
- };
-
- switch (type) {
- case 'text':
- axis = (0, _d3Scale.scalePoint)();
- axis.domain(data.map(function (d) {
- return d[dataIndex];
- })) // , 1)
- .range([0, length]).padding(1);
- break;
- case 'linear':
- axis = (0, _d3Scale.scaleLinear)();
- minAmount = (0, _d.min)(data, function (d) {
- return d[dataIndex];
- });
- maxAmount = (0, _d.max)(data, function (d) {
- return d[dataIndex];
- });
- if (domainRange) {
- axis.domain(domainRange); // calculateDomainRange(domainRange, type, parseDate));
- } else {
- // set initial domain
- axis.domain([minAmount, maxAmount]);
- // calculate 1 tick offset
- var ticks = axis.ticks();
-
- minAmount = yAxisOrientRight && axisType === 'x' ? minAmount : minAmount - (ticks[1] - ticks[0]);
-
- maxAmount = yAxisOrientRight && axisType === 'x' ? maxAmount + (ticks[1] - ticks[0]) : maxAmount;
-
- axis.domain([minAmount, maxAmount]);
- }
- axis.range(axisType === 'x' ? [0, length] : [length, 0]);
- break;
- case 'time':
- axis = _d.time.scale();
- axis.domain(domainRange ? (0, _shared.calculateDomainRange)(domainRange) : (0, _d3Array.extent)(data, function (d) {
- return parseDate(d[dataIndex]);
- })).range(axisType === 'x' ? [0, length] : [length, 0]);
- break;
- default:
- break;
- }
- return axis;
- }
- }, {
- key: 'calculateMargin',
- value: function calculateMargin(axes, spacer, yAxisOrientRight) {
- if (yAxisOrientRight) {
- return axes ? { top: 24, right: 48, bottom: 24, left: 24 } : { top: spacer, right: spacer, bottom: spacer, left: spacer };
- }
- return axes ? { top: 24, right: 24, bottom: 24, left: 48 } : { top: spacer, right: spacer, bottom: spacer, left: spacer };
- }
- }, {
- key: 'calculateInnerW',
- value: function calculateInnerW(w, m) {
- return w - (m.left + m.right);
- }
- }, {
- key: 'calculateInnerH',
- value: function calculateInnerH(h, m) {
- var dotRadius = this.props.dotRadius;
-
-
- return h - (m.top + m.bottom + dotRadius * 2);
- }
- }, {
- key: 'calculateXAxis',
- value: function calculateXAxis(_ref) {
- var h = _ref.h;
- var x = _ref.x;
- var _props = this.props;
- var xType = _props.xType;
- var tickTimeDisplayFormat = _props.tickTimeDisplayFormat;
- var xTickNumber = _props.xTickNumber;
- var grid = _props.grid;
- var verticalGrid = _props.verticalGrid;
- var xTicks = _props.xTicks;
-
-
- var axis = _d.svg.axis().scale(x).orient('bottom');
-
- if (xType === 'time' && tickTimeDisplayFormat) {
- axis.tickFormat(_d.time.format(tickTimeDisplayFormat));
- }
-
- if (xTickNumber) {
- axis.ticks(xTickNumber);
- }
-
- if (grid && verticalGrid) {
- axis.tickSize(-h, 6).tickPadding(15);
- } else {
- axis.tickSize(0).tickPadding(15);
- }
-
- if (xTicks) {
- axis.ticks(xTicks);
- }
-
- return axis;
- }
- }, {
- key: 'calculateYAxis',
- value: function calculateYAxis(_ref2) {
- var y = _ref2.y;
- var innerW = _ref2.innerW;
- var _props2 = this.props;
- var grid = _props2.grid;
- var yTicks = _props2.yTicks;
- var yAxisOrientRight = _props2.yAxisOrientRight;
-
-
- var axis = _d.svg.axis().scale(y).orient(yAxisOrientRight ? 'right' : 'left');
-
- if (grid) {
- axis.tickSize(-innerW, 6).tickPadding(12);
- } else {
- axis.tickPadding(10);
- }
-
- if (yTicks) {
- axis.ticks(yTicks);
- }
-
- return axis;
- }
- }, {
- key: 'createSvgNode',
- value: function createSvgNode(_ref3) {
- var m = _ref3.m;
- var w = _ref3.w;
- var h = _ref3.h;
-
- var node = (0, _reactFauxDom.createElement)('svg');
- node.setAttribute('width', w + m.left + m.right);
- node.setAttribute('height', h + m.top + m.bottom);
- return node;
- }
- }, {
- key: 'createSvgRoot',
- value: function createSvgRoot(_ref4) {
- var node = _ref4.node;
- var m = _ref4.m;
-
- return (0, _d.select)(node).append('g').attr('transform', 'translate(' + m.left + ', ' + m.top + ')');
- }
- }, {
- key: 'createXAxis',
- value: function createXAxis(_ref5) {
- var m = _ref5.m;
- var innerW = _ref5.innerW;
- var innerH = _ref5.innerH;
- var xAxis = _ref5.xAxis;
- var root = _ref5.root;
- var _props3 = this.props;
- var yAxisOrientRight = _props3.yAxisOrientRight;
- var label = _props3.axisLabels.x;
-
-
- var group = root.append('g').attr('class', 'x axis').attr('transform', 'translate(0, ' + innerH + ')');
-
- group.call(xAxis);
-
- if (label) {
- group.append('text').attr('class', 'label').attr('x', yAxisOrientRight ? 0 : innerW).attr('y', m.bottom + axisMargin).style('text-anchor', yAxisOrientRight ? 'start' : 'end').text(label);
- }
- }
- }, {
- key: 'createYAxis',
- value: function createYAxis(_ref6) {
- var m = _ref6.m;
- var innerW = _ref6.innerW;
- var yAxis = _ref6.yAxis;
- var root = _ref6.root;
- var _props4 = this.props;
- var yAxisOrientRight = _props4.yAxisOrientRight;
- var label = _props4.axisLabels.y;
-
-
- var group = root.append('g').attr('class', 'y axis').attr('transform', yAxisOrientRight ? 'translate(' + innerW + ', 0)' : 'translate(0, 0)');
-
- group.call(yAxis);
-
- if (label) {
- group.append('text').attr('class', 'label').attr('transform', 'rotate(-90)').attr('y', yAxisOrientRight ? -25 + m.right : 10 - m.left).attr('dy', '.71em').style('text-anchor', 'end').text(label);
- }
- }
- }, {
- key: 'createScatterplotChart',
- value: function createScatterplotChart(_ref7) {
- var _this3 = this;
-
- var x = _ref7.x;
- var y = _ref7.y;
- var root = _ref7.root;
- var _props5 = this.props;
- var data = _props5.data;
- var dotRadius = _props5.dotRadius;
- var xType = _props5.xType;
- var mouseOverHandler = _props5.mouseOverHandler;
- var mouseOutHandler = _props5.mouseOutHandler;
- var mouseMoveHandler = _props5.mouseMoveHandler;
- var clickHandler = _props5.clickHandler;
-
-
- var calculateDate = function calculateDate(v) {
- return _this3.parseDate(v);
- };
-
- var calculateR = function calculateR(d) {
- return _this3.getRadius(data, d, dotRadius);
- };
- var calculateCX = function calculateCX(d) {
- return xType === 'time' ? x(calculateDate(d.x)) : x(d.x);
- };
- var calculateCY = function calculateCY(d) {
- return y(d.y);
- };
-
- var getFill = function getFill(d) {
- return _this3.getFill(d);
- };
- var getStroke = function getStroke(d) {
- return _this3.getStroke(d);
- };
-
- var mouseOver = function mouseOver(d) {
- return mouseOverHandler(d, _d.event);
- };
- var mouseOut = function mouseOut(d) {
- return mouseOutHandler(d, _d.event);
- };
- var mouseMove = function mouseMove(d) {
- return mouseMoveHandler(d, _d.event);
- };
- var click = function click(d) {
- return clickHandler(d, _d.event);
- };
-
- var circle = root.append('g').selectAll('circle') // '.dot'
- .data(data);
-
- circle.enter().append('circle').attr('class', 'dot').attr('r', calculateR).attr('cx', calculateCX).attr('cy', calculateCY).style('fill', getFill).style('stroke', getStroke).on('mouseover', mouseOver).on('mouseout', mouseOut).on('mousemove', mouseMove).on('click', click);
-
- circle.exit().remove();
- }
- }, {
- key: 'createStyle',
- value: function createStyle() {
- var _props6 = this.props;
- var style = _props6.style;
- var grid = _props6.grid;
- var verticalGrid = _props6.verticalGrid;
- var yAxisOrientRight = _props6.yAxisOrientRight;
-
-
- var uid = this.uid;
- var scope = '.scatterplot-chart-' + uid;
- var axisStyles = (0, _shared.getAxisStyles)(grid, verticalGrid, yAxisOrientRight);
- var rules = (0, _lodash2.default)({}, _shared.defaultStyles, style, axisStyles);
-
- return _react2.default.createElement(_radium.Style, {
- scopeSelector: scope,
- rules: rules
- });
- }
- }, {
- key: 'parseDate',
- value: function parseDate(v) {
- var datePattern = this.props.datePattern;
-
-
- var datePatternParser = dateParser[datePattern] || (dateParser[datePattern] = (0, _d3TimeFormat.timeParse)(datePattern));
-
- return datePatternParser(v);
- }
- }, {
- key: 'calculateChartParameters',
- value: function calculateChartParameters() {
- var _this4 = this;
-
- var _props7 = this.props;
- var axes = _props7.axes;
- var data = _props7.data;
- var margin = _props7.margin;
- var width = _props7.width;
- var height = _props7.height;
- var dotRadius = _props7.dotRadius;
- var xType = _props7.xType;
- var yType = _props7.yType;
- var xDomainRange = _props7.xDomainRange;
- var yDomainRange = _props7.yDomainRange;
- var yAxisOrientRight = _props7.yAxisOrientRight;
-
- /*
- * We could "bind"!
- */
-
- var parseDate = function parseDate(v) {
- return _this4.parseDate(v);
- };
-
- var m = margin || this.calculateMargin(axes, dotRadius * 2, yAxisOrientRight);
- var w = width;
- var h = height + dotRadius * 3;
-
- var innerW = this.calculateInnerW(width, m);
- var innerH = this.calculateInnerH(height, m);
-
- var defaultXDomainRange = (0, _shared.calculateDomainRange)(xDomainRange, xType, parseDate);
- var defaultYDomainRange = (0, _shared.calculateDomainRange)(yDomainRange, yType, parseDate);
-
- var x = this.createDomainRangeGenerator('x', defaultXDomainRange, data, xType, innerW, yAxisOrientRight);
- var y = this.createDomainRangeGenerator('y', defaultYDomainRange, data, yType, innerH, yAxisOrientRight);
-
- var xAxis = this.calculateXAxis({ m: m, h: h, x: x, innerW: innerW });
- var yAxis = this.calculateYAxis({ m: m, y: y, innerW: innerW });
-
- var node = this.createSvgNode({ m: m, w: w, h: h });
- var root = this.createSvgRoot({ node: node, m: m });
-
- return {
- m: m,
- w: w,
- h: h,
- innerW: innerW,
- innerH: innerH,
- x: x,
- y: y,
- xAxis: xAxis,
- yAxis: yAxis,
- node: node,
- root: root
- };
- }
- }, {
- key: 'render',
- value: function render() {
- var axes = this.props.axes;
-
-
- var p = this.calculateChartParameters();
-
- if (axes) {
- this.createXAxis(p);
-
- this.createYAxis(p);
- }
-
- this.createScatterplotChart(p);
-
- var uid = this.uid;
- var className = 'scatterplot-chart-' + uid;
- var node = p.node;
-
-
- return _react2.default.createElement(
- 'div',
- { ref: 'scatterplotChart', className: className },
- this.createStyle(),
- node.toReact()
- );
- }
- }]);
- return ScatterplotChart;
-}(_react2.default.Component);
-
-exports.default = ScatterplotChart;
-module.exports = exports['default'];
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/npmdist/scatterplot-chart/static/index.js.map b/npmdist/scatterplot-chart/static/index.js.map
deleted file mode 100644
index d42ee1e..0000000
--- a/npmdist/scatterplot-chart/static/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../../modules/scatterplot-chart/static/index.js"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import React from 'react';\nimport {\n scaleLinear as linear,\n scalePoint as point\n} from 'd3-scale';\nimport {\n event as lastEvent,\n min,\n max,\n scale,\n select,\n svg,\n time\n} from 'd3';\nimport { timeParse as parse } from 'd3-time-format';\nimport { extent } from 'd3-array';\nimport { createElement } from 'react-faux-dom';\nimport { Style } from 'radium';\nimport merge from 'lodash.merge';\nimport {\n createUniqueID,\n calculateDomainRange,\n defaultStyles,\n getAxisStyles,\n createCircularTicks\n} from '../../shared';\n\nconst dateParser = {};\n\nconst color = scale.category20();\n\nconst axisMargin = 18;\n\nexport default class ScatterplotChart extends React.Component {\n static get propTypes() {\n return {\n axes: React.PropTypes.bool,\n axisLabels: React.PropTypes.shape({\n x: React.PropTypes.string,\n y: React.PropTypes.string\n }),\n clickHandler: React.PropTypes.func,\n config: React.PropTypes.array,\n data: React.PropTypes.array.isRequired,\n datePattern: React.PropTypes.string,\n yAxisOrientRight: React.PropTypes.bool,\n dotRadius: React.PropTypes.number,\n verticalGrid: React.PropTypes.bool,\n grid: React.PropTypes.bool,\n height: React.PropTypes.number,\n useLegend: React.PropTypes.bool,\n margin: React.PropTypes.object,\n mouseOverHandler: React.PropTypes.func,\n mouseOutHandler: React.PropTypes.func,\n mouseMoveHandler: React.PropTypes.func,\n style: React.PropTypes.object,\n tickTimeDisplayFormat: React.PropTypes.string,\n width: React.PropTypes.number,\n xDomainRange: React.PropTypes.array,\n yDomainRange: React.PropTypes.array,\n xTickNumber: React.PropTypes.number,\n yTickNumber: React.PropTypes.number,\n xTicks: React.PropTypes.number,\n yTicks: React.PropTypes.number,\n xType: React.PropTypes.string,\n yType: React.PropTypes.string\n };\n }\n\n static get defaultProps() {\n return {\n axes: false,\n axisLabels: {\n x: '',\n y: ''\n },\n clickHandler: () => {},\n config: [],\n datePattern: '%d-%b-%y',\n dotRadius: 5,\n grid: false,\n mouseOverHandler: () => {},\n mouseOutHandler: () => {},\n mouseMoveHandler: () => {},\n width: 320,\n height: 180,\n xType: 'linear',\n yType: 'linear'\n };\n }\n\n constructor(props) {\n super(props);\n this.uid = createUniqueID(props);\n }\n\n componentDidMount() {\n const ref = this.refs.scatterplotChart;\n createCircularTicks(ref);\n }\n\n componentDidUpdate() {\n const ref = this.refs.scatterplotChart;\n createCircularTicks(ref);\n }\n\n getScale(type) {\n switch (type) {\n case 'time':\n return time.scale();\n case 'text':\n return point();\n default:\n return linear();\n }\n }\n\n getDataConfig(type) {\n const {\n config\n } = this.props;\n\n const index = config.findIndex((item) => item.type === type);\n return config[index];\n }\n\n getFill(data) {\n const configItem = this.getDataConfig(data.type);\n return (configItem)\n ? configItem.color\n : color(data.type);\n }\n\n getRadius(data, dataItem, dotRadius) {\n if (typeof data[0].z !== 'undefined') {\n const range = extent(data, (d) => d.z);\n const mn = range[0];\n const mx = range[1];\n const p = ((dataItem.z - mn) / (mx - mn));\n const minRad = 5;\n const maxRad = 20;\n const rad = minRad + ((maxRad - minRad) * p);\n return rad;\n }\n return dotRadius;\n }\n\n getStroke(data) {\n const configItem = this.getDataConfig(data.type);\n return (configItem)\n ? configItem.stroke\n : 'none'; // typeof configItem !== 'undefined' ? configItem.stroke : 'none';\n }\n\n createDomainRangeGenerator(axisType, domainRange, data, type, length, yAxisOrientRight) {\n const dataIndex =\n (axisType === 'x')\n ? 'x'\n : 'y';\n\n let axis;\n let minAmount;\n let maxAmount;\n\n const parseDate = (v) => this.parseDate(v);\n\n switch (type) {\n case 'text':\n axis = point();\n axis\n .domain(data.map((d) => d[dataIndex])) // , 1)\n .range([0, length])\n .padding(1);\n break;\n case 'linear':\n axis = linear();\n minAmount = min(data, (d) => d[dataIndex]);\n maxAmount = max(data, (d) => d[dataIndex]);\n if (domainRange) {\n axis\n .domain(domainRange); // calculateDomainRange(domainRange, type, parseDate));\n } else {\n // set initial domain\n axis\n .domain([minAmount, maxAmount]);\n // calculate 1 tick offset\n const ticks = axis.ticks();\n\n minAmount =\n (yAxisOrientRight && axisType === 'x')\n ? minAmount\n : minAmount - (ticks[1] - ticks[0]);\n\n maxAmount =\n (yAxisOrientRight && axisType === 'x')\n ? maxAmount + (ticks[1] - ticks[0])\n : maxAmount;\n\n axis\n .domain([minAmount, maxAmount]);\n }\n axis\n .range(\n (axisType === 'x')\n ? [0, length]\n : [length, 0]);\n break;\n case 'time':\n axis = time.scale();\n axis\n .domain(\n (domainRange)\n ? calculateDomainRange(domainRange)\n : extent(data, (d) => parseDate(d[dataIndex])))\n .range(\n (axisType === 'x')\n ? [0, length]\n : [length, 0]);\n break;\n default:\n break;\n }\n return axis;\n }\n\n calculateMargin(axes, spacer, yAxisOrientRight) {\n if (yAxisOrientRight) {\n return (axes)\n ? { top: 24, right: 48, bottom: 24, left: 24 }\n : { top: spacer, right: spacer, bottom: spacer, left: spacer };\n }\n return (axes)\n ? { top: 24, right: 24, bottom: 24, left: 48 }\n : { top: spacer, right: spacer, bottom: spacer, left: spacer };\n }\n\n calculateInnerW(w, m) {\n return (w - (m.left + m.right));\n }\n\n calculateInnerH(h, m) {\n const {\n dotRadius\n } = this.props;\n\n return (h - (m.top + m.bottom + (dotRadius * 2)));\n }\n\n calculateXAxis({ h, x }) {\n const {\n xType,\n tickTimeDisplayFormat,\n xTickNumber,\n grid,\n verticalGrid,\n xTicks\n } = this.props;\n\n const axis = svg.axis()\n .scale(x)\n .orient('bottom');\n\n if (xType === 'time' && tickTimeDisplayFormat) {\n axis\n .tickFormat(time.format(tickTimeDisplayFormat));\n }\n\n if (xTickNumber) {\n axis\n .ticks(xTickNumber);\n }\n\n if (grid && verticalGrid) {\n axis\n .tickSize(-h, 6)\n .tickPadding(15);\n } else {\n axis\n .tickSize(0)\n .tickPadding(15);\n }\n\n if (xTicks) {\n axis\n .ticks(xTicks);\n }\n\n return axis;\n }\n\n calculateYAxis({ y, innerW }) {\n const {\n grid,\n yTicks,\n yAxisOrientRight\n } = this.props;\n\n const axis = svg.axis()\n .scale(y)\n .orient(\n (yAxisOrientRight)\n ? 'right'\n : 'left');\n\n if (grid) {\n axis\n .tickSize(-innerW, 6)\n .tickPadding(12);\n } else {\n axis\n .tickPadding(10);\n }\n\n if (yTicks) {\n axis\n .ticks(yTicks);\n }\n\n return axis;\n }\n\n createSvgNode({ m, w, h }) {\n const node = createElement('svg');\n node.setAttribute('width', w + m.left + m.right);\n node.setAttribute('height', h + m.top + m.bottom);\n return node;\n }\n\n createSvgRoot({ node, m }) {\n return select(node)\n .append('g')\n .attr('transform', `translate(${m.left}, ${m.top})`);\n }\n\n createXAxis({ m, innerW, innerH, xAxis, root }) {\n const {\n yAxisOrientRight,\n axisLabels: { x: label }\n } = this.props;\n\n const group = root\n .append('g')\n .attr('class', 'x axis')\n .attr('transform', `translate(0, ${innerH})`);\n\n group\n .call(xAxis);\n\n if (label) {\n group\n .append('text')\n .attr('class', 'label')\n .attr('x',\n (yAxisOrientRight)\n ? 0\n : innerW)\n .attr('y', m.bottom + axisMargin)\n .style('text-anchor',\n (yAxisOrientRight)\n ? 'start'\n : 'end')\n .text(label);\n }\n }\n\n createYAxis({ m, innerW, yAxis, root }) {\n const {\n yAxisOrientRight,\n axisLabels: { y: label }\n } = this.props;\n\n const group = root\n .append('g')\n .attr('class', 'y axis')\n .attr('transform',\n (yAxisOrientRight)\n ? `translate(${innerW}, 0)`\n : 'translate(0, 0)');\n\n group\n .call(yAxis);\n\n if (label) {\n group\n .append('text')\n .attr('class', 'label')\n .attr('transform', 'rotate(-90)')\n .attr('y',\n (yAxisOrientRight)\n ? -25 + m.right\n : 10 - m.left\n )\n .attr('dy', '.71em')\n .style('text-anchor', 'end')\n .text(label);\n }\n }\n\n createScatterplotChart({ x, y, root }) {\n const {\n data,\n dotRadius,\n xType,\n mouseOverHandler,\n mouseOutHandler,\n mouseMoveHandler,\n clickHandler\n } = this.props;\n\n const calculateDate = (v) => this.parseDate(v);\n\n const calculateR = (d) => this.getRadius(data, d, dotRadius);\n const calculateCX = (d) => (\n (xType === 'time')\n ? x(calculateDate(d.x))\n : x(d.x));\n const calculateCY = (d) => y(d.y);\n\n const getFill = (d) => this.getFill(d);\n const getStroke = (d) => this.getStroke(d);\n\n const mouseOver = (d) => mouseOverHandler(d, lastEvent);\n const mouseOut = (d) => mouseOutHandler(d, lastEvent);\n const mouseMove = (d) => mouseMoveHandler(d, lastEvent);\n const click = (d) => clickHandler(d, lastEvent);\n\n const circle = root\n .append('g')\n .selectAll('circle') // '.dot'\n .data(data);\n\n circle\n .enter()\n .append('circle')\n .attr('class', 'dot')\n .attr('r', calculateR)\n .attr('cx', calculateCX)\n .attr('cy', calculateCY)\n .style('fill', getFill)\n .style('stroke', getStroke)\n .on('mouseover', mouseOver)\n .on('mouseout', mouseOut)\n .on('mousemove', mouseMove)\n .on('click', click);\n\n circle\n .exit()\n .remove();\n }\n\n createStyle() {\n const {\n style,\n grid,\n verticalGrid,\n yAxisOrientRight\n } = this.props;\n\n const uid = this.uid;\n const scope = `.scatterplot-chart-${uid}`;\n const axisStyles = getAxisStyles(grid, verticalGrid, yAxisOrientRight);\n const rules = merge({}, defaultStyles, style, axisStyles);\n\n return (\n \n );\n }\n\n parseDate(v) {\n const {\n datePattern\n } = this.props;\n\n const datePatternParser = (\n dateParser[datePattern] || (\n dateParser[datePattern] = parse(datePattern)));\n\n return datePatternParser(v);\n }\n\n calculateChartParameters() {\n const {\n axes,\n data,\n margin,\n width,\n height,\n dotRadius,\n xType,\n yType,\n xDomainRange,\n yDomainRange,\n yAxisOrientRight\n } = this.props;\n\n /*\n * We could \"bind\"!\n */\n const parseDate = (v) => this.parseDate(v);\n\n const m = margin || this.calculateMargin(axes, dotRadius * 2, yAxisOrientRight);\n const w = width;\n const h = height + (dotRadius * 3);\n\n const innerW = this.calculateInnerW(width, m);\n const innerH = this.calculateInnerH(height, m);\n\n const defaultXDomainRange = calculateDomainRange(xDomainRange, xType, parseDate);\n const defaultYDomainRange = calculateDomainRange(yDomainRange, yType, parseDate);\n\n const x = this.createDomainRangeGenerator(\n 'x', defaultXDomainRange, data, xType, innerW, yAxisOrientRight);\n const y = this.createDomainRangeGenerator(\n 'y', defaultYDomainRange, data, yType, innerH, yAxisOrientRight);\n\n const xAxis = this.calculateXAxis({ m, h, x, innerW });\n const yAxis = this.calculateYAxis({ m, y, innerW });\n\n const node = this.createSvgNode({ m, w, h });\n const root = this.createSvgRoot({ node, m });\n\n return {\n m,\n w,\n h,\n innerW,\n innerH,\n x,\n y,\n xAxis,\n yAxis,\n node,\n root\n };\n }\n\n render() {\n const {\n axes\n } = this.props;\n\n const p = this.calculateChartParameters();\n\n if (axes) {\n this.createXAxis(p);\n\n this.createYAxis(p);\n }\n\n this.createScatterplotChart(p);\n\n const uid = this.uid;\n const className = `scatterplot-chart-${uid}`;\n const {\n node\n } = p;\n\n return (\n \n {this.createStyle()}\n {node.toReact()}\n
\n );\n }\n}\n"]}
\ No newline at end of file
diff --git a/npmdist/shared.js b/npmdist/shared.js
deleted file mode 100644
index e0ee28b..0000000
--- a/npmdist/shared.js
+++ /dev/null
@@ -1,257 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.defaultStyles = exports.defaultColors = undefined;
-
-var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray');
-
-var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
-
-exports.reduce = reduce;
-exports.createValueGenerator = createValueGenerator;
-exports.createCircularTicks = createCircularTicks;
-exports.getAxisStyles = getAxisStyles;
-exports.createUniqueID = createUniqueID;
-exports.calculateMargin = calculateMargin;
-exports.textDomainRange = textDomainRange;
-exports.calculateExtent = calculateExtent;
-exports.calculateDomainRange = calculateDomainRange;
-exports.createDomainRangeGenerator = createDomainRangeGenerator;
-
-var _d3Array = require('d3-array');
-
-var _d3Scale = require('d3-scale');
-
-var _d = require('d3');
-
-var _objectHash = require('object-hash');
-
-var _objectHash2 = _interopRequireDefault(_objectHash);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var defaultColors = exports.defaultColors = ['#3F4C55', '#E3A51A', '#F4E956', '#AAAC84'];
-
-var defaultStyles = exports.defaultStyles = {
- '.pie-chart-slice': {
- stroke: '#fff',
- strokeWidth: 1,
- opacity: '1'
- },
- '.pie-chart-slice:hover': {
- opacity: '0.8'
- },
- '.pie-chart-label': {
- fontFamily: 'sans-serif',
- fontSize: '12px',
- textAnchor: 'middle',
- fill: '#000'
- },
- '.bar': {
- fill: 'blue',
- transition: 'x 0.35s ease-in, y 0.35s ease-in, height 0.5s ease-in, width 0.5s ease-in',
- opacity: 1
- },
- '.bar:hover': {
- opacity: 0.8
- },
- '.line': {
- fill: 'none',
- strokeWidth: 1.5,
- opacity: 0.7
- },
- '.line:hover': {
- opacity: 1
- },
- '.area': {
- opacity: 0.7
- },
- '.area:hover': {
- opacity: 1
- },
- '.dot': {
- strokeWidth: 0,
- opacity: 0.85,
- transition: 'cx 0.35s ease-in, cy 0.35s ease-in, r 0.5s ease-in'
- },
- '.dot:hover': {
- opacity: 1
- },
- 'circle.data-point': {
- r: 4,
- opacity: 0.7,
- transition: 'cx 0.35s ease-in, cy 0.35s ease-in'
- },
- 'circle.data-point:hover': {
- r: 6,
- opacity: 1
- },
- 'circle.tick-circle': {
- r: 2,
- fill: 'lightgrey'
- },
- '.x circle.tick-circle': {
- cy: '8px'
- },
- '.axis': {
- 'font-family': 'dobra-light,Arial,sans-serif',
- 'font-size': '9px'
- },
- '.axis .label': {
- font: '14px arial'
- },
- '.axis path, .axis line': {
- fill: 'none',
- strokeWidth: 1,
- 'shape-rendering': 'crispEdges'
- },
- 'x.axis path': {
- display: 'none',
- stroke: 'lightgrey'
- },
- '.tick line': {
- stroke: 'lightgrey',
- strokeWidth: 1,
- opacity: '0.7'
- }
-};
-
-function reduce() {
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- var rVal = args[0];
- for (var i = 1; i < args.length; i++) {
- rVal -= args[i];
- }
- return rVal;
-}
-
-function createValueGenerator(scale, type, parseDate) {
- var dataIndex = scale === 'x' ? 'x' : 'y';
- return type === 'time' ? function (d) {
- return parseDate(d[dataIndex]);
- } : function (d) {
- return d[dataIndex];
- };
-}
-
-function createCircularTicks(containerElement) {
- (0, _d.select)(containerElement).select('svg').selectAll('.tick-circle').remove();
-
- var ticks = (0, _d.select)(containerElement).select('svg').selectAll('.tick');
-
- function circleAppender() {
- (0, _d.select)(this).append('circle').attr('class', 'tick-circle');
- }
- ticks.each(circleAppender);
-}
-
-function getAxisStyles(grid, verticalGrid, yAxisOrientRight) {
- return {
- '.x circle.tick-circle ': {
- fill: verticalGrid ? 'none' : 'lightgrey'
- },
- '.y circle.tick-circle': {
- cx: yAxisOrientRight ? '+5px' : '-8px',
- fill: grid ? 'none' : 'lightgrey'
- },
- '.y.axis line': {
- display: grid ? 'inline' : 'none',
- stroke: 'lightgrey'
- }
- };
-}
-
-function createUniqueID(o) {
- return (0, _objectHash2.default)(o);
-}
-
-function calculateMargin(axes, margin, yAxisOrientRight, y2) {
- if (margin) return margin;
- if (yAxisOrientRight) {
- return axes ? { top: 20, right: 50, bottom: 50, left: y2 ? 50 : 20 } : { top: 0, right: 0, bottom: 0, left: 0 };
- }
- return axes ? { top: 20, right: y2 ? 50 : 20, bottom: 50, left: 50 } : { top: 0, right: 0, bottom: 0, left: 0 };
-}
-
-/* eslint no-shadow: 0 */
-function textDomainRange(d, s) {
- var a = [];
-
- d.forEach(function (d) {
- d.forEach(function (d, i) {
- var v = d[s];
- if (!a.includes(v)) a.splice(i, 0, v);
- });
- });
-
- return a;
-}
-
-function calculateExtent(data, accessor) {
- var lo = void 0; // Low
- var hi = void 0; // High
- data.forEach(function (item) {
- var _extent = (0, _d3Array.extent)(item, accessor);
-
- var _extent2 = (0, _slicedToArray3.default)(_extent, 2);
-
- var LO = _extent2[0];
- var HI = _extent2[1];
-
- lo = lo < LO ? lo : LO;
- hi = hi > HI ? hi : HI;
- });
- return [lo, hi];
-}
-
-function timeDomainRange(domainRange, parseDate) {
- var _domainRange = (0, _slicedToArray3.default)(domainRange, 2);
-
- var LO = _domainRange[0];
- var HI = _domainRange[1];
-
- var lo = parseDate(LO);
- var hi = parseDate(HI);
- return [lo, hi];
-}
-
-function calculateDomainRange(domainRange, type, parseDate) {
- if (!Array.isArray(domainRange)) return null;
- return type === 'time' ? timeDomainRange(domainRange, parseDate) : domainRange;
-}
-
-function createDomainRangeGenerator(scale, domainRange, data, type, length, parseDate) {
- /*
- const dataIndex =
- (scale === 'x')
- ? 'x'
- : 'y';
- */
- var axis = void 0;
-
- switch (type) {
- case 'text':
- axis = (0, _d3Scale.scalePoint)();
- axis.domain(Array.isArray(domainRange) ? domainRange // calculateDomainRange(domainRange, type, parseDate)
- : textDomainRange(data, scale)).range([0, length]).padding(0);
- break;
- case 'linear':
- axis = (0, _d3Scale.scaleLinear)();
- axis.domain(Array.isArray(domainRange) ? domainRange // calculateDomainRange(domainRange, type, parseDate)
- : calculateExtent(data, createValueGenerator(scale, type, parseDate))).range(scale === 'x' ? [0, length] : [length, 0]);
- break;
- case 'time':
- axis = _d.time.scale();
- axis.domain(Array.isArray(domainRange) ? timeDomainRange(domainRange, parseDate) : calculateExtent(data, createValueGenerator(scale, type, parseDate))).range(scale === 'x' ? [0, length] : [length, 0]);
- break;
- default:
- break;
- }
- return axis;
-}
-//# sourceMappingURL=shared.js.map
\ No newline at end of file
diff --git a/npmdist/shared.js.map b/npmdist/shared.js.map
deleted file mode 100644
index 9862f9e..0000000
--- a/npmdist/shared.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../modules/shared.js"],"names":[],"mappings":"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","file":"shared.js","sourcesContent":["import { extent } from 'd3-array';\nimport { scaleLinear as linear, scalePoint as point } from 'd3-scale';\nimport { time, select } from 'd3';\nimport hash from 'object-hash';\n\nexport const defaultColors = [\n '#3F4C55',\n '#E3A51A',\n '#F4E956',\n '#AAAC84'\n];\n\nexport const defaultStyles = {\n '.pie-chart-slice': {\n stroke: '#fff',\n strokeWidth: 1,\n opacity: '1'\n },\n '.pie-chart-slice:hover': {\n opacity: '0.8'\n },\n '.pie-chart-label': {\n fontFamily: 'sans-serif',\n fontSize: '12px',\n textAnchor: 'middle',\n fill: '#000'\n },\n '.bar': {\n fill: 'blue',\n transition: 'x 0.35s ease-in, y 0.35s ease-in, height 0.5s ease-in, width 0.5s ease-in',\n opacity: 1\n },\n '.bar:hover': {\n opacity: 0.8\n },\n '.line': {\n fill: 'none',\n strokeWidth: 1.5,\n opacity: 0.7\n },\n '.line:hover': {\n opacity: 1\n },\n '.area': {\n opacity: 0.7\n },\n '.area:hover': {\n opacity: 1\n },\n '.dot': {\n strokeWidth: 0,\n opacity: 0.85,\n transition: 'cx 0.35s ease-in, cy 0.35s ease-in, r 0.5s ease-in'\n },\n '.dot:hover': {\n opacity: 1\n },\n 'circle.data-point': {\n r: 4,\n opacity: 0.7,\n transition: 'cx 0.35s ease-in, cy 0.35s ease-in'\n },\n 'circle.data-point:hover': {\n r: 6,\n opacity: 1\n },\n 'circle.tick-circle': {\n r: 2,\n fill: 'lightgrey'\n },\n '.x circle.tick-circle': {\n cy: '8px'\n },\n '.axis': {\n 'font-family': 'dobra-light,Arial,sans-serif',\n 'font-size': '9px'\n },\n '.axis .label': {\n font: '14px arial'\n },\n '.axis path, .axis line': {\n fill: 'none',\n strokeWidth: 1,\n 'shape-rendering': 'crispEdges'\n },\n 'x.axis path': {\n display: 'none',\n stroke: 'lightgrey'\n },\n '.tick line': {\n stroke: 'lightgrey',\n strokeWidth: 1,\n opacity: '0.7'\n }\n};\n\nexport function reduce(...args) {\n let rVal = args[0];\n for (let i = 1; i < args.length; i++) {\n rVal -= args[i];\n }\n return rVal;\n}\n\nexport function createValueGenerator(scale, type, parseDate) {\n const dataIndex =\n (scale === 'x')\n ? 'x'\n : 'y';\n return (type === 'time')\n ? (d) => parseDate(d[dataIndex])\n : (d) => d[dataIndex];\n}\n\nexport function createCircularTicks(containerElement) {\n select(containerElement)\n .select('svg')\n .selectAll('.tick-circle')\n .remove();\n\n const ticks = select(containerElement)\n .select('svg')\n .selectAll('.tick');\n\n function circleAppender() {\n select(this)\n .append('circle')\n .attr('class', 'tick-circle');\n }\n ticks.each(circleAppender);\n}\n\nexport function getAxisStyles(grid, verticalGrid, yAxisOrientRight) {\n return {\n '.x circle.tick-circle ': {\n fill:\n (verticalGrid)\n ? 'none'\n : 'lightgrey'\n },\n '.y circle.tick-circle': {\n cx:\n (yAxisOrientRight)\n ? '+5px'\n : '-8px',\n fill:\n (grid)\n ? 'none'\n : 'lightgrey'\n },\n '.y.axis line': {\n display:\n (grid)\n ? 'inline'\n : 'none',\n stroke: 'lightgrey'\n }\n };\n}\n\nexport function createUniqueID(o) {\n return hash(o);\n}\n\nexport function calculateMargin(axes, margin, yAxisOrientRight, y2) {\n if (margin) return margin;\n if (yAxisOrientRight) {\n return (axes)\n ? { top: 20, right: 50, bottom: 50, left: (y2) ? 50 : 20 }\n : { top: 0, right: 0, bottom: 0, left: 0 };\n }\n return (axes)\n ? { top: 20, right: (y2) ? 50 : 20, bottom: 50, left: 50 }\n : { top: 0, right: 0, bottom: 0, left: 0 };\n}\n\n/* eslint no-shadow: 0 */\nexport function textDomainRange(d, s) {\n const a = [];\n\n d.forEach((d) => {\n d.forEach((d, i) => {\n const v = d[s];\n if (!a.includes(v)) a.splice(i, 0, v);\n });\n });\n\n return a;\n}\n\nexport function calculateExtent(data, accessor) {\n let lo; // Low\n let hi; // High\n data.forEach((item) => {\n const [LO, HI] = extent(item, accessor);\n lo = lo < LO ? lo : LO;\n hi = hi > HI ? hi : HI;\n });\n return [lo, hi];\n}\n\nfunction timeDomainRange(domainRange, parseDate) {\n const [LO, HI] = domainRange;\n const lo = parseDate(LO);\n const hi = parseDate(HI);\n return [lo, hi];\n}\n\nexport function calculateDomainRange(domainRange, type, parseDate) {\n if (!Array.isArray(domainRange)) return null;\n return (type === 'time')\n ? timeDomainRange(domainRange, parseDate)\n : domainRange;\n}\n\nexport function createDomainRangeGenerator(scale, domainRange, data, type, length, parseDate) {\n /*\n const dataIndex =\n (scale === 'x')\n ? 'x'\n : 'y';\n */\n let axis;\n\n switch (type) {\n case 'text':\n axis = point();\n axis\n .domain(\n Array.isArray(domainRange)\n ? domainRange // calculateDomainRange(domainRange, type, parseDate)\n : textDomainRange(data, scale))\n .range([0, length])\n .padding(0);\n break;\n case 'linear':\n axis = linear();\n axis\n .domain(\n Array.isArray(domainRange)\n ? domainRange // calculateDomainRange(domainRange, type, parseDate)\n : calculateExtent(data, createValueGenerator(scale, type, parseDate)))\n .range(\n (scale === 'x')\n ? [0, length]\n : [length, 0]);\n break;\n case 'time':\n axis = time.scale();\n axis\n .domain(\n Array.isArray(domainRange)\n ? timeDomainRange(domainRange, parseDate)\n : calculateExtent(data, createValueGenerator(scale, type, parseDate)))\n .range(\n (scale === 'x')\n ? [0, length]\n : [length, 0]);\n break;\n default:\n break;\n }\n return axis;\n}\n"]}
\ No newline at end of file
diff --git a/package.json b/package.json
index 47532ba..5493fe5 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "react-easy-chart",
- "version": "0.0.3",
+ "version": "0.1.9",
"description": "React component implementations of Mike Bostok's D3 visualisation library.",
"main": "lib/index.js",
"scripts": {
@@ -9,8 +9,8 @@
"eslint": "eslint ./modules/ ./examples/",
"start": "npm run eslint && node examples/server.js",
"docbuild": "mkdir -p docs && rm -rf docs/* && cp -rf examples/ docs/temp/ && cd docs && NODE_ENV=production webpack -p --config temp/webpack.config.docs.js && rm -r temp",
- "publishToNPM": "cd npmdist && npm version patch && npm publish",
- "babel": "babel ./modules --out-dir ./npmdist --source-maps --presets es2015,react,stage-0,stage-1 --plugins babel-plugin-add-module-exports,babel-plugin-transform-class-properties,babel-plugin-transform-object-rest-spread,babel-plugin-transform-react-jsx,babel-plugin-transform-runtime"
+ "prepublish": "npm version patch && npm run babel",
+ "babel": "babel ./modules --out-dir ./lib --source-maps --presets es2015,react,stage-0,stage-1 --plugins babel-plugin-add-module-exports,babel-plugin-transform-class-properties,babel-plugin-transform-object-rest-spread,babel-plugin-transform-react-jsx,babel-plugin-transform-runtime"
},
"repository": {
"type": "git",