| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | 
							- // SPARKLINE
 
- // -----------------------------------
 
- import React, { Component } from 'react';
 
- import PropTypes from 'prop-types';
 
- import $ from 'jquery';
 
- const RESIZE_EVENT = 'resize.sparkline';
 
- /**
 
-  * Wrapper for for jquery-sparkline plugin
 
-  */
 
- export default class Sparkline extends Component {
 
-     static propTypes = {
 
-         /** sparkline options object */
 
-         options: PropTypes.object.isRequired,
 
-         /** tag to use, defaults to div */
 
-         tag: PropTypes.string,
 
-         /** values to display, allows array or csv string */
 
-         values: PropTypes.oneOfType([
 
-             PropTypes.string.isRequired,
 
-             PropTypes.array.isRequired
 
-         ])
 
-     }
 
-     static defaultProps = {
 
-         options: {},
 
-         tag: 'div'
 
-     }
 
-     state = {
 
-         values: this.props.values,
 
-         options: this.props.options
 
-     }
 
-     normalizeParams() {
 
-         let { options, values } = this.state;
 
-         options.disableHiddenCheck = true; // allow draw when initially is not visible
 
-         options.type = options.type || 'bar'; // default chart is bar
 
-         values = Array.isArray(values) ? values : values.split(','); // support array of csv strings
 
-         this.setState({ options, values });
 
-     }
 
-     componentDidMount() {
 
-         this.normalizeParams();
 
-         // Sparklines
 
-         require('jquery-sparkline/jquery.sparkline.min.js');
 
-         // init sparkline
 
-         $(this.element).sparkline(this.state.values, this.state.options);
 
-         // allow responsive
 
-         if (this.state.options.resize) {
 
-             $(window).on(RESIZE_EVENT, () => {
 
-                 $(this.element).sparkline(this.state.values, this.state.options);
 
-             });
 
-         }
 
-     }
 
-     componentWillUnmount() {
 
-         $(window).off(RESIZE_EVENT);
 
-         $(this.element).sparkline('destroy');
 
-     }
 
-     setRef = node => {
 
-         this.element = node;
 
-     }
 
-     render() {
 
-         const {tag:Tag} = this.props;
 
-         return (
 
-             <Tag ref={this.setRef} {...this.props}></Tag>
 
-         )
 
-     }
 
- }
 
 
  |