diff --git a/build/index.js b/build/index.js index 816c148..d3defb1 100644 --- a/build/index.js +++ b/build/index.js @@ -11,41 +11,38 @@ return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; - +/******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { - +/******/ /******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) +/******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; - +/******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; - +/******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - +/******/ /******/ // Flag the module as loaded /******/ module.l = true; - +/******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } - - +/******/ +/******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; - +/******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; - -/******/ // identity function for calling harmony imports with the correct context -/******/ __webpack_require__.i = function(value) { return value; }; - +/******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { @@ -56,7 +53,7 @@ return /******/ (function(modules) { // webpackBootstrap /******/ }); /******/ } /******/ }; - +/******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? @@ -65,15 +62,15 @@ return /******/ (function(modules) { // webpackBootstrap /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; - +/******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; - +/******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = "/"; - +/******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 31); +/******/ return __webpack_require__(__webpack_require__.s = 11); /******/ }) /************************************************************************/ /******/ ([ @@ -104,11 +101,11 @@ if (process.env.NODE_ENV !== 'production') { // By explicitly using `prop-types` you are opting into new development behavior. // http://fb.me/prop-types-in-prod var throwOnDirectAccess = true; - module.exports = __webpack_require__(28)(isValidElement, throwOnDirectAccess); + module.exports = __webpack_require__(14)(isValidElement, throwOnDirectAccess); } else { // By explicitly using `prop-types` you are opting into new production behavior. // http://fb.me/prop-types-in-prod - module.exports = __webpack_require__(27)(); + module.exports = __webpack_require__(16)(); } /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2))) @@ -293,6 +290,10 @@ process.off = noop; process.removeListener = noop; process.removeAllListeners = noop; process.emit = noop; +process.prependListener = noop; +process.prependOnceListener = noop; + +process.listeners = function (name) { return [] } process.binding = function (name) { throw new Error('process.binding is not supported'); @@ -329,42 +330,6 @@ exports.default = function (data) { "use strict"; -Object.defineProperty(exports, "__esModule", { - value: true -}); - -exports.default = function (data) { - return Math.min.apply(Math, data); -}; - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - - - -var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; - -module.exports = ReactPropTypesSecret; - - -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - /** * Copyright (c) 2013-present, Facebook, Inc. * All rights reserved. @@ -403,7 +368,7 @@ emptyFunction.thatReturnsArgument = function (arg) { module.exports = emptyFunction; /***/ }), -/* 7 */ +/* 5 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -465,22 +430,28 @@ module.exports = invariant; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2))) /***/ }), -/* 8 */ +/* 6 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +/** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = function (data) { - return Math.max.apply(Math, data); -}; +var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; + +module.exports = ReactPropTypesSecret; + /***/ }), -/* 9 */ +/* 7 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -490,23 +461,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _mean = __webpack_require__(3); - -var _mean2 = _interopRequireDefault(_mean); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - exports.default = function (data) { - var dataMean = (0, _mean2.default)(data); - var sqDiff = data.map(function (n) { - return Math.pow(n - dataMean, 2); - }); - var avgSqDiff = (0, _mean2.default)(sqDiff); - return Math.sqrt(avgSqDiff); + return Math.min.apply(Math, data); }; /***/ }), -/* 10 */ +/* 8 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -522,7 +482,7 @@ exports.default = function (data) { -var emptyFunction = __webpack_require__(6); +var emptyFunction = __webpack_require__(4); /** * Similar to invariant but only logs a warning if the condition is not met. @@ -534,59 +494,96 @@ var emptyFunction = __webpack_require__(6); var warning = emptyFunction; if (process.env.NODE_ENV !== 'production') { - (function () { - var printWarning = function printWarning(format) { - for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } + var printWarning = function printWarning(format) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } - var argIndex = 0; - var message = 'Warning: ' + format.replace(/%s/g, function () { - return args[argIndex++]; - }); - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; - - warning = function warning(condition, format) { - if (format === undefined) { - throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); - } + var argIndex = 0; + var message = 'Warning: ' + format.replace(/%s/g, function () { + return args[argIndex++]; + }); + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; - if (format.indexOf('Failed Composite propType: ') === 0) { - return; // Ignore CompositeComponent proptype check. - } + warning = function warning(condition, format) { + if (format === undefined) { + throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); + } - if (!condition) { - for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { - args[_key2 - 2] = arguments[_key2]; - } + if (format.indexOf('Failed Composite propType: ') === 0) { + return; // Ignore CompositeComponent proptype check. + } - printWarning.apply(undefined, [format].concat(args)); + if (!condition) { + for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { + args[_key2 - 2] = arguments[_key2]; } - }; - })(); + + printWarning.apply(undefined, [format].concat(args)); + } + }; } module.exports = warning; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2))) /***/ }), -/* 11 */ +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.default = function (data) { + return Math.max.apply(Math, data); +}; + +/***/ }), +/* 10 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _mean = __webpack_require__(3); + +var _mean2 = _interopRequireDefault(_mean); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = function (data) { + var dataMean = (0, _mean2.default)(data); + var sqDiff = data.map(function (n) { + return Math.pow(n - dataMean, 2); + }); + var avgSqDiff = (0, _mean2.default)(sqDiff); + return Math.sqrt(avgSqDiff); +}; + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + module.exports = __webpack_require__(12); + /***/ }), /* 12 */ /***/ (function(module, exports, __webpack_require__) { @@ -594,6 +591,15 @@ module.exports = __webpack_require__(12); "use strict"; +module.exports = __webpack_require__(13); + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); @@ -609,42 +615,38 @@ var _react = __webpack_require__(1); var _react2 = _interopRequireDefault(_react); -var _SparklinesText = __webpack_require__(19); +var _SparklinesText = __webpack_require__(17); var _SparklinesText2 = _interopRequireDefault(_SparklinesText); -var _SparklinesLine = __webpack_require__(15); +var _SparklinesLine = __webpack_require__(18); var _SparklinesLine2 = _interopRequireDefault(_SparklinesLine); -var _SparklinesCurve = __webpack_require__(14); +var _SparklinesCurve = __webpack_require__(19); var _SparklinesCurve2 = _interopRequireDefault(_SparklinesCurve); -var _SparklinesBars = __webpack_require__(13); +var _SparklinesBars = __webpack_require__(20); var _SparklinesBars2 = _interopRequireDefault(_SparklinesBars); -var _SparklinesSpots = __webpack_require__(18); +var _SparklinesSpots = __webpack_require__(21); var _SparklinesSpots2 = _interopRequireDefault(_SparklinesSpots); -var _SparklinesReferenceLine = __webpack_require__(17); +var _SparklinesReferenceLine = __webpack_require__(22); var _SparklinesReferenceLine2 = _interopRequireDefault(_SparklinesReferenceLine); -var _SparklinesNormalBand = __webpack_require__(16); +var _SparklinesNormalBand = __webpack_require__(27); var _SparklinesNormalBand2 = _interopRequireDefault(_SparklinesNormalBand); -var _dataToPoints = __webpack_require__(20); +var _dataToPoints = __webpack_require__(28); var _dataToPoints2 = _interopRequireDefault(_dataToPoints); -var _reactAddonsShallowCompare = __webpack_require__(29); - -var _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare); - 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"); } } @@ -653,8 +655,8 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen 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 Sparklines = function (_React$Component) { - _inherits(Sparklines, _React$Component); +var Sparklines = function (_PureComponent) { + _inherits(Sparklines, _PureComponent); function Sparklines(props) { _classCallCheck(this, Sparklines); @@ -663,11 +665,6 @@ var Sparklines = function (_React$Component) { } _createClass(Sparklines, [{ - key: 'shouldComponentUpdate', - value: function shouldComponentUpdate(nextProps) { - return (0, _reactAddonsShallowCompare2.default)(this, nextProps); - } - }, { key: 'render', value: function render() { var _props = this.props, @@ -703,7 +700,7 @@ var Sparklines = function (_React$Component) { }]); return Sparklines; -}(_react2.default.Component); +}(_react.PureComponent); Sparklines.propTypes = { data: _propTypes2.default.array, @@ -737,219 +734,745 @@ exports.SparklinesNormalBand = _SparklinesNormalBand2.default; exports.SparklinesText = _SparklinesText2.default; /***/ }), -/* 13 */ +/* 14 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ -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 emptyFunction = __webpack_require__(4); +var invariant = __webpack_require__(5); +var warning = __webpack_require__(8); -var _propTypes = __webpack_require__(0); +var ReactPropTypesSecret = __webpack_require__(6); +var checkPropTypes = __webpack_require__(15); -var _propTypes2 = _interopRequireDefault(_propTypes); +module.exports = function(isValidElement, throwOnDirectAccess) { + /* global Symbol */ + var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. -var _react = __webpack_require__(1); + /** + * Returns the iterator method function contained on the iterable object. + * + * Be sure to invoke the function with the iterable as context: + * + * var iteratorFn = getIteratorFn(myIterable); + * if (iteratorFn) { + * var iterator = iteratorFn.call(myIterable); + * ... + * } + * + * @param {?object} maybeIterable + * @return {?function} + */ + function getIteratorFn(maybeIterable) { + var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); + if (typeof iteratorFn === 'function') { + return iteratorFn; + } + } -var _react2 = _interopRequireDefault(_react); + /** + * Collection of methods that allow declaration and validation of props that are + * supplied to React components. Example usage: + * + * var Props = require('ReactPropTypes'); + * var MyArticle = React.createClass({ + * propTypes: { + * // An optional string prop named "description". + * description: Props.string, + * + * // A required enum prop named "category". + * category: Props.oneOf(['News','Photos']).isRequired, + * + * // A prop named "dialog" that requires an instance of Dialog. + * dialog: Props.instanceOf(Dialog).isRequired + * }, + * render: function() { ... } + * }); + * + * A more formal specification of how these methods are used: + * + * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) + * decl := ReactPropTypes.{type}(.isRequired)? + * + * Each and every declaration produces a function with the same signature. This + * allows the creation of custom validation functions. For example: + * + * var MyLink = React.createClass({ + * propTypes: { + * // An optional string or URI prop named "href". + * href: function(props, propName, componentName) { + * var propValue = props[propName]; + * if (propValue != null && typeof propValue !== 'string' && + * !(propValue instanceof URI)) { + * return new Error( + * 'Expected a string or an URI for ' + propName + ' in ' + + * componentName + * ); + * } + * } + * }, + * render: function() {...} + * }); + * + * @internal + */ -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + var ANONYMOUS = '<>'; -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 SparklinesBars = function (_React$Component) { - _inherits(SparklinesBars, _React$Component); + // Important! + // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. + var ReactPropTypes = { + array: createPrimitiveTypeChecker('array'), + bool: createPrimitiveTypeChecker('boolean'), + func: createPrimitiveTypeChecker('function'), + number: createPrimitiveTypeChecker('number'), + object: createPrimitiveTypeChecker('object'), + string: createPrimitiveTypeChecker('string'), + symbol: createPrimitiveTypeChecker('symbol'), - function SparklinesBars() { - _classCallCheck(this, SparklinesBars); + any: createAnyTypeChecker(), + arrayOf: createArrayOfTypeChecker, + element: createElementTypeChecker(), + instanceOf: createInstanceTypeChecker, + node: createNodeChecker(), + objectOf: createObjectOfTypeChecker, + oneOf: createEnumTypeChecker, + oneOfType: createUnionTypeChecker, + shape: createShapeTypeChecker + }; - return _possibleConstructorReturn(this, (SparklinesBars.__proto__ || Object.getPrototypeOf(SparklinesBars)).apply(this, arguments)); + /** + * inlined Object.is polyfill to avoid requiring consumers ship their own + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is + */ + /*eslint-disable no-self-compare*/ + function is(x, y) { + // SameValue algorithm + if (x === y) { + // Steps 1-5, 7-10 + // Steps 6.b-6.e: +0 != -0 + return x !== 0 || 1 / x === 1 / y; + } else { + // Step 6.a: NaN == NaN + return x !== x && y !== y; } + } + /*eslint-enable no-self-compare*/ - _createClass(SparklinesBars, [{ - key: 'render', - value: function render() { - var _this2 = this; - - var _props = this.props, - points = _props.points, - height = _props.height, - style = _props.style, - barWidth = _props.barWidth, - onMouseMove = _props.onMouseMove; + /** + * We use an Error-like object for backward compatibility as people may call + * PropTypes directly and inspect their output. However, we don't use real + * Errors anymore. We don't inspect their stack anyway, and creating them + * is prohibitively expensive if they are created too often, such as what + * happens in oneOfType() for any type before the one that matched. + */ + function PropTypeError(message) { + this.message = message; + this.stack = ''; + } + // Make `instanceof Error` still work for returned errors. + PropTypeError.prototype = Error.prototype; - var strokeWidth = 1 * (style && style.strokeWidth || 0); - var marginWidth = margin ? 2 * margin : 0; - var width = barWidth || (points && points.length >= 2 ? Math.max(0, points[1].x - points[0].x - strokeWidth - marginWidth) : 0); + function createChainableTypeChecker(validate) { + if (process.env.NODE_ENV !== 'production') { + var manualPropTypeCallCache = {}; + var manualPropTypeWarningCount = 0; + } + function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { + componentName = componentName || ANONYMOUS; + propFullName = propFullName || propName; - return _react2.default.createElement( - 'g', - { transform: 'scale(1,-1)' }, - points.map(function (p, i) { - return _react2.default.createElement('rect', { - key: i, - x: p.x - (width + strokeWidth) / 2, - y: -height, - width: width, - height: Math.max(0, height - p.y), - style: style, - onMouseMove: onMouseMove.bind(_this2, p) }); - }) + if (secret !== ReactPropTypesSecret) { + if (throwOnDirectAccess) { + // New behavior only for users of `prop-types` package + invariant( + false, + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use `PropTypes.checkPropTypes()` to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') { + // Old behavior for people using React.PropTypes + var cacheKey = componentName + ':' + propName; + if ( + !manualPropTypeCallCache[cacheKey] && + // Avoid spamming the console because they are often not actionable except for lib authors + manualPropTypeWarningCount < 3 + ) { + warning( + false, + 'You are manually calling a React.PropTypes validation ' + + 'function for the `%s` prop on `%s`. This is deprecated ' + + 'and will throw in the standalone `prop-types` package. ' + + 'You may be seeing this warning due to a third-party PropTypes ' + + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.', + propFullName, + componentName ); + manualPropTypeCallCache[cacheKey] = true; + manualPropTypeWarningCount++; + } } - }]); - - return SparklinesBars; -}(_react2.default.Component); - -SparklinesBars.propTypes = { - points: _propTypes2.default.arrayOf(_propTypes2.default.object), - height: _propTypes2.default.number, - style: _propTypes2.default.object, - barWidth: _propTypes2.default.number, - margin: _propTypes2.default.number, - onMouseMove: _propTypes2.default.func -}; -SparklinesBars.defaultProps = { - style: { fill: 'slategray' } -}; -exports.default = SparklinesBars; - -/***/ }), -/* 14 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); + } + if (props[propName] == null) { + if (isRequired) { + if (props[propName] === null) { + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); + } + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); + } + return null; + } else { + return validate(props, propName, componentName, location, propFullName); + } + } -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 chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); -var _propTypes = __webpack_require__(0); + return chainedCheckType; + } -var _propTypes2 = _interopRequireDefault(_propTypes); + function createPrimitiveTypeChecker(expectedType) { + function validate(props, propName, componentName, location, propFullName, secret) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== expectedType) { + // `propValue` being instance of, say, date/regexp, pass the 'object' + // check, but we can offer a more precise error message here rather than + // 'of type `object`'. + var preciseType = getPreciseType(propValue); -var _react = __webpack_require__(1); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } -var _react2 = _interopRequireDefault(_react); + function createAnyTypeChecker() { + return createChainableTypeChecker(emptyFunction.thatReturnsNull); + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + function createArrayOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); + } + var propValue = props[propName]; + if (!Array.isArray(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); + } + for (var i = 0; i < propValue.length; i++) { + var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + function createElementTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!isValidElement(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); + } + return null; + } + return createChainableTypeChecker(validate); + } -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 createInstanceTypeChecker(expectedClass) { + function validate(props, propName, componentName, location, propFullName) { + if (!(props[propName] instanceof expectedClass)) { + var expectedClassName = expectedClass.name || ANONYMOUS; + var actualClassName = getClassName(props[propName]); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } -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; } + function createEnumTypeChecker(expectedValues) { + if (!Array.isArray(expectedValues)) { + process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0; + return emptyFunction.thatReturnsNull; + } -var SparklinesCurve = function (_React$Component) { - _inherits(SparklinesCurve, _React$Component); + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + for (var i = 0; i < expectedValues.length; i++) { + if (is(propValue, expectedValues[i])) { + return null; + } + } - function SparklinesCurve() { - _classCallCheck(this, SparklinesCurve); + var valuesString = JSON.stringify(expectedValues); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); + } + return createChainableTypeChecker(validate); + } - return _possibleConstructorReturn(this, (SparklinesCurve.__proto__ || Object.getPrototypeOf(SparklinesCurve)).apply(this, arguments)); + function createObjectOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); + } + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); + } + for (var key in propValue) { + if (propValue.hasOwnProperty(key)) { + var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + } + return null; } + return createChainableTypeChecker(validate); + } - _createClass(SparklinesCurve, [{ - key: 'render', - value: function render() { - var _props = this.props, - points = _props.points, - width = _props.width, - height = _props.height, - margin = _props.margin, - color = _props.color, - style = _props.style, - _props$divisor = _props.divisor, - divisor = _props$divisor === undefined ? 0.25 : _props$divisor; + function createUnionTypeChecker(arrayOfTypeCheckers) { + if (!Array.isArray(arrayOfTypeCheckers)) { + process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; + return emptyFunction.thatReturnsNull; + } - var prev = void 0; - var curve = function curve(p) { - var res = void 0; - if (!prev) { - res = [p.x, p.y]; - } else { - var len = (p.x - prev.x) * divisor; - res = ["C", - //x1 - prev.x + len, - //y1 - prev.y, - //x2, - p.x - len, - //y2, - p.y, - //x, - p.x, - //y - p.y]; + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (typeof checker !== 'function') { + warning( + false, + 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' + + 'received %s at index %s.', + getPostfixForTypeWarning(checker), + i + ); + return emptyFunction.thatReturnsNull; + } + } + + function validate(props, propName, componentName, location, propFullName) { + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) { + return null; + } + } + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); + } + return createChainableTypeChecker(validate); + } + + function createNodeChecker() { + function validate(props, propName, componentName, location, propFullName) { + if (!isNode(props[propName])) { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + for (var key in shapeTypes) { + var checker = shapeTypes[key]; + if (!checker) { + continue; + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function isNode(propValue) { + switch (typeof propValue) { + case 'number': + case 'string': + case 'undefined': + return true; + case 'boolean': + return !propValue; + case 'object': + if (Array.isArray(propValue)) { + return propValue.every(isNode); + } + if (propValue === null || isValidElement(propValue)) { + return true; + } + + var iteratorFn = getIteratorFn(propValue); + if (iteratorFn) { + var iterator = iteratorFn.call(propValue); + var step; + if (iteratorFn !== propValue.entries) { + while (!(step = iterator.next()).done) { + if (!isNode(step.value)) { + return false; + } + } + } else { + // Iterator will provide entry [k,v] tuples rather than values. + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + if (!isNode(entry[1])) { + return false; } - prev = p; - return res; - }; - var linePoints = points.map(function (p) { - return curve(p); - }).reduce(function (a, b) { - return a.concat(b); - }); - var closePolyPoints = ["L" + points[points.length - 1].x, height - margin, margin, height - margin, margin, points[0].y]; - var fillPoints = linePoints.concat(closePolyPoints); + } + } + } + } else { + return false; + } + + return true; + default: + return false; + } + } + + function isSymbol(propType, propValue) { + // Native Symbol. + if (propType === 'symbol') { + return true; + } + + // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' + if (propValue['@@toStringTag'] === 'Symbol') { + return true; + } + + // Fallback for non-spec compliant Symbols which are polyfilled. + if (typeof Symbol === 'function' && propValue instanceof Symbol) { + return true; + } + + return false; + } + + // Equivalent of `typeof` but with special handling for array and regexp. + function getPropType(propValue) { + var propType = typeof propValue; + if (Array.isArray(propValue)) { + return 'array'; + } + if (propValue instanceof RegExp) { + // Old webkits (at least until Android 4.0) return 'function' rather than + // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ + // passes PropTypes.object. + return 'object'; + } + if (isSymbol(propType, propValue)) { + return 'symbol'; + } + return propType; + } + + // This handles more types than `getPropType`. Only used for error messages. + // See `createPrimitiveTypeChecker`. + function getPreciseType(propValue) { + if (typeof propValue === 'undefined' || propValue === null) { + return '' + propValue; + } + var propType = getPropType(propValue); + if (propType === 'object') { + if (propValue instanceof Date) { + return 'date'; + } else if (propValue instanceof RegExp) { + return 'regexp'; + } + } + return propType; + } + + // Returns a string that is postfixed to a warning about an invalid type. + // For example, "undefined" or "of type array" + function getPostfixForTypeWarning(value) { + var type = getPreciseType(value); + switch (type) { + case 'array': + case 'object': + return 'an ' + type; + case 'boolean': + case 'date': + case 'regexp': + return 'a ' + type; + default: + return type; + } + } + + // Returns class name of the object, if any. + function getClassName(propValue) { + if (!propValue.constructor || !propValue.constructor.name) { + return ANONYMOUS; + } + return propValue.constructor.name; + } + + ReactPropTypes.checkPropTypes = checkPropTypes; + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; +}; + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2))) + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + + + +if (process.env.NODE_ENV !== 'production') { + var invariant = __webpack_require__(5); + var warning = __webpack_require__(8); + var ReactPropTypesSecret = __webpack_require__(6); + var loggedTypeFailures = {}; +} + +/** + * Assert that the values match with the type specs. + * Error messages are memorized and will only be shown once. + * + * @param {object} typeSpecs Map of name to a ReactPropType + * @param {object} values Runtime values that need to be type-checked + * @param {string} location e.g. "prop", "context", "child context" + * @param {string} componentName Name of the component for error messages. + * @param {?Function} getStack Returns the component stack. + * @private + */ +function checkPropTypes(typeSpecs, values, location, componentName, getStack) { + if (process.env.NODE_ENV !== 'production') { + for (var typeSpecName in typeSpecs) { + if (typeSpecs.hasOwnProperty(typeSpecName)) { + var error; + // Prop type validation may throw. In case they do, we don't want to + // fail the render phase where it didn't fail before. So we log it. + // After these have been cleaned up, we'll let them throw. + try { + // This is intentionally an invariant that gets caught. It's the same + // behavior as without this statement except with a better message. + invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName); + error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); + } catch (ex) { + error = ex; + } + warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error); + if (error instanceof Error && !(error.message in loggedTypeFailures)) { + // Only monitor this failure once because there tends to be a lot of the + // same error. + loggedTypeFailures[error.message] = true; + + var stack = getStack ? getStack() : ''; + + warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : ''); + } + } + } + } +} + +module.exports = checkPropTypes; + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2))) + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + + + +var emptyFunction = __webpack_require__(4); +var invariant = __webpack_require__(5); +var ReactPropTypesSecret = __webpack_require__(6); + +module.exports = function() { + function shim(props, propName, componentName, location, propFullName, secret) { + if (secret === ReactPropTypesSecret) { + // It is still safe when called from React. + return; + } + invariant( + false, + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use PropTypes.checkPropTypes() to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + }; + shim.isRequired = shim; + function getShim() { + return shim; + }; + // Important! + // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. + var ReactPropTypes = { + array: shim, + bool: shim, + func: shim, + number: shim, + object: shim, + string: shim, + symbol: shim, + + any: shim, + arrayOf: getShim, + element: shim, + instanceOf: getShim, + node: shim, + objectOf: getShim, + oneOf: getShim, + oneOfType: getShim, + shape: getShim + }; + + ReactPropTypes.checkPropTypes = emptyFunction; + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; +}; + + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __webpack_require__) { + +"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 _propTypes = __webpack_require__(0); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _react = __webpack_require__(1); + +var _react2 = _interopRequireDefault(_react); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - var lineStyle = { - stroke: color || style.stroke || 'slategray', - strokeWidth: style.strokeWidth || '1', - strokeLinejoin: style.strokeLinejoin || 'round', - strokeLinecap: style.strokeLinecap || 'round', - fill: 'none' - }; - var fillStyle = { - stroke: style.stroke || 'none', - strokeWidth: '0', - fillOpacity: style.fillOpacity || '.1', - fill: style.fill || color || 'slategray' - }; +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 SparklinesText = function (_React$Component) { + _inherits(SparklinesText, _React$Component); + + function SparklinesText() { + _classCallCheck(this, SparklinesText); + + return _possibleConstructorReturn(this, (SparklinesText.__proto__ || Object.getPrototypeOf(SparklinesText)).apply(this, arguments)); + } + + _createClass(SparklinesText, [{ + key: 'render', + value: function render() { + var _props = this.props, + point = _props.point, + text = _props.text, + fontSize = _props.fontSize, + fontFamily = _props.fontFamily; + var x = point.x, + y = point.y; return _react2.default.createElement( 'g', null, - _react2.default.createElement('path', { d: "M" + fillPoints.join(' '), style: fillStyle }), - _react2.default.createElement('path', { d: "M" + linePoints.join(' '), style: lineStyle }) + _react2.default.createElement( + 'text', + { x: x, y: y, fontFamily: fontFamily || "Verdana", fontSize: fontSize || 10 }, + text + ) ); } }]); - return SparklinesCurve; + return SparklinesText; }(_react2.default.Component); -SparklinesCurve.propTypes = { - color: _propTypes2.default.string, - style: _propTypes2.default.object +SparklinesText.propTypes = { + text: _propTypes2.default.string, + point: _propTypes2.default.object, + fontSize: _propTypes2.default.number, + fontFamily: _propTypes2.default.string }; -SparklinesCurve.defaultProps = { - style: {} +SparklinesText.defaultProps = { + text: '', + point: { x: 0, y: 0 } }; -exports.default = SparklinesCurve; +exports.default = SparklinesText; /***/ }), -/* 15 */ +/* 18 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { - value: true + 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; }; }(); @@ -971,92 +1494,93 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen 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 SparklinesLine = function (_React$Component) { - _inherits(SparklinesLine, _React$Component); - - function SparklinesLine() { - _classCallCheck(this, SparklinesLine); - - return _possibleConstructorReturn(this, (SparklinesLine.__proto__ || Object.getPrototypeOf(SparklinesLine)).apply(this, arguments)); - } - - _createClass(SparklinesLine, [{ - key: 'render', - value: function render() { - var _props = this.props, - data = _props.data, - points = _props.points, - width = _props.width, - height = _props.height, - margin = _props.margin, - color = _props.color, - style = _props.style, - onMouseMove = _props.onMouseMove; + _inherits(SparklinesLine, _React$Component); + function SparklinesLine() { + _classCallCheck(this, SparklinesLine); - var linePoints = points.map(function (p) { - return [p.x, p.y]; - }).reduce(function (a, b) { - return a.concat(b); - }); - - var closePolyPoints = [points[points.length - 1].x, height - margin, margin, height - margin, margin, points[0].y]; - - var fillPoints = linePoints.concat(closePolyPoints); + return _possibleConstructorReturn(this, (SparklinesLine.__proto__ || Object.getPrototypeOf(SparklinesLine)).apply(this, arguments)); + } - var lineStyle = { - stroke: color || style.stroke || 'slategray', - strokeWidth: style.strokeWidth || '1', - strokeLinejoin: style.strokeLinejoin || 'round', - strokeLinecap: style.strokeLinecap || 'round', - fill: 'none' - }; - var fillStyle = { - stroke: style.stroke || 'none', - strokeWidth: '0', - fillOpacity: style.fillOpacity || '.1', - fill: style.fill || color || 'slategray', - pointerEvents: 'auto' - }; + _createClass(SparklinesLine, [{ + key: 'render', + value: function render() { + var _props = this.props, + data = _props.data, + points = _props.points, + width = _props.width, + height = _props.height, + margin = _props.margin, + color = _props.color, + style = _props.style, + onMouseMove = _props.onMouseMove; + + + var linePoints = points.map(function (p) { + return [p.x, p.y]; + }).reduce(function (a, b) { + return a.concat(b); + }); - var tooltips = points.map(function (p, i) { - return _react2.default.createElement('circle', { - cx: p.x, - cy: p.y, - r: 2, - style: fillStyle, - onMouseEnter: function onMouseEnter(e) { - return onMouseMove('enter', data[i], p); - }, - onClick: function onClick(e) { - return onMouseMove('click', data[i], p); - } - }); - }); + var closePolyPoints = [points[points.length - 1].x, height - margin, margin, height - margin, margin, points[0].y]; + + var fillPoints = linePoints.concat(closePolyPoints); + + var lineStyle = { + stroke: color || style.stroke || 'slategray', + strokeWidth: style.strokeWidth || '1', + strokeLinejoin: style.strokeLinejoin || 'round', + strokeLinecap: style.strokeLinecap || 'round', + fill: 'none' + }; + var fillStyle = { + stroke: style.stroke || 'none', + strokeWidth: '0', + fillOpacity: style.fillOpacity || '.1', + fill: style.fill || color || 'slategray', + pointerEvents: 'auto' + }; + + var tooltips = points.map(function (p, i) { + return _react2.default.createElement('circle', { + key: i, + cx: p.x, + cy: p.y, + r: 2, + style: fillStyle, + onMouseEnter: onMouseMove ? function (e) { + return onMouseMove('enter', data[i], p); + } : null, + onClick: onMouseMove ? function (e) { + return onMouseMove('click', data[i], p); + } : null + }); + }); - return _react2.default.createElement( - 'g', - null, - tooltips, - _react2.default.createElement('polyline', { points: fillPoints.join(' '), style: fillStyle }), - _react2.default.createElement('polyline', { points: linePoints.join(' '), style: lineStyle }) - ); - } - }]); + return _react2.default.createElement( + 'g', + null, + tooltips, + _react2.default.createElement('polyline', { points: fillPoints.join(' '), style: fillStyle }), + _react2.default.createElement('polyline', { points: linePoints.join(' '), style: lineStyle }) + ); + } + }]); - return SparklinesLine; + return SparklinesLine; }(_react2.default.Component); SparklinesLine.propTypes = { - color: _propTypes2.default.string, - style: _propTypes2.default.object + color: _propTypes2.default.string, + style: _propTypes2.default.object }; SparklinesLine.defaultProps = { - style: {} + style: {} }; exports.default = SparklinesLine; /***/ }), -/* 16 */ +/* 19 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -1076,14 +1600,6 @@ var _react = __webpack_require__(1); var _react2 = _interopRequireDefault(_react); -var _mean = __webpack_require__(3); - -var _mean2 = _interopRequireDefault(_mean); - -var _stdev = __webpack_require__(9); - -var _stdev2 = _interopRequireDefault(_stdev); - 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"); } } @@ -1092,56 +1608,104 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen 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 SparklinesNormalBand = function (_React$Component) { - _inherits(SparklinesNormalBand, _React$Component); +var SparklinesCurve = function (_React$Component) { + _inherits(SparklinesCurve, _React$Component); - function SparklinesNormalBand() { - _classCallCheck(this, SparklinesNormalBand); + function SparklinesCurve() { + _classCallCheck(this, SparklinesCurve); - return _possibleConstructorReturn(this, (SparklinesNormalBand.__proto__ || Object.getPrototypeOf(SparklinesNormalBand)).apply(this, arguments)); + return _possibleConstructorReturn(this, (SparklinesCurve.__proto__ || Object.getPrototypeOf(SparklinesCurve)).apply(this, arguments)); } - _createClass(SparklinesNormalBand, [{ + _createClass(SparklinesCurve, [{ key: 'render', value: function render() { var _props = this.props, points = _props.points, + width = _props.width, + height = _props.height, margin = _props.margin, - style = _props.style; - + color = _props.color, + style = _props.style, + _props$divisor = _props.divisor, + divisor = _props$divisor === undefined ? 0.25 : _props$divisor; - var ypoints = points.map(function (p) { - return p.y; + var prev = void 0; + var curve = function curve(p) { + var res = void 0; + if (!prev) { + res = [p.x, p.y]; + } else { + var len = (p.x - prev.x) * divisor; + res = ["C", + //x1 + prev.x + len, + //y1 + prev.y, + //x2, + p.x - len, + //y2, + p.y, + //x, + p.x, + //y + p.y]; + } + prev = p; + return res; + }; + var linePoints = points.map(function (p) { + return curve(p); + }).reduce(function (a, b) { + return a.concat(b); }); - var dataMean = (0, _mean2.default)(ypoints); - var dataStdev = (0, _stdev2.default)(ypoints); + var closePolyPoints = ["L" + points[points.length - 1].x, height - margin, margin, height - margin, margin, points[0].y]; + var fillPoints = linePoints.concat(closePolyPoints); - return _react2.default.createElement('rect', { x: points[0].x, y: dataMean - dataStdev + margin, - width: points[points.length - 1].x - points[0].x, height: _stdev2.default * 2, - style: style }); + var lineStyle = { + stroke: color || style.stroke || 'slategray', + strokeWidth: style.strokeWidth || '1', + strokeLinejoin: style.strokeLinejoin || 'round', + strokeLinecap: style.strokeLinecap || 'round', + fill: 'none' + }; + var fillStyle = { + stroke: style.stroke || 'none', + strokeWidth: '0', + fillOpacity: style.fillOpacity || '.1', + fill: style.fill || color || 'slategray' + }; + + return _react2.default.createElement( + 'g', + null, + _react2.default.createElement('path', { d: "M" + fillPoints.join(' '), style: fillStyle }), + _react2.default.createElement('path', { d: "M" + linePoints.join(' '), style: lineStyle }) + ); } }]); - return SparklinesNormalBand; + return SparklinesCurve; }(_react2.default.Component); -SparklinesNormalBand.propTypes = { +SparklinesCurve.propTypes = { + color: _propTypes2.default.string, style: _propTypes2.default.object }; -SparklinesNormalBand.defaultProps = { - style: { fill: 'red', fillOpacity: .1 } +SparklinesCurve.defaultProps = { + style: {} }; -exports.default = SparklinesNormalBand; +exports.default = SparklinesCurve; /***/ }), -/* 17 */ +/* 20 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { - value: true + 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; }; }(); @@ -1154,12 +1718,6 @@ var _react = __webpack_require__(1); var _react2 = _interopRequireDefault(_react); -var _dataProcessing = __webpack_require__(21); - -var dataProcessing = _interopRequireWildcard(_dataProcessing); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - 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"); } } @@ -1168,54 +1726,68 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen 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 SparklinesReferenceLine = function (_React$Component) { - _inherits(SparklinesReferenceLine, _React$Component); - - function SparklinesReferenceLine() { - _classCallCheck(this, SparklinesReferenceLine); - - return _possibleConstructorReturn(this, (SparklinesReferenceLine.__proto__ || Object.getPrototypeOf(SparklinesReferenceLine)).apply(this, arguments)); - } - - _createClass(SparklinesReferenceLine, [{ - key: 'render', - value: function render() { - var _props = this.props, - points = _props.points, - margin = _props.margin, - type = _props.type, - style = _props.style, - value = _props.value; +var SparklinesBars = function (_React$Component) { + _inherits(SparklinesBars, _React$Component); + function SparklinesBars() { + _classCallCheck(this, SparklinesBars); - var ypoints = points.map(function (p) { - return p.y; - }); - var y = type == 'custom' ? value : dataProcessing[type](ypoints); + return _possibleConstructorReturn(this, (SparklinesBars.__proto__ || Object.getPrototypeOf(SparklinesBars)).apply(this, arguments)); + } - return _react2.default.createElement('line', { - x1: points[0].x, y1: y + margin, - x2: points[points.length - 1].x, y2: y + margin, - style: style }); - } - }]); + _createClass(SparklinesBars, [{ + key: 'render', + value: function render() { + var _this2 = this; + + var _props = this.props, + points = _props.points, + height = _props.height, + style = _props.style, + barWidth = _props.barWidth, + margin = _props.margin, + onMouseMove = _props.onMouseMove; + + var strokeWidth = 1 * (style && style.strokeWidth || 0); + var marginWidth = margin ? 2 * margin : 0; + var width = barWidth || (points && points.length >= 2 ? Math.max(0, points[1].x - points[0].x - strokeWidth - marginWidth) : 0); + + return _react2.default.createElement( + 'g', + { transform: 'scale(1,-1)' }, + points.map(function (p, i) { + return _react2.default.createElement('rect', { + key: i, + x: p.x - (width + strokeWidth) / 2, + y: -height, + width: width, + height: Math.max(0, height - p.y), + style: style, + onMouseMove: onMouseMove && onMouseMove.bind(_this2, p) + }); + }) + ); + } + }]); - return SparklinesReferenceLine; + return SparklinesBars; }(_react2.default.Component); - -SparklinesReferenceLine.propTypes = { - type: _propTypes2.default.oneOf(['max', 'min', 'mean', 'avg', 'median', 'custom']), - value: _propTypes2.default.number, - style: _propTypes2.default.object + +SparklinesBars.propTypes = { + points: _propTypes2.default.arrayOf(_propTypes2.default.object), + height: _propTypes2.default.number, + style: _propTypes2.default.object, + barWidth: _propTypes2.default.number, + margin: _propTypes2.default.number, + onMouseMove: _propTypes2.default.func }; -SparklinesReferenceLine.defaultProps = { - type: 'mean', - style: { stroke: 'red', strokeOpacity: .75, strokeDasharray: '2, 2' } +SparklinesBars.defaultProps = { + style: { fill: 'slategray' } }; -exports.default = SparklinesReferenceLine; +exports.default = SparklinesBars; /***/ }), -/* 18 */ +/* 21 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -1314,7 +1886,7 @@ SparklinesSpots.defaultProps = { exports.default = SparklinesSpots; /***/ }), -/* 19 */ +/* 22 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -1334,6 +1906,12 @@ var _react = __webpack_require__(1); var _react2 = _interopRequireDefault(_react); +var _dataProcessing = __webpack_require__(23); + +var dataProcessing = _interopRequireWildcard(_dataProcessing); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + 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"); } } @@ -1342,990 +1920,296 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen 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 SparklinesText = function (_React$Component) { - _inherits(SparklinesText, _React$Component); +var SparklinesReferenceLine = function (_React$Component) { + _inherits(SparklinesReferenceLine, _React$Component); - function SparklinesText() { - _classCallCheck(this, SparklinesText); + function SparklinesReferenceLine() { + _classCallCheck(this, SparklinesReferenceLine); - return _possibleConstructorReturn(this, (SparklinesText.__proto__ || Object.getPrototypeOf(SparklinesText)).apply(this, arguments)); + return _possibleConstructorReturn(this, (SparklinesReferenceLine.__proto__ || Object.getPrototypeOf(SparklinesReferenceLine)).apply(this, arguments)); } - _createClass(SparklinesText, [{ + _createClass(SparklinesReferenceLine, [{ key: 'render', value: function render() { var _props = this.props, - point = _props.point, - text = _props.text, - fontSize = _props.fontSize, - fontFamily = _props.fontFamily; - var x = point.x, - y = point.y; - - return _react2.default.createElement( - 'g', - null, - _react2.default.createElement( - 'text', - { x: x, y: y, fontFamily: fontFamily || "Verdana", fontSize: fontSize || 10 }, - text - ) - ); - } - }]); - - return SparklinesText; -}(_react2.default.Component); - -SparklinesText.propTypes = { - text: _propTypes2.default.string, - point: _propTypes2.default.object, - fontSize: _propTypes2.default.number, - fontFamily: _propTypes2.default.string -}; -SparklinesText.defaultProps = { - text: '', - point: { x: 0, y: 0 } -}; -exports.default = SparklinesText; - -/***/ }), -/* 20 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _min = __webpack_require__(4); - -var _min2 = _interopRequireDefault(_min); - -var _max = __webpack_require__(8); - -var _max2 = _interopRequireDefault(_max); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (_ref) { - var data = _ref.data, - limit = _ref.limit, - _ref$width = _ref.width, - width = _ref$width === undefined ? 1 : _ref$width, - _ref$height = _ref.height, - height = _ref$height === undefined ? 1 : _ref$height, - _ref$margin = _ref.margin, - margin = _ref$margin === undefined ? 0 : _ref$margin, - _ref$max = _ref.max, - max = _ref$max === undefined ? (0, _max2.default)(data) : _ref$max, - _ref$min = _ref.min, - min = _ref$min === undefined ? (0, _min2.default)(data) : _ref$min; - - - var len = data.length; - - if (limit && limit < len) { - data = data.slice(len - limit); - } - - var vfactor = (height - margin * 2) / (max - min || 2); - var hfactor = (width - margin * 2) / ((limit || len) - (len > 1 ? 1 : 0)); - - return data.map(function (d, i) { - return { - x: i * hfactor + margin, - y: (max === min ? 1 : max - d) * vfactor + margin - }; - }); -}; - -/***/ }), -/* 21 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.variance = exports.stdev = exports.median = exports.midRange = exports.avg = exports.mean = exports.max = exports.min = undefined; - -var _min2 = __webpack_require__(4); - -var _min3 = _interopRequireDefault(_min2); - -var _mean2 = __webpack_require__(3); - -var _mean3 = _interopRequireDefault(_mean2); - -var _midRange2 = __webpack_require__(23); - -var _midRange3 = _interopRequireDefault(_midRange2); - -var _median2 = __webpack_require__(22); - -var _median3 = _interopRequireDefault(_median2); - -var _stdev2 = __webpack_require__(9); - -var _stdev3 = _interopRequireDefault(_stdev2); - -var _variance2 = __webpack_require__(24); - -var _variance3 = _interopRequireDefault(_variance2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.min = _min3.default; -exports.max = _min3.default; -exports.mean = _mean3.default; -exports.avg = _mean3.default; -exports.midRange = _midRange3.default; -exports.median = _median3.default; -exports.stdev = _stdev3.default; -exports.variance = _variance3.default; - -/***/ }), -/* 22 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -exports.default = function (data) { - return data.sort(function (a, b) { - return a - b; - })[Math.floor(data.length / 2)]; -}; - -/***/ }), -/* 23 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _min = __webpack_require__(4); - -var _min2 = _interopRequireDefault(_min); - -var _max = __webpack_require__(8); - -var _max2 = _interopRequireDefault(_max); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (data) { - return (0, _max2.default)(data) - (0, _min2.default)(data) / 2; -}; - -/***/ }), -/* 24 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _mean = __webpack_require__(3); - -var _mean2 = _interopRequireDefault(_mean); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (data) { - var dataMean = (0, _mean2.default)(data); - var sq = data.map(function (n) { - return Math.pow(n - dataMean, 2); - }); - return (0, _mean2.default)(sq); -}; - -/***/ }), -/* 25 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @typechecks - * - */ - -/*eslint-disable no-self-compare */ - - - -var hasOwnProperty = Object.prototype.hasOwnProperty; - -/** - * inlined Object.is polyfill to avoid requiring consumers ship their own - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is - */ -function is(x, y) { - // SameValue algorithm - if (x === y) { - // Steps 1-5, 7-10 - // Steps 6.b-6.e: +0 != -0 - // Added the nonzero y check to make Flow happy, but it is redundant - return x !== 0 || y !== 0 || 1 / x === 1 / y; - } else { - // Step 6.a: NaN == NaN - return x !== x && y !== y; - } -} - -/** - * Performs equality by iterating through keys on an object and returning false - * when any key has values which are not strictly equal between the arguments. - * Returns true when the values of all keys are strictly equal. - */ -function shallowEqual(objA, objB) { - if (is(objA, objB)) { - return true; - } - - if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) { - return false; - } + points = _props.points, + margin = _props.margin, + type = _props.type, + style = _props.style, + value = _props.value; - var keysA = Object.keys(objA); - var keysB = Object.keys(objB); - if (keysA.length !== keysB.length) { - return false; - } + var ypoints = points.map(function (p) { + return p.y; + }); + var y = type == 'custom' ? value : dataProcessing[type](ypoints); - // Test for A's keys different from B. - for (var i = 0; i < keysA.length; i++) { - if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) { - return false; - } - } + return _react2.default.createElement('line', { + x1: points[0].x, y1: y + margin, + x2: points[points.length - 1].x, y2: y + margin, + style: style }); + } + }]); - return true; -} + return SparklinesReferenceLine; +}(_react2.default.Component); -module.exports = shallowEqual; +SparklinesReferenceLine.propTypes = { + type: _propTypes2.default.oneOf(['max', 'min', 'mean', 'avg', 'median', 'custom']), + value: _propTypes2.default.number, + style: _propTypes2.default.object +}; +SparklinesReferenceLine.defaultProps = { + type: 'mean', + style: { stroke: 'red', strokeOpacity: .75, strokeDasharray: '2, 2' } +}; +exports.default = SparklinesReferenceLine; /***/ }), -/* 26 */ +/* 23 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - - -if (process.env.NODE_ENV !== 'production') { - var invariant = __webpack_require__(7); - var warning = __webpack_require__(10); - var ReactPropTypesSecret = __webpack_require__(5); - var loggedTypeFailures = {}; -} -/** - * Assert that the values match with the type specs. - * Error messages are memorized and will only be shown once. - * - * @param {object} typeSpecs Map of name to a ReactPropType - * @param {object} values Runtime values that need to be type-checked - * @param {string} location e.g. "prop", "context", "child context" - * @param {string} componentName Name of the component for error messages. - * @param {?Function} getStack Returns the component stack. - * @private - */ -function checkPropTypes(typeSpecs, values, location, componentName, getStack) { - if (process.env.NODE_ENV !== 'production') { - for (var typeSpecName in typeSpecs) { - if (typeSpecs.hasOwnProperty(typeSpecName)) { - var error; - // Prop type validation may throw. In case they do, we don't want to - // fail the render phase where it didn't fail before. So we log it. - // After these have been cleaned up, we'll let them throw. - try { - // This is intentionally an invariant that gets caught. It's the same - // behavior as without this statement except with a better message. - invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName); - error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); - } catch (ex) { - error = ex; - } - warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error); - if (error instanceof Error && !(error.message in loggedTypeFailures)) { - // Only monitor this failure once because there tends to be a lot of the - // same error. - loggedTypeFailures[error.message] = true; +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.variance = exports.stdev = exports.median = exports.midRange = exports.avg = exports.mean = exports.max = exports.min = undefined; - var stack = getStack ? getStack() : ''; +var _min2 = __webpack_require__(7); - warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : ''); - } - } - } - } -} +var _min3 = _interopRequireDefault(_min2); -module.exports = checkPropTypes; +var _mean2 = __webpack_require__(3); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2))) +var _mean3 = _interopRequireDefault(_mean2); -/***/ }), -/* 27 */ -/***/ (function(module, exports, __webpack_require__) { +var _midRange2 = __webpack_require__(24); -"use strict"; -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ +var _midRange3 = _interopRequireDefault(_midRange2); +var _median2 = __webpack_require__(25); +var _median3 = _interopRequireDefault(_median2); -var emptyFunction = __webpack_require__(6); -var invariant = __webpack_require__(7); -var ReactPropTypesSecret = __webpack_require__(5); +var _stdev2 = __webpack_require__(10); -module.exports = function() { - function shim(props, propName, componentName, location, propFullName, secret) { - if (secret === ReactPropTypesSecret) { - // It is still safe when called from React. - return; - } - invariant( - false, - 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + - 'Use PropTypes.checkPropTypes() to call them. ' + - 'Read more at http://fb.me/use-check-prop-types' - ); - }; - shim.isRequired = shim; - function getShim() { - return shim; - }; - // Important! - // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. - var ReactPropTypes = { - array: shim, - bool: shim, - func: shim, - number: shim, - object: shim, - string: shim, - symbol: shim, +var _stdev3 = _interopRequireDefault(_stdev2); - any: shim, - arrayOf: getShim, - element: shim, - instanceOf: getShim, - node: shim, - objectOf: getShim, - oneOf: getShim, - oneOfType: getShim, - shape: getShim - }; +var _variance2 = __webpack_require__(26); - ReactPropTypes.checkPropTypes = emptyFunction; - ReactPropTypes.PropTypes = ReactPropTypes; +var _variance3 = _interopRequireDefault(_variance2); - return ReactPropTypes; -}; +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +exports.min = _min3.default; +exports.max = _min3.default; +exports.mean = _mean3.default; +exports.avg = _mean3.default; +exports.midRange = _midRange3.default; +exports.median = _median3.default; +exports.stdev = _stdev3.default; +exports.variance = _variance3.default; /***/ }), -/* 28 */ +/* 24 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -var emptyFunction = __webpack_require__(6); -var invariant = __webpack_require__(7); -var warning = __webpack_require__(10); - -var ReactPropTypesSecret = __webpack_require__(5); -var checkPropTypes = __webpack_require__(26); - -module.exports = function(isValidElement, throwOnDirectAccess) { - /* global Symbol */ - var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; - var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. +Object.defineProperty(exports, "__esModule", { + value: true +}); - /** - * Returns the iterator method function contained on the iterable object. - * - * Be sure to invoke the function with the iterable as context: - * - * var iteratorFn = getIteratorFn(myIterable); - * if (iteratorFn) { - * var iterator = iteratorFn.call(myIterable); - * ... - * } - * - * @param {?object} maybeIterable - * @return {?function} - */ - function getIteratorFn(maybeIterable) { - var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); - if (typeof iteratorFn === 'function') { - return iteratorFn; - } - } +var _min = __webpack_require__(7); - /** - * Collection of methods that allow declaration and validation of props that are - * supplied to React components. Example usage: - * - * var Props = require('ReactPropTypes'); - * var MyArticle = React.createClass({ - * propTypes: { - * // An optional string prop named "description". - * description: Props.string, - * - * // A required enum prop named "category". - * category: Props.oneOf(['News','Photos']).isRequired, - * - * // A prop named "dialog" that requires an instance of Dialog. - * dialog: Props.instanceOf(Dialog).isRequired - * }, - * render: function() { ... } - * }); - * - * A more formal specification of how these methods are used: - * - * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) - * decl := ReactPropTypes.{type}(.isRequired)? - * - * Each and every declaration produces a function with the same signature. This - * allows the creation of custom validation functions. For example: - * - * var MyLink = React.createClass({ - * propTypes: { - * // An optional string or URI prop named "href". - * href: function(props, propName, componentName) { - * var propValue = props[propName]; - * if (propValue != null && typeof propValue !== 'string' && - * !(propValue instanceof URI)) { - * return new Error( - * 'Expected a string or an URI for ' + propName + ' in ' + - * componentName - * ); - * } - * } - * }, - * render: function() {...} - * }); - * - * @internal - */ +var _min2 = _interopRequireDefault(_min); - var ANONYMOUS = '<>'; +var _max = __webpack_require__(9); - // Important! - // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. - var ReactPropTypes = { - array: createPrimitiveTypeChecker('array'), - bool: createPrimitiveTypeChecker('boolean'), - func: createPrimitiveTypeChecker('function'), - number: createPrimitiveTypeChecker('number'), - object: createPrimitiveTypeChecker('object'), - string: createPrimitiveTypeChecker('string'), - symbol: createPrimitiveTypeChecker('symbol'), +var _max2 = _interopRequireDefault(_max); - any: createAnyTypeChecker(), - arrayOf: createArrayOfTypeChecker, - element: createElementTypeChecker(), - instanceOf: createInstanceTypeChecker, - node: createNodeChecker(), - objectOf: createObjectOfTypeChecker, - oneOf: createEnumTypeChecker, - oneOfType: createUnionTypeChecker, - shape: createShapeTypeChecker - }; +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - /** - * inlined Object.is polyfill to avoid requiring consumers ship their own - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is - */ - /*eslint-disable no-self-compare*/ - function is(x, y) { - // SameValue algorithm - if (x === y) { - // Steps 1-5, 7-10 - // Steps 6.b-6.e: +0 != -0 - return x !== 0 || 1 / x === 1 / y; - } else { - // Step 6.a: NaN == NaN - return x !== x && y !== y; - } - } - /*eslint-enable no-self-compare*/ +exports.default = function (data) { + return (0, _max2.default)(data) - (0, _min2.default)(data) / 2; +}; - /** - * We use an Error-like object for backward compatibility as people may call - * PropTypes directly and inspect their output. However, we don't use real - * Errors anymore. We don't inspect their stack anyway, and creating them - * is prohibitively expensive if they are created too often, such as what - * happens in oneOfType() for any type before the one that matched. - */ - function PropTypeError(message) { - this.message = message; - this.stack = ''; - } - // Make `instanceof Error` still work for returned errors. - PropTypeError.prototype = Error.prototype; +/***/ }), +/* 25 */ +/***/ (function(module, exports, __webpack_require__) { - function createChainableTypeChecker(validate) { - if (process.env.NODE_ENV !== 'production') { - var manualPropTypeCallCache = {}; - var manualPropTypeWarningCount = 0; - } - function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { - componentName = componentName || ANONYMOUS; - propFullName = propFullName || propName; +"use strict"; - if (secret !== ReactPropTypesSecret) { - if (throwOnDirectAccess) { - // New behavior only for users of `prop-types` package - invariant( - false, - 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + - 'Use `PropTypes.checkPropTypes()` to call them. ' + - 'Read more at http://fb.me/use-check-prop-types' - ); - } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') { - // Old behavior for people using React.PropTypes - var cacheKey = componentName + ':' + propName; - if ( - !manualPropTypeCallCache[cacheKey] && - // Avoid spamming the console because they are often not actionable except for lib authors - manualPropTypeWarningCount < 3 - ) { - warning( - false, - 'You are manually calling a React.PropTypes validation ' + - 'function for the `%s` prop on `%s`. This is deprecated ' + - 'and will throw in the standalone `prop-types` package. ' + - 'You may be seeing this warning due to a third-party PropTypes ' + - 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.', - propFullName, - componentName - ); - manualPropTypeCallCache[cacheKey] = true; - manualPropTypeWarningCount++; - } - } - } - if (props[propName] == null) { - if (isRequired) { - if (props[propName] === null) { - return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); - } - return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); - } - return null; - } else { - return validate(props, propName, componentName, location, propFullName); - } - } - var chainedCheckType = checkType.bind(null, false); - chainedCheckType.isRequired = checkType.bind(null, true); +Object.defineProperty(exports, "__esModule", { + value: true +}); - return chainedCheckType; - } +exports.default = function (data) { + return data.sort(function (a, b) { + return a - b; + })[Math.floor(data.length / 2)]; +}; - function createPrimitiveTypeChecker(expectedType) { - function validate(props, propName, componentName, location, propFullName, secret) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== expectedType) { - // `propValue` being instance of, say, date/regexp, pass the 'object' - // check, but we can offer a more precise error message here rather than - // 'of type `object`'. - var preciseType = getPreciseType(propValue); +/***/ }), +/* 26 */ +/***/ (function(module, exports, __webpack_require__) { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); - } - return null; - } - return createChainableTypeChecker(validate); - } +"use strict"; - function createAnyTypeChecker() { - return createChainableTypeChecker(emptyFunction.thatReturnsNull); - } - function createArrayOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); - } - var propValue = props[propName]; - if (!Array.isArray(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); - } - for (var i = 0; i < propValue.length; i++) { - var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); - if (error instanceof Error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); - } +Object.defineProperty(exports, "__esModule", { + value: true +}); - function createElementTypeChecker() { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - if (!isValidElement(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); - } - return null; - } - return createChainableTypeChecker(validate); - } +var _mean = __webpack_require__(3); - function createInstanceTypeChecker(expectedClass) { - function validate(props, propName, componentName, location, propFullName) { - if (!(props[propName] instanceof expectedClass)) { - var expectedClassName = expectedClass.name || ANONYMOUS; - var actualClassName = getClassName(props[propName]); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); - } - return null; - } - return createChainableTypeChecker(validate); - } +var _mean2 = _interopRequireDefault(_mean); - function createEnumTypeChecker(expectedValues) { - if (!Array.isArray(expectedValues)) { - process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0; - return emptyFunction.thatReturnsNull; - } +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - for (var i = 0; i < expectedValues.length; i++) { - if (is(propValue, expectedValues[i])) { - return null; - } - } +exports.default = function (data) { + var dataMean = (0, _mean2.default)(data); + var sq = data.map(function (n) { + return Math.pow(n - dataMean, 2); + }); + return (0, _mean2.default)(sq); +}; - var valuesString = JSON.stringify(expectedValues); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); - } - return createChainableTypeChecker(validate); - } +/***/ }), +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { - function createObjectOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); - } - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); - } - for (var key in propValue) { - if (propValue.hasOwnProperty(key)) { - var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error instanceof Error) { - return error; - } - } - } - return null; - } - return createChainableTypeChecker(validate); - } +"use strict"; - function createUnionTypeChecker(arrayOfTypeCheckers) { - if (!Array.isArray(arrayOfTypeCheckers)) { - process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; - return emptyFunction.thatReturnsNull; - } - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - if (typeof checker !== 'function') { - warning( - false, - 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' + - 'received %s at index %s.', - getPostfixForTypeWarning(checker), - i - ); - return emptyFunction.thatReturnsNull; - } - } +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 _propTypes = __webpack_require__(0); - function validate(props, propName, componentName, location, propFullName) { - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) { - return null; - } - } +var _propTypes2 = _interopRequireDefault(_propTypes); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); - } - return createChainableTypeChecker(validate); - } +var _react = __webpack_require__(1); - function createNodeChecker() { - function validate(props, propName, componentName, location, propFullName) { - if (!isNode(props[propName])) { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); - } - return null; - } - return createChainableTypeChecker(validate); - } +var _react2 = _interopRequireDefault(_react); - function createShapeTypeChecker(shapeTypes) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); - } - for (var key in shapeTypes) { - var checker = shapeTypes[key]; - if (!checker) { - continue; - } - var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); - } +var _mean = __webpack_require__(3); - function isNode(propValue) { - switch (typeof propValue) { - case 'number': - case 'string': - case 'undefined': - return true; - case 'boolean': - return !propValue; - case 'object': - if (Array.isArray(propValue)) { - return propValue.every(isNode); - } - if (propValue === null || isValidElement(propValue)) { - return true; - } +var _mean2 = _interopRequireDefault(_mean); - var iteratorFn = getIteratorFn(propValue); - if (iteratorFn) { - var iterator = iteratorFn.call(propValue); - var step; - if (iteratorFn !== propValue.entries) { - while (!(step = iterator.next()).done) { - if (!isNode(step.value)) { - return false; - } - } - } else { - // Iterator will provide entry [k,v] tuples rather than values. - while (!(step = iterator.next()).done) { - var entry = step.value; - if (entry) { - if (!isNode(entry[1])) { - return false; - } - } - } - } - } else { - return false; - } +var _stdev = __webpack_require__(10); - return true; - default: - return false; - } - } +var _stdev2 = _interopRequireDefault(_stdev); - function isSymbol(propType, propValue) { - // Native Symbol. - if (propType === 'symbol') { - return true; - } +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' - if (propValue['@@toStringTag'] === 'Symbol') { - return true; - } +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - // Fallback for non-spec compliant Symbols which are polyfilled. - if (typeof Symbol === 'function' && propValue instanceof Symbol) { - return true; - } +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; } - return false; - } +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; } - // Equivalent of `typeof` but with special handling for array and regexp. - function getPropType(propValue) { - var propType = typeof propValue; - if (Array.isArray(propValue)) { - return 'array'; - } - if (propValue instanceof RegExp) { - // Old webkits (at least until Android 4.0) return 'function' rather than - // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ - // passes PropTypes.object. - return 'object'; - } - if (isSymbol(propType, propValue)) { - return 'symbol'; - } - return propType; - } +var SparklinesNormalBand = function (_React$Component) { + _inherits(SparklinesNormalBand, _React$Component); - // This handles more types than `getPropType`. Only used for error messages. - // See `createPrimitiveTypeChecker`. - function getPreciseType(propValue) { - if (typeof propValue === 'undefined' || propValue === null) { - return '' + propValue; - } - var propType = getPropType(propValue); - if (propType === 'object') { - if (propValue instanceof Date) { - return 'date'; - } else if (propValue instanceof RegExp) { - return 'regexp'; - } - } - return propType; - } + function SparklinesNormalBand() { + _classCallCheck(this, SparklinesNormalBand); - // Returns a string that is postfixed to a warning about an invalid type. - // For example, "undefined" or "of type array" - function getPostfixForTypeWarning(value) { - var type = getPreciseType(value); - switch (type) { - case 'array': - case 'object': - return 'an ' + type; - case 'boolean': - case 'date': - case 'regexp': - return 'a ' + type; - default: - return type; + return _possibleConstructorReturn(this, (SparklinesNormalBand.__proto__ || Object.getPrototypeOf(SparklinesNormalBand)).apply(this, arguments)); } - } - // Returns class name of the object, if any. - function getClassName(propValue) { - if (!propValue.constructor || !propValue.constructor.name) { - return ANONYMOUS; - } - return propValue.constructor.name; - } + _createClass(SparklinesNormalBand, [{ + key: 'render', + value: function render() { + var _props = this.props, + points = _props.points, + margin = _props.margin, + style = _props.style; - ReactPropTypes.checkPropTypes = checkPropTypes; - ReactPropTypes.PropTypes = ReactPropTypes; - return ReactPropTypes; -}; + var ypoints = points.map(function (p) { + return p.y; + }); + var dataMean = (0, _mean2.default)(ypoints); + var dataStdev = (0, _stdev2.default)(ypoints); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2))) + return _react2.default.createElement('rect', { x: points[0].x, y: dataMean - dataStdev + margin, + width: points[points.length - 1].x - points[0].x, height: _stdev2.default * 2, + style: style }); + } + }]); -/***/ }), -/* 29 */ -/***/ (function(module, exports, __webpack_require__) { + return SparklinesNormalBand; +}(_react2.default.Component); -module.exports = __webpack_require__(30); +SparklinesNormalBand.propTypes = { + style: _propTypes2.default.object +}; +SparklinesNormalBand.defaultProps = { + style: { fill: 'red', fillOpacity: .1 } +}; +exports.default = SparklinesNormalBand; /***/ }), -/* 30 */ +/* 28 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ +Object.defineProperty(exports, "__esModule", { + value: true +}); -var shallowEqual = __webpack_require__(25); +var _min = __webpack_require__(7); -/** - * Does a shallow comparison for props and state. - * See ReactComponentWithPureRenderMixin - * See also https://facebook.github.io/react/docs/shallow-compare.html - */ -function shallowCompare(instance, nextProps, nextState) { - return !shallowEqual(instance.props, nextProps) || !shallowEqual(instance.state, nextState); -} +var _min2 = _interopRequireDefault(_min); -module.exports = shallowCompare; +var _max = __webpack_require__(9); -/***/ }), -/* 31 */ -/***/ (function(module, exports, __webpack_require__) { +var _max2 = _interopRequireDefault(_max); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = function (_ref) { + var data = _ref.data, + limit = _ref.limit, + _ref$width = _ref.width, + width = _ref$width === undefined ? 1 : _ref$width, + _ref$height = _ref.height, + height = _ref$height === undefined ? 1 : _ref$height, + _ref$margin = _ref.margin, + margin = _ref$margin === undefined ? 0 : _ref$margin, + _ref$max = _ref.max, + max = _ref$max === undefined ? (0, _max2.default)(data) : _ref$max, + _ref$min = _ref.min, + min = _ref$min === undefined ? (0, _min2.default)(data) : _ref$min; -module.exports = __webpack_require__(11); + var len = data.length; + + if (limit && limit < len) { + data = data.slice(len - limit); + } + + var vfactor = (height - margin * 2) / (max - min || 2); + var hfactor = (width - margin * 2) / ((limit || len) - (len > 1 ? 1 : 0)); + + return data.map(function (d, i) { + return { + x: i * hfactor + margin, + y: (max === min ? 1 : max - d) * vfactor + margin + }; + }); +}; /***/ }) /******/ ]); diff --git a/src/SparklinesLine.js b/src/SparklinesLine.js index 42f6d7a..c9d653e 100644 --- a/src/SparklinesLine.js +++ b/src/SparklinesLine.js @@ -9,7 +9,6 @@ export default class SparklinesLine extends React.Component { static defaultProps = { style: {}, - onMouseMove: () => {}, }; render() { @@ -51,8 +50,8 @@ export default class SparklinesLine extends React.Component { cy={p.y} r={2} style={fillStyle} - onMouseEnter={e => onMouseMove('enter', data[i], p)} - onClick={e => onMouseMove('click', data[i], p)} + onMouseEnter={onMouseMove ? e => onMouseMove('enter', data[i], p) : null} + onClick={onMouseMove ? e => onMouseMove('click', data[i], p) : null} /> ); });