diff --git a/dist/react-chartjs.js b/dist/react-chartjs.js index a32b88d..17f2fd9 100644 --- a/dist/react-chartjs.js +++ b/dist/react-chartjs.js @@ -1,13 +1,13 @@ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(require("Chartjs"), require("react")); + module.exports = factory(require("react"), require("react-dom"), require("Chartjs")); else if(typeof define === 'function' && define.amd) - define(["Chartjs", "react"], factory); + define(["react", "react-dom", "Chartjs"], factory); else if(typeof exports === 'object') - exports["react-chartjs"] = factory(require("Chartjs"), require("react")); + exports["react-chartjs"] = factory(require("react"), require("react-dom"), require("Chartjs")); else - root["react-chartjs"] = factory(root["Chartjs"], root["React"]); -})(this, function(__WEBPACK_EXTERNAL_MODULE_8__, __WEBPACK_EXTERNAL_MODULE_9__) { + root["react-chartjs"] = factory(root["React"], root["ReactDOM"], root["Chart"]); +})(this, function(__WEBPACK_EXTERNAL_MODULE_3__, __WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_5__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; @@ -56,12 +56,12 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = { Bar: __webpack_require__(1), - Doughnut: __webpack_require__(2), - Line: __webpack_require__(3), - Pie: __webpack_require__(4), - PolarArea: __webpack_require__(5), - Radar: __webpack_require__(6), - createClass: __webpack_require__(7).createClass + Doughnut: __webpack_require__(6), + Line: __webpack_require__(7), + Pie: __webpack_require__(8), + PolarArea: __webpack_require__(9), + Radar: __webpack_require__(10), + createClass: __webpack_require__(2).createClass }; @@ -69,7 +69,7 @@ return /******/ (function(modules) { // webpackBootstrap /* 1 */ /***/ function(module, exports, __webpack_require__) { - var vars = __webpack_require__(7); + var vars = __webpack_require__(2); module.exports = vars.createClass('Bar', ['getBarsAtEvent']); @@ -78,50 +78,8 @@ return /******/ (function(modules) { // webpackBootstrap /* 2 */ /***/ function(module, exports, __webpack_require__) { - var vars = __webpack_require__(7); - - module.exports = vars.createClass('Doughnut', ['getSegmentsAtEvent']); - - -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - var vars = __webpack_require__(7); - - module.exports = vars.createClass('Line', ['getPointsAtEvent']); - - -/***/ }, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - var vars = __webpack_require__(7); - - module.exports = vars.createClass('Pie', ['getSegmentsAtEvent']); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var vars = __webpack_require__(7); - - module.exports = vars.createClass('PolarArea', ['getSegmentsAtEvent']); - - -/***/ }, -/* 6 */ -/***/ function(module, exports, __webpack_require__) { - - var vars = __webpack_require__(7); - - module.exports = vars.createClass('Radar', ['getPointsAtEvent']); - - -/***/ }, -/* 7 */ -/***/ function(module, exports, __webpack_require__) { + var React = __webpack_require__(3); + var ReactDOM = __webpack_require__(4); module.exports = { createClass: function(chartType, methodNames, dataKey) { @@ -146,7 +104,7 @@ return /******/ (function(modules) { // webpackBootstrap var extras = ['clear', 'stop', 'resize', 'toBase64Image', 'generateLegend', 'update', 'addData', 'removeData']; function extra(type) { classData[type] = function() { - this.state.chart[name].apply(this.state.chart, arguments); + return this.state.chart[type].apply(this.state.chart, arguments); }; } @@ -161,19 +119,23 @@ return /******/ (function(modules) { // webpackBootstrap classData.componentWillReceiveProps = function(nextProps) { var chart = this.state.chart; - if (this.props.redraw) { + if (nextProps.redraw) { chart.destroy(); this.initializeChart(nextProps); } else { dataKey = dataKey || dataKeys[chart.name]; updatePoints(nextProps, chart, dataKey); + if (chart.scale) { + chart.scale.xLabels = nextProps.data.labels; + chart.scale.calculateXLabelRotation(); + } chart.update(); } }; classData.initializeChart = function(nextProps) { - var Chart = __webpack_require__(8); - var el = this.getDOMNode(); + var Chart = __webpack_require__(5); + var el = ReactDOM.findDOMNode(this); var ctx = el.getContext("2d"); var chart = new Chart(ctx)[chartType](nextProps.data, nextProps.options || {}); this.state.chart = chart; @@ -186,9 +148,11 @@ return /******/ (function(modules) { // webpackBootstrap // return the canvass element that contains the chart classData.getCanvass = function() { - return this.refs.canvass.getDOMNode(); + return this.refs.canvass; }; + classData.getCanvas = classData.getCanvass; + var i; for (i=0; i nextProps.data.labels.length) { + chart.removeData(); + } nextProps.data.datasets.forEach(function(set, setIndex) { set.data.forEach(function(val, pointIndex) { - chart.datasets[setIndex][dataKey][pointIndex].value = val; + if (typeof(chart.datasets[setIndex][dataKey][pointIndex]) == "undefined") { + addData(nextProps, chart, setIndex, pointIndex); + } else { + chart.datasets[setIndex][dataKey][pointIndex].value = val; + } }); }); } }; + var addData = function(nextProps, chart, setIndex, pointIndex) { + var values = []; + nextProps.data.datasets.forEach(function(set) { + values.push(set.data[pointIndex]); + }); + chart.addData(values, nextProps.data.labels[setIndex]); + }; + + +/***/ }, +/* 3 */ +/***/ function(module, exports) { + + module.exports = __WEBPACK_EXTERNAL_MODULE_3__; + +/***/ }, +/* 4 */ +/***/ function(module, exports) { + + module.exports = __WEBPACK_EXTERNAL_MODULE_4__; + +/***/ }, +/* 5 */ +/***/ function(module, exports) { + + module.exports = __WEBPACK_EXTERNAL_MODULE_5__; + +/***/ }, +/* 6 */ +/***/ function(module, exports, __webpack_require__) { + + var vars = __webpack_require__(2); + module.exports = vars.createClass('Doughnut', ['getSegmentsAtEvent']); +/***/ }, +/* 7 */ +/***/ function(module, exports, __webpack_require__) { + + var vars = __webpack_require__(2); + + module.exports = vars.createClass('Line', ['getPointsAtEvent']); /***/ }, /* 8 */ /***/ function(module, exports, __webpack_require__) { - module.exports = __WEBPACK_EXTERNAL_MODULE_8__; + var vars = __webpack_require__(2); + + module.exports = vars.createClass('Pie', ['getSegmentsAtEvent']); + /***/ }, /* 9 */ /***/ function(module, exports, __webpack_require__) { - module.exports = __WEBPACK_EXTERNAL_MODULE_9__; + var vars = __webpack_require__(2); + + module.exports = vars.createClass('PolarArea', ['getSegmentsAtEvent']); + + +/***/ }, +/* 10 */ +/***/ function(module, exports, __webpack_require__) { + + var vars = __webpack_require__(2); + + module.exports = vars.createClass('Radar', ['getPointsAtEvent']); + /***/ } /******/ ]) diff --git a/dist/react-chartjs.min.js b/dist/react-chartjs.min.js index 381b6e2..3051eff 100644 --- a/dist/react-chartjs.min.js +++ b/dist/react-chartjs.min.js @@ -1 +1 @@ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("Chartjs"),require("react")):"function"==typeof define&&define.amd?define(["Chartjs","react"],e):"object"==typeof exports?exports["react-chartjs"]=e(require("Chartjs"),require("react")):t["react-chartjs"]=e(t.Chartjs,t.React)}(this,function(t,e){return function(t){function e(r){if(a[r])return a[r].exports;var n=a[r]={exports:{},id:r,loaded:!1};return t[r].call(n.exports,n,n.exports,e),n.loaded=!0,n.exports}var a={};return e.m=t,e.c=a,e.p="",e(0)}([function(t,e,a){t.exports={Bar:a(1),Doughnut:a(2),Line:a(3),Pie:a(4),PolarArea:a(5),Radar:a(6),createClass:a(7).createClass}},function(t,e,a){var r=a(7);t.exports=r.createClass("Bar",["getBarsAtEvent"])},function(t,e,a){var r=a(7);t.exports=r.createClass("Doughnut",["getSegmentsAtEvent"])},function(t,e,a){var r=a(7);t.exports=r.createClass("Line",["getPointsAtEvent"])},function(t,e,a){var r=a(7);t.exports=r.createClass("Pie",["getSegmentsAtEvent"])},function(t,e,a){var r=a(7);t.exports=r.createClass("PolarArea",["getSegmentsAtEvent"])},function(t,e,a){var r=a(7);t.exports=r.createClass("Radar",["getPointsAtEvent"])},function(t,e,a){t.exports={createClass:function(t,e,s){function o(t){i[t]=function(){this.state.chart[name].apply(this.state.chart,arguments)}}var i={displayName:t+"Chart",getInitialState:function(){return{}},render:function(){var t={ref:"canvass"};for(var e in this.props)this.props.hasOwnProperty(e)&&"data"!==e&&"options"!==e&&(t[e]=this.props[e]);return p.createElement("canvas",t)}},c=["clear","stop","resize","toBase64Image","generateLegend","update","addData","removeData"];i.componentDidMount=function(){this.initializeChart(this.props)},i.componentWillUnmount=function(){var t=this.state.chart;t.destroy()},i.componentWillReceiveProps=function(t){var e=this.state.chart;this.props.redraw?(e.destroy(),this.initializeChart(t)):(s=s||r[e.name],n(t,e,s),e.update())},i.initializeChart=function(e){var r=a(8),n=this.getDOMNode(),s=n.getContext("2d"),o=new r(s)[t](e.data,e.options||{});this.state.chart=o},i.getChart=function(){return this.state.chart},i.getCanvass=function(){return this.refs.canvass.getDOMNode()};var u;for(u=0;ut.data.labels.length;)e.removeData();t.data.datasets.forEach(function(r,n){r.data.forEach(function(r,s){"undefined"==typeof e.datasets[n][a][s]?i(t,e,n,s):e.datasets[n][a][s].value=r})})}},i=function(t,e,a,r){var n=[];t.data.datasets.forEach(function(t){n.push(t.data[r])}),e.addData(n,t.data.labels[a])}},function(e,a){e.exports=t},function(t,a){t.exports=e},function(t,e){t.exports=a},function(t,e,a){var r=a(2);t.exports=r.createClass("Doughnut",["getSegmentsAtEvent"])},function(t,e,a){var r=a(2);t.exports=r.createClass("Line",["getPointsAtEvent"])},function(t,e,a){var r=a(2);t.exports=r.createClass("Pie",["getSegmentsAtEvent"])},function(t,e,a){var r=a(2);t.exports=r.createClass("PolarArea",["getSegmentsAtEvent"])},function(t,e,a){var r=a(2);t.exports=r.createClass("Radar",["getPointsAtEvent"])}])}); \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js index d1101e6..a810692 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -26,8 +26,14 @@ module.exports = { commonjs: "react", amd: "react" }, + "react-dom": { + root: "ReactDOM", + commonjs2: "react-dom", + commonjs: "react-dom", + amd: "react-dom" + }, "chart.js": { - root: "Chartjs", + root: "Chart", commonjs2: "Chartjs", commonjs: "Chartjs", amd: "Chartjs"