chukwa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ey...@apache.org
Subject [5/9] chukwa git commit: CHUKWA-778. Added pie chart, circle chart and timeline javascripts. (Eric Yang)
Date Sun, 13 Sep 2015 20:27:58 GMT
http://git-wip-us.apache.org/repos/asf/chukwa/blob/666dbb9c/src/main/web/hicc/js/chartist.min.js.map
----------------------------------------------------------------------
diff --git a/src/main/web/hicc/js/chartist.min.js.map b/src/main/web/hicc/js/chartist.min.js.map
new file mode 100644
index 0000000..513c272
--- /dev/null
+++ b/src/main/web/hicc/js/chartist.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"chartist.min.js","sources":["chartist.js"],"names":["root","factory","define","amd","exports","module","this","Chartist","version","window","document","noop","n","alphaNumerate","String","fromCharCode","extend","target","sources","Array","prototype","slice","call","arguments","forEach","source","prop","replaceAll","str","subStr","newSubStr","replace","RegExp","stripUnit","value","ensureUnit","unit","querySelector","query","Node","times","length","apply","sum","previous","current","mapMultiply","factor","num","mapAdd","addend","serialMap","arr","cb","result","Math","max","map","e","index","args","roundWithPrecision","digits","precision","pow","round","escapingMap","&","<",">","\"","'","serialize","data","undefined","JSON","stringify","Object","keys","reduce","key","deserialize","parse","createSvg","container","width","height","className","svg","querySelectorAll","filter","getAttributeNS","xmlNs","prefix","removeChild","Svg","attr","addClass","style","appendChild"
 ,"_node","reverseData","labels","reverse","series","i","getDataArray","multi","recursiveConvert","isFalseyButZero","hasOwnProperty","multiValue","getNumberOrUndefined","y","x","reversed","normalizePadding","padding","fallback","top","right","bottom","left","getMetaData","meta","orderOfMagnitude","floor","log","abs","LN10","projectLength","axisLength","bounds","range","getAvailableHeight","options","chartPadding","axisX","offset","getHighLow","dimension","recursiveHighLow","findHigh","highLow","high","findLow","low","toUpperCase","Number","MAX_VALUE","referenceValue","min","isNum","isNaN","isFinite","getMultiValue","rho","gcd","p","q","f","divisor","x1","x2","getBounds","scaleMinSpace","onlyInteger","newMin","newMax","optimizationCounter","valueRange","oom","step","ceil","numberOfSteps","scaleUp","smallestFactor","Error","values","push","polarToCartesian","centerX","centerY","radius","angleInDegrees","angleInRadians","PI","cos","sin","createChartRect","fallbackPadding","hasAxis","axi
 sY","yAxisOffset","xAxisOffset","normalizedPadding","chartRect","y1","y2","position","createGrid","axis","group","classes","eventEmitter","positionalData","units","pos","counterUnits","gridElement","elem","join","emit","type","element","createLabel","axisOffset","labelOffset","useForeignObject","labelElement","len","content","foreignObject","text","getSeriesOption","name","seriesOptions","optionsProvider","responsiveOptions","updateCurrentOptions","preventChangedEvent","previousOptions","currentOptions","baseOptions","mql","matchMedia","matches","removeMediaQueryListeners","mediaQueryListeners","removeListener","addListener","getCurrentOptions","Interpolation","none","pathCoordinates","valueData","path","Path","hole","move","line","simple","defaultOptions","d","prevX","prevY","currX","currY","prevData","currData","curve","cardinal","splitIntoSegments","segments","tension","t","c","paths","segment","z","iLen","postpone","EventEmitter","addEventHandler","event","handler","handlers","r
 emoveEventHandler","splice","indexOf","starHandler","listToArray","list","properties","superProtoOverride","superProto","Class","proto","create","cloneDefinitions","constr","instance","fn","constructor","getOwnPropertyNames","propName","defineProperty","getOwnPropertyDescriptor","update","override","initializeTimeoutId","createChart","detach","clearTimeout","removeEventListener","resizeListener","on","off","initialize","addEventListener","bind","plugins","plugin","Base","supportsForeignObject","isSupported","supportsAnimations","__chartist__","setTimeout","attributes","parent","insertFirst","Element","createElementNS","svgNs","setAttributeNS","qualifiedName","uri","firstChild","insertBefore","ns","getAttribute","setAttribute","parentNode","SVGElement","node","nodeName","selector","foundNode","foundNodes","List","createElement","innerHTML","xhtmlNs","fnObj","createTextNode","empty","remove","newElement","replaceChild","append","trim","split","names","concat","self","removeClass","rem
 ovedClasses","removeAllClasses","getBBoxProperty","getBBox","clientHeight","clientWidth","animate","animations","guided","attribute","createAnimate","animationDefinition","timeout","easing","attributeProperties","Easing","begin","dur","calcMode","keySplines","keyTimes","fill","from","attributeName","beginElement","err","to","params","SvgList","nodeList","svgElements","prototypeProperty","feature","implementation","hasFeature","easingCubicBeziers","easeInSine","easeOutSine","easeInOutSine","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInBack","easeOutBack","easeInOutBack","command","pathElements","relative","pathElement","toLowerCase","forEachParam","pathElementIndex","elementDescriptions","paramName","paramIndex","SvgPath","close","count","arc","rx","ry","xAr",
 "lAf","sf","chunks","match","pop","elements","chunk","shift","description","spliceArgs","accuracyMultiplier","accuracy","scale","translate","transform","transformFnc","transformed","clone","splitByCommand","joinedPath","j","m","l","a","Axis","ticks","axisUnits","rectEnd","rectStart","gridOffset","rectOffset","createGridAndLabels","gridGroup","labelGroup","chartOptions","axisOptions","projectedValues","projectValue","labelValues","labelInterpolationFnc","projectedValue","labelLength","showGrid","classNames","grid","dir","showLabel","label","AutoScaleAxis","axisUnit","normalized","FixedScaleAxis","stepLength","StepAxis","stretch","raw","chart","seriesGroup","fullWidth","seriesIndex","seriesElement","series-name","pathData","valueIndex","lineSmooth","showPoint","showLine","showArea","areaBase","smoothing","point","v","areaBaseProjected","pathSegment","solidPathSegments","firstElement","lastElement","areaPath","area","Line","vertical","horizontal","start","end","distributeSeries","horiz
 ontalBars","stackBars","serialSums","prev","curr","valueAxis","labelAxisTicks","labelAxis","zeroPoint","stackedBarValues","periodHalfLength","biPol","projected","bar","previousStack","labelAxisValueIndex","seriesBarDistance","positions","Bar","determineAnchorPosition","center","direction","toTheRight","labelsGroup","labelRadius","totalDataSum","seriesGroups","startAngle","dataArray","donut","chartDonut","chartPie","total","previousValue","currentValue","donutWidth","labelPosition","hasSingleValInSeries","val","endAngle","sliceDonut","slicePie","interpolatedValue","dx","dy","text-anchor","labelDirection","Pie"],"mappings":"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","sourcesContent":["(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([], function () {\n      return (root['Chartist'] = factory());\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports 
 = factory();\n  } else {\n    root['Chartist'] = factory();\n  }\n}(this, function () {\n\n/* Chartist.js 0.9.4\n * Copyright © 2015 Gion Kunz\n * Free to use under the WTFPL license.\n * http://www.wtfpl.net/\n */\n/**\n * The core module of Chartist that is mainly providing static functions and higher level functions for chart modules.\n *\n * @module Chartist.Core\n */\nvar Chartist = {\n  version: '0.9.4'\n};\n\n(function (window, document, Chartist) {\n  'use strict';\n\n  /**\n   * Helps to simplify functional style code\n   *\n   * @memberof Chartist.Core\n   * @param {*} n This exact value will be returned by the noop function\n   * @return {*} The same value that was provided to the n parameter\n   */\n  Chartist.noop = function (n) {\n    return n;\n  };\n\n  /**\n   * Generates a-z from a number 0 to 26\n   *\n   * @memberof Chartist.Core\n   * @param {Number} n A number from 0 to 26 that will result in a letter a-z\n   * @return {String} A character from a-z based on th
 e input number n\n   */\n  Chartist.alphaNumerate = function (n) {\n    // Limit to a-z\n    return String.fromCharCode(97 + n % 26);\n  };\n\n  /**\n   * Simple recursive object extend\n   *\n   * @memberof Chartist.Core\n   * @param {Object} target Target object where the source will be merged into\n   * @param {Object...} sources This object (objects) will be merged into target and then target is returned\n   * @return {Object} An object that has the same reference as target but is extended and merged with the properties of source\n   */\n  Chartist.extend = function (target) {\n    target = target || {};\n\n    var sources = Array.prototype.slice.call(arguments, 1);\n    sources.forEach(function(source) {\n      for (var prop in source) {\n        if (typeof source[prop] === 'object' && source[prop] !== null && !(source[prop] instanceof Array)) {\n          target[prop] = Chartist.extend({}, target[prop], source[prop]);\n        } else {\n          target[prop] = source[prop];\n
         }\n      }\n    });\n\n    return target;\n  };\n\n  /**\n   * Replaces all occurrences of subStr in str with newSubStr and returns a new string.\n   *\n   * @memberof Chartist.Core\n   * @param {String} str\n   * @param {String} subStr\n   * @param {String} newSubStr\n   * @return {String}\n   */\n  Chartist.replaceAll = function(str, subStr, newSubStr) {\n    return str.replace(new RegExp(subStr, 'g'), newSubStr);\n  };\n\n  /**\n   * Converts a string to a number while removing the unit if present. If a number is passed then this will be returned unmodified.\n   *\n   * @memberof Chartist.Core\n   * @param {String|Number} value\n   * @return {Number} Returns the string as number or NaN if the passed length could not be converted to pixel\n   */\n  Chartist.stripUnit = function(value) {\n    if(typeof value === 'string') {\n      value = value.replace(/[^0-9\\+-\\.]/g, '');\n    }\n\n    return +value;\n  };\n\n  /**\n   * Converts a number to a string with a unit. If a st
 ring is passed then this will be returned unmodified.\n   *\n   * @memberof Chartist.Core\n   * @param {Number} value\n   * @param {String} unit\n   * @return {String} Returns the passed number value with unit.\n   */\n  Chartist.ensureUnit = function(value, unit) {\n    if(typeof value === 'number') {\n      value = value + unit;\n    }\n\n    return value;\n  };\n\n  /**\n   * This is a wrapper around document.querySelector that will return the query if it's already of type Node\n   *\n   * @memberof Chartist.Core\n   * @param {String|Node} query The query to use for selecting a Node or a DOM node that will be returned directly\n   * @return {Node}\n   */\n  Chartist.querySelector = function(query) {\n    return query instanceof Node ? query : document.querySelector(query);\n  };\n\n  /**\n   * Functional style helper to produce array with given length initialized with undefined values\n   *\n   * @memberof Chartist.Core\n   * @param length\n   * @return {Array}\n   */\n  Chartist
 .times = function(length) {\n    return Array.apply(null, new Array(length));\n  };\n\n  /**\n   * Sum helper to be used in reduce functions\n   *\n   * @memberof Chartist.Core\n   * @param previous\n   * @param current\n   * @return {*}\n   */\n  Chartist.sum = function(previous, current) {\n    return previous + (current ? current : 0);\n  };\n\n  /**\n   * Multiply helper to be used in `Array.map` for multiplying each value of an array with a factor.\n   *\n   * @memberof Chartist.Core\n   * @param {Number} factor\n   * @returns {Function} Function that can be used in `Array.map` to multiply each value in an array\n   */\n  Chartist.mapMultiply = function(factor) {\n    return function(num) {\n      return num * factor;\n    };\n  };\n\n  /**\n   * Add helper to be used in `Array.map` for adding a addend to each value of an array.\n   *\n   * @memberof Chartist.Core\n   * @param {Number} addend\n   * @returns {Function} Function that can be used in `Array.map` to add a addend to 
 each value in an array\n   */\n  Chartist.mapAdd = function(addend) {\n    return function(num) {\n      return num + addend;\n    };\n  };\n\n  /**\n   * Map for multi dimensional arrays where their nested arrays will be mapped in serial. The output array will have the length of the largest nested array. The callback function is called with variable arguments where each argument is the nested array value (or undefined if there are no more values).\n   *\n   * @memberof Chartist.Core\n   * @param arr\n   * @param cb\n   * @return {Array}\n   */\n  Chartist.serialMap = function(arr, cb) {\n    var result = [],\n        length = Math.max.apply(null, arr.map(function(e) {\n          return e.length;\n        }));\n\n    Chartist.times(length).forEach(function(e, index) {\n      var args = arr.map(function(e) {\n        return e[index];\n      });\n\n      result[index] = cb.apply(null, args);\n    });\n\n    return result;\n  };\n\n  /**\n   * This helper function can be used to round 
 values with certain precision level after decimal. This is used to prevent rounding errors near float point precision limit.\n   *\n   * @memberof Chartist.Core\n   * @param {Number} value The value that should be rounded with precision\n   * @param {Number} [digits] The number of digits after decimal used to do the rounding\n   * @returns {number} Rounded value\n   */\n  Chartist.roundWithPrecision = function(value, digits) {\n    var precision = Math.pow(10, digits || Chartist.precision);\n    return Math.round(value * precision) / precision;\n  };\n\n  /**\n   * Precision level used internally in Chartist for rounding. If you require more decimal places you can increase this number.\n   *\n   * @memberof Chartist.Core\n   * @type {number}\n   */\n  Chartist.precision = 8;\n\n  /**\n   * A map with characters to escape for strings to be safely used as attribute values.\n   *\n   * @memberof Chartist.Core\n   * @type {Object}\n   */\n  Chartist.escapingMap = {\n    '&': '&amp;',\n 
    '<': '&lt;',\n    '>': '&gt;',\n    '\"': '&quot;',\n    '\\'': '&#039;'\n  };\n\n  /**\n   * This function serializes arbitrary data to a string. In case of data that can't be easily converted to a string, this function will create a wrapper object and serialize the data using JSON.stringify. The outcoming string will always be escaped using Chartist.escapingMap.\n   * If called with null or undefined the function will return immediately with null or undefined.\n   *\n   * @memberof Chartist.Core\n   * @param {Number|String|Object} data\n   * @return {String}\n   */\n  Chartist.serialize = function(data) {\n    if(data === null || data === undefined) {\n      return data;\n    } else if(typeof data === 'number') {\n      data = ''+data;\n    } else if(typeof data === 'object') {\n      data = JSON.stringify({data: data});\n    }\n\n    return Object.keys(Chartist.escapingMap).reduce(function(result, key) {\n      return Chartist.replaceAll(result, key, Chartist.escapingMap[key])
 ;\n    }, data);\n  };\n\n  /**\n   * This function de-serializes a string previously serialized with Chartist.serialize. The string will always be unescaped using Chartist.escapingMap before it's returned. Based on the input value the return type can be Number, String or Object. JSON.parse is used with try / catch to see if the unescaped string can be parsed into an Object and this Object will be returned on success.\n   *\n   * @memberof Chartist.Core\n   * @param {String} data\n   * @return {String|Number|Object}\n   */\n  Chartist.deserialize = function(data) {\n    if(typeof data !== 'string') {\n      return data;\n    }\n\n    data = Object.keys(Chartist.escapingMap).reduce(function(result, key) {\n      return Chartist.replaceAll(result, Chartist.escapingMap[key], key);\n    }, data);\n\n    try {\n      data = JSON.parse(data);\n      data = data.data !== undefined ? data.data : data;\n    } catch(e) {}\n\n    return data;\n  };\n\n  /**\n   * Create or reinitialize the SVG
  element for the chart\n   *\n   * @memberof Chartist.Core\n   * @param {Node} container The containing DOM Node object that will be used to plant the SVG element\n   * @param {String} width Set the width of the SVG element. Default is 100%\n   * @param {String} height Set the height of the SVG element. Default is 100%\n   * @param {String} className Specify a class to be added to the SVG element\n   * @return {Object} The created/reinitialized SVG element\n   */\n  Chartist.createSvg = function (container, width, height, className) {\n    var svg;\n\n    width = width || '100%';\n    height = height || '100%';\n\n    // Check if there is a previous SVG element in the container that contains the Chartist XML namespace and remove it\n    // Since the DOM API does not support namespaces we need to manually search the returned list http://www.w3.org/TR/selectors-api/\n    Array.prototype.slice.call(container.querySelectorAll('svg')).filter(function filterChartistSvgObjects(svg) {\n    
   return svg.getAttributeNS('http://www.w3.org/2000/xmlns/', Chartist.xmlNs.prefix);\n    }).forEach(function removePreviousElement(svg) {\n      container.removeChild(svg);\n    });\n\n    // Create svg object with width and height or use 100% as default\n    svg = new Chartist.Svg('svg').attr({\n      width: width,\n      height: height\n    }).addClass(className).attr({\n      style: 'width: ' + width + '; height: ' + height + ';'\n    });\n\n    // Add the DOM node to our container\n    container.appendChild(svg._node);\n\n    return svg;\n  };\n\n\n  /**\n   * Reverses the series, labels and series data arrays.\n   *\n   * @memberof Chartist.Core\n   * @param data\n   */\n  Chartist.reverseData = function(data) {\n    data.labels.reverse();\n    data.series.reverse();\n    for (var i = 0; i < data.series.length; i++) {\n      if(typeof(data.series[i]) === 'object' && data.series[i].data !== undefined) {\n        data.series[i].data.reverse();\n      } else if(data.series[i] ins
 tanceof Array) {\n        data.series[i].reverse();\n      }\n    }\n  };\n\n  /**\n   * Convert data series into plain array\n   *\n   * @memberof Chartist.Core\n   * @param {Object} data The series object that contains the data to be visualized in the chart\n   * @param {Boolean} reverse If true the whole data is reversed by the getDataArray call. This will modify the data object passed as first parameter. The labels as well as the series order is reversed. The whole series data arrays are reversed too.\n   * @param {Boolean} multi Create a multi dimensional array from a series data array where a value object with `x` and `y` values will be created.\n   * @return {Array} A plain array that contains the data to be visualized in the chart\n   */\n  Chartist.getDataArray = function (data, reverse, multi) {\n    // If the data should be reversed but isn't we need to reverse it\n    // If it's reversed but it shouldn't we need to reverse it back\n    // That's required to handle data u
 pdates correctly and to reflect the responsive configurations\n    if(reverse && !data.reversed || !reverse && data.reversed) {\n      Chartist.reverseData(data);\n      data.reversed = !data.reversed;\n    }\n\n    // Recursively walks through nested arrays and convert string values to numbers and objects with value properties\n    // to values. Check the tests in data core -> data normalization for a detailed specification of expected values\n    function recursiveConvert(value) {\n      if(Chartist.isFalseyButZero(value)) {\n        // This is a hole in data and we should return undefined\n        return undefined;\n      } else if((value.data || value) instanceof Array) {\n        return (value.data || value).map(recursiveConvert);\n      } else if(value.hasOwnProperty('value')) {\n        return recursiveConvert(value.value);\n      } else {\n        if(multi) {\n          var multiValue = {};\n\n          // Single series value arrays are assumed to specify the Y-Axis value\n 
          // For example: [1, 2] => [{x: undefined, y: 1}, {x: undefined, y: 2}]\n          // If multi is a string then it's assumed that it specified which dimension should be filled as default\n          if(typeof multi === 'string') {\n            multiValue[multi] = Chartist.getNumberOrUndefined(value);\n          } else {\n            multiValue.y = Chartist.getNumberOrUndefined(value);\n          }\n\n          multiValue.x = value.hasOwnProperty('x') ? Chartist.getNumberOrUndefined(value.x) : multiValue.x;\n          multiValue.y = value.hasOwnProperty('y') ? Chartist.getNumberOrUndefined(value.y) : multiValue.y;\n\n          return multiValue;\n\n        } else {\n          return Chartist.getNumberOrUndefined(value);\n        }\n      }\n    }\n\n    return data.series.map(recursiveConvert);\n  };\n\n  /**\n   * Converts a number into a padding object.\n   *\n   * @memberof Chartist.Core\n   * @param {Object|Number} padding\n   * @param {Number} [fallback] This value is use
 d to fill missing values if a incomplete padding object was passed\n   * @returns {Object} Returns a padding object containing top, right, bottom, left properties filled with the padding number passed in as argument. If the argument is something else than a number (presumably already a correct padding object) then this argument is directly returned.\n   */\n  Chartist.normalizePadding = function(padding, fallback) {\n    fallback = fallback || 0;\n\n    return typeof padding === 'number' ? {\n      top: padding,\n      right: padding,\n      bottom: padding,\n      left: padding\n    } : {\n      top: typeof padding.top === 'number' ? padding.top : fallback,\n      right: typeof padding.right === 'number' ? padding.right : fallback,\n      bottom: typeof padding.bottom === 'number' ? padding.bottom : fallback,\n      left: typeof padding.left === 'number' ? padding.left : fallback\n    };\n  };\n\n  Chartist.getMetaData = function(series, index) {\n    var value = series.data ? seri
 es.data[index] : series[index];\n    return value ? Chartist.serialize(value.meta) : undefined;\n  };\n\n  /**\n   * Calculate the order of magnitude for the chart scale\n   *\n   * @memberof Chartist.Core\n   * @param {Number} value The value Range of the chart\n   * @return {Number} The order of magnitude\n   */\n  Chartist.orderOfMagnitude = function (value) {\n    return Math.floor(Math.log(Math.abs(value)) / Math.LN10);\n  };\n\n  /**\n   * Project a data length into screen coordinates (pixels)\n   *\n   * @memberof Chartist.Core\n   * @param {Object} axisLength The svg element for the chart\n   * @param {Number} length Single data value from a series array\n   * @param {Object} bounds All the values to set the bounds of the chart\n   * @return {Number} The projected data length in pixels\n   */\n  Chartist.projectLength = function (axisLength, length, bounds) {\n    return length / bounds.range * axisLength;\n  };\n\n  /**\n   * Get the height of the area in the chart for the 
 data series\n   *\n   * @memberof Chartist.Core\n   * @param {Object} svg The svg element for the chart\n   * @param {Object} options The Object that contains all the optional values for the chart\n   * @return {Number} The height of the area in the chart for the data series\n   */\n  Chartist.getAvailableHeight = function (svg, options) {\n    return Math.max((Chartist.stripUnit(options.height) || svg.height()) - (options.chartPadding.top +  options.chartPadding.bottom) - options.axisX.offset, 0);\n  };\n\n  /**\n   * Get highest and lowest value of data array. This Array contains the data that will be visualized in the chart.\n   *\n   * @memberof Chartist.Core\n   * @param {Array} data The array that contains the data to be visualized in the chart\n   * @param {Object} options The Object that contains the chart options\n   * @param {String} dimension Axis dimension 'x' or 'y' used to access the correct value and high / low configuration\n   * @return {Object} An object that conta
 ins the highest and lowest value that will be visualized on the chart.\n   */\n  Chartist.getHighLow = function (data, options, dimension) {\n    // TODO: Remove workaround for deprecated global high / low config. Axis high / low configuration is preferred\n    options = Chartist.extend({}, options, dimension ? options['axis' + dimension.toUpperCase()] : {});\n\n    var highLow = {\n        high: options.high === undefined ? -Number.MAX_VALUE : +options.high,\n        low: options.low === undefined ? Number.MAX_VALUE : +options.low\n      };\n    var findHigh = options.high === undefined;\n    var findLow = options.low === undefined;\n\n    // Function to recursively walk through arrays and find highest and lowest number\n    function recursiveHighLow(data) {\n      if(data === undefined) {\n        return undefined;\n      } else if(data instanceof Array) {\n        for (var i = 0; i < data.length; i++) {\n          recursiveHighLow(data[i]);\n        }\n      } else {\n        var
  value = dimension ? +data[dimension] : +data;\n\n        if (findHigh && value > highLow.high) {\n          highLow.high = value;\n        }\n\n        if (findLow && value < highLow.low) {\n          highLow.low = value;\n        }\n      }\n    }\n\n    // Start to find highest and lowest number recursively\n    if(findHigh || findLow) {\n      recursiveHighLow(data);\n    }\n\n    // Overrides of high / low based on reference value, it will make sure that the invisible reference value is\n    // used to generate the chart. This is useful when the chart always needs to contain the position of the\n    // invisible reference value in the view i.e. for bipolar scales.\n    if (options.referenceValue || options.referenceValue === 0) {\n      highLow.high = Math.max(options.referenceValue, highLow.high);\n      highLow.low = Math.min(options.referenceValue, highLow.low);\n    }\n\n    // If high and low are the same because of misconfiguration or flat data (only the same value) we ne
 ed\n    // to set the high or low to 0 depending on the polarity\n    if (highLow.high <= highLow.low) {\n      // If both values are 0 we set high to 1\n      if (highLow.low === 0) {\n        highLow.high = 1;\n      } else if (highLow.low < 0) {\n        // If we have the same negative value for the bounds we set bounds.high to 0\n        highLow.high = 0;\n      } else {\n        // If we have the same positive value for the bounds we set bounds.low to 0\n        highLow.low = 0;\n      }\n    }\n\n    return highLow;\n  };\n\n  /**\n   * Checks if the value is a valid number or string with a number.\n   *\n   * @memberof Chartist.Core\n   * @param value\n   * @returns {Boolean}\n   */\n  Chartist.isNum = function(value) {\n    return !isNaN(value) && isFinite(value);\n  };\n\n  /**\n   * Returns true on all falsey values except the numeric value 0.\n   *\n   * @memberof Chartist.Core\n   * @param value\n   * @returns {boolean}\n   */\n  Chartist.isFalseyButZero = function(value
 ) {\n    return !value && value !== 0;\n  };\n\n  /**\n   * Returns a number if the passed parameter is a valid number or the function will return undefined. On all other values than a valid number, this function will return undefined.\n   *\n   * @memberof Chartist.Core\n   * @param value\n   * @returns {*}\n   */\n  Chartist.getNumberOrUndefined = function(value) {\n    return isNaN(+value) ? undefined : +value;\n  };\n\n  /**\n   * Gets a value from a dimension `value.x` or `value.y` while returning value directly if it's a valid numeric value. If the value is not numeric and it's falsey this function will return undefined.\n   *\n   * @param value\n   * @param dimension\n   * @returns {*}\n   */\n  Chartist.getMultiValue = function(value, dimension) {\n    if(Chartist.isNum(value)) {\n      return +value;\n    } else if(value) {\n      return value[dimension || 'y'] || 0;\n    } else {\n      return 0;\n    }\n  };\n\n  /**\n   * Pollard Rho Algorithm to find smallest factor of 
 an integer value. There are more efficient algorithms for factorization, but this one is quite efficient and not so complex.\n   *\n   * @memberof Chartist.Core\n   * @param {Number} num An integer number where the smallest factor should be searched for\n   * @returns {Number} The smallest integer factor of the parameter num.\n   */\n  Chartist.rho = function(num) {\n    if(num === 1) {\n      return num;\n    }\n\n    function gcd(p, q) {\n      if (p % q === 0) {\n        return q;\n      } else {\n        return gcd(q, p % q);\n      }\n    }\n\n    function f(x) {\n      return x * x + 1;\n    }\n\n    var x1 = 2, x2 = 2, divisor;\n    if (num % 2 === 0) {\n      return 2;\n    }\n\n    do {\n      x1 = f(x1) % num;\n      x2 = f(f(x2)) % num;\n      divisor = gcd(Math.abs(x1 - x2), num);\n    } while (divisor === 1);\n\n    return divisor;\n  };\n\n  /**\n   * Calculate and retrieve all the bounds for the chart and return them in one array\n   *\n   * @memberof Chartist.Core\n 
   * @param {Number} axisLength The length of the Axis used for\n   * @param {Object} highLow An object containing a high and low property indicating the value range of the chart.\n   * @param {Number} scaleMinSpace The minimum projected length a step should result in\n   * @param {Boolean} onlyInteger\n   * @return {Object} All the values to set the bounds of the chart\n   */\n  Chartist.getBounds = function (axisLength, highLow, scaleMinSpace, onlyInteger) {\n    var i,\n      optimizationCounter = 0,\n      newMin,\n      newMax,\n      bounds = {\n        high: highLow.high,\n        low: highLow.low\n      };\n\n    bounds.valueRange = bounds.high - bounds.low;\n    bounds.oom = Chartist.orderOfMagnitude(bounds.valueRange);\n    bounds.step = Math.pow(10, bounds.oom);\n    bounds.min = Math.floor(bounds.low / bounds.step) * bounds.step;\n    bounds.max = Math.ceil(bounds.high / bounds.step) * bounds.step;\n    bounds.range = bounds.max - bounds.min;\n    bounds.numberOfSteps = M
 ath.round(bounds.range / bounds.step);\n\n    // Optimize scale step by checking if subdivision is possible based on horizontalGridMinSpace\n    // If we are already below the scaleMinSpace value we will scale up\n    var length = Chartist.projectLength(axisLength, bounds.step, bounds);\n    var scaleUp = length < scaleMinSpace;\n    var smallestFactor = onlyInteger ? Chartist.rho(bounds.range) : 0;\n\n    // First check if we should only use integer steps and if step 1 is still larger than scaleMinSpace so we can use 1\n    if(onlyInteger && Chartist.projectLength(axisLength, 1, bounds) >= scaleMinSpace) {\n      bounds.step = 1;\n    } else if(onlyInteger && smallestFactor < bounds.step && Chartist.projectLength(axisLength, smallestFactor, bounds) >= scaleMinSpace) {\n      // If step 1 was too small, we can try the smallest factor of range\n      // If the smallest factor is smaller than the current bounds.step and the projected length of smallest factor\n      // is larger than 
 the scaleMinSpace we should go for it.\n      bounds.step = smallestFactor;\n    } else {\n      // Trying to divide or multiply by 2 and find the best step value\n      while (true) {\n        if (scaleUp && Chartist.projectLength(axisLength, bounds.step, bounds) <= scaleMinSpace) {\n          bounds.step *= 2;\n        } else if (!scaleUp && Chartist.projectLength(axisLength, bounds.step / 2, bounds) >= scaleMinSpace) {\n          bounds.step /= 2;\n          if(onlyInteger && bounds.step % 1 !== 0) {\n            bounds.step *= 2;\n            break;\n          }\n        } else {\n          break;\n        }\n\n        if(optimizationCounter++ > 1000) {\n          throw new Error('Exceeded maximum number of iterations while optimizing scale step!');\n        }\n      }\n    }\n\n    // Narrow min and max based on new step\n    newMin = bounds.min;\n    newMax = bounds.max;\n    while(newMin + bounds.step <= bounds.low) {\n      newMin += bounds.step;\n    }\n    while(newMax - b
 ounds.step >= bounds.high) {\n      newMax -= bounds.step;\n    }\n    bounds.min = newMin;\n    bounds.max = newMax;\n    bounds.range = bounds.max - bounds.min;\n\n    bounds.values = [];\n    for (i = bounds.min; i <= bounds.max; i += bounds.step) {\n      bounds.values.push(Chartist.roundWithPrecision(i));\n    }\n\n    return bounds;\n  };\n\n  /**\n   * Calculate cartesian coordinates of polar coordinates\n   *\n   * @memberof Chartist.Core\n   * @param {Number} centerX X-axis coordinates of center point of circle segment\n   * @param {Number} centerY X-axis coordinates of center point of circle segment\n   * @param {Number} radius Radius of circle segment\n   * @param {Number} angleInDegrees Angle of circle segment in degrees\n   * @return {Number} Coordinates of point on circumference\n   */\n  Chartist.polarToCartesian = function (centerX, centerY, radius, angleInDegrees) {\n    var angleInRadians = (angleInDegrees - 90) * Math.PI / 180.0;\n\n    return {\n      x: centerX 
 + (radius * Math.cos(angleInRadians)),\n      y: centerY + (radius * Math.sin(angleInRadians))\n    };\n  };\n\n  /**\n   * Initialize chart drawing rectangle (area where chart is drawn) x1,y1 = bottom left / x2,y2 = top right\n   *\n   * @memberof Chartist.Core\n   * @param {Object} svg The svg element for the chart\n   * @param {Object} options The Object that contains all the optional values for the chart\n   * @param {Number} [fallbackPadding] The fallback padding if partial padding objects are used\n   * @return {Object} The chart rectangles coordinates inside the svg element plus the rectangles measurements\n   */\n  Chartist.createChartRect = function (svg, options, fallbackPadding) {\n    var hasAxis = !!(options.axisX || options.axisY);\n    var yAxisOffset = hasAxis ? options.axisY.offset : 0;\n    var xAxisOffset = hasAxis ? options.axisX.offset : 0;\n    // If width or height results in invalid value (including 0) we fallback to the unitless settings or even 0\n    var w
 idth = svg.width() || Chartist.stripUnit(options.width) || 0;\n    var height = svg.height() || Chartist.stripUnit(options.height) || 0;\n    var normalizedPadding = Chartist.normalizePadding(options.chartPadding, fallbackPadding);\n\n    // If settings were to small to cope with offset (legacy) and padding, we'll adjust\n    width = Math.max(width, yAxisOffset + normalizedPadding.left + normalizedPadding.right);\n    height = Math.max(height, xAxisOffset + normalizedPadding.top + normalizedPadding.bottom);\n\n    var chartRect = {\n      padding: normalizedPadding,\n      width: function () {\n        return this.x2 - this.x1;\n      },\n      height: function () {\n        return this.y1 - this.y2;\n      }\n    };\n\n    if(hasAxis) {\n      if (options.axisX.position === 'start') {\n        chartRect.y2 = normalizedPadding.top + xAxisOffset;\n        chartRect.y1 = Math.max(height - normalizedPadding.bottom, chartRect.y2 + 1);\n      } else {\n        chartRect.y2 = normalizedPa
 dding.top;\n        chartRect.y1 = Math.max(height - normalizedPadding.bottom - xAxisOffset, chartRect.y2 + 1);\n      }\n\n      if (options.axisY.position === 'start') {\n        chartRect.x1 = normalizedPadding.left + yAxisOffset;\n        chartRect.x2 = Math.max(width - normalizedPadding.right, chartRect.x1 + 1);\n      } else {\n        chartRect.x1 = normalizedPadding.left;\n        chartRect.x2 = Math.max(width - normalizedPadding.right - yAxisOffset, chartRect.x1 + 1);\n      }\n    } else {\n      chartRect.x1 = normalizedPadding.left;\n      chartRect.x2 = Math.max(width - normalizedPadding.right, chartRect.x1 + 1);\n      chartRect.y2 = normalizedPadding.top;\n      chartRect.y1 = Math.max(height - normalizedPadding.bottom, chartRect.y2 + 1);\n    }\n\n    return chartRect;\n  };\n\n  /**\n   * Creates a grid line based on a projected value.\n   *\n   * @memberof Chartist.Core\n   * @param position\n   * @param index\n   * @param axis\n   * @param offset\n   * @param leng
 th\n   * @param group\n   * @param classes\n   * @param eventEmitter\n   */\n  Chartist.createGrid = function(position, index, axis, offset, length, group, classes, eventEmitter) {\n    var positionalData = {};\n    positionalData[axis.units.pos + '1'] = position;\n    positionalData[axis.units.pos + '2'] = position;\n    positionalData[axis.counterUnits.pos + '1'] = offset;\n    positionalData[axis.counterUnits.pos + '2'] = offset + length;\n\n    var gridElement = group.elem('line', positionalData, classes.join(' '));\n\n    // Event for grid draw\n    eventEmitter.emit('draw',\n      Chartist.extend({\n        type: 'grid',\n        axis: axis,\n        index: index,\n        group: group,\n        element: gridElement\n      }, positionalData)\n    );\n  };\n\n  /**\n   * Creates a label based on a projected value and an axis.\n   *\n   * @memberof Chartist.Core\n   * @param position\n   * @param length\n   * @param index\n   * @param labels\n   * @param axis\n   * @param axisOf
 fset\n   * @param labelOffset\n   * @param group\n   * @param classes\n   * @param useForeignObject\n   * @param eventEmitter\n   */\n  Chartist.createLabel = function(position, length, index, labels, axis, axisOffset, labelOffset, group, classes, useForeignObject, eventEmitter) {\n    var labelElement;\n    var positionalData = {};\n\n    positionalData[axis.units.pos] = position + labelOffset[axis.units.pos];\n    positionalData[axis.counterUnits.pos] = labelOffset[axis.counterUnits.pos];\n    positionalData[axis.units.len] = length;\n    positionalData[axis.counterUnits.len] = axisOffset - 10;\n\n    if(useForeignObject) {\n      // We need to set width and height explicitly to px as span will not expand with width and height being\n      // 100% in all browsers\n      var content = '<span class=\"' + classes.join(' ') + '\" style=\"' +\n        axis.units.len + ': ' + Math.round(positionalData[axis.units.len]) + 'px; ' +\n        axis.counterUnits.len + ': ' + Math.round(positio
 nalData[axis.counterUnits.len]) + 'px\">' +\n        labels[index] + '</span>';\n\n      labelElement = group.foreignObject(content, Chartist.extend({\n        style: 'overflow: visible;'\n      }, positionalData));\n    } else {\n      labelElement = group.elem('text', positionalData, classes.join(' ')).text(labels[index]);\n    }\n\n    eventEmitter.emit('draw', Chartist.extend({\n      type: 'label',\n      axis: axis,\n      index: index,\n      group: group,\n      element: labelElement,\n      text: labels[index]\n    }, positionalData));\n  };\n\n  /**\n   * Helper to read series specific options from options object. It automatically falls back to the global option if\n   * there is no option in the series options.\n   *\n   * @param {Object} series Series object\n   * @param {Object} options Chartist options object\n   * @param {string} key The options key that should be used to obtain the options\n   * @returns {*}\n   */\n  Chartist.getSeriesOption = function(series, optio
 ns, key) {\n    if(series.name && options.series && options.series[series.name]) {\n      var seriesOptions = options.series[series.name];\n      return seriesOptions.hasOwnProperty(key) ? seriesOptions[key] : options[key];\n    } else {\n      return options[key];\n    }\n  };\n\n  /**\n   * Provides options handling functionality with callback for options changes triggered by responsive options and media query matches\n   *\n   * @memberof Chartist.Core\n   * @param {Object} options Options set by user\n   * @param {Array} responsiveOptions Optional functions to add responsive behavior to chart\n   * @param {Object} eventEmitter The event emitter that will be used to emit the options changed events\n   * @return {Object} The consolidated options object from the defaults, base and matching responsive options\n   */\n  Chartist.optionsProvider = function (options, responsiveOptions, eventEmitter) {\n    var baseOptions = Chartist.extend({}, options),\n      currentOptions,\n      me
 diaQueryListeners = [],\n      i;\n\n    function updateCurrentOptions(preventChangedEvent) {\n      var previousOptions = currentOptions;\n      currentOptions = Chartist.extend({}, baseOptions);\n\n      if (responsiveOptions) {\n        for (i = 0; i < responsiveOptions.length; i++) {\n          var mql = window.matchMedia(responsiveOptions[i][0]);\n          if (mql.matches) {\n            currentOptions = Chartist.extend(currentOptions, responsiveOptions[i][1]);\n          }\n        }\n      }\n\n      if(eventEmitter && !preventChangedEvent) {\n        eventEmitter.emit('optionsChanged', {\n          previousOptions: previousOptions,\n          currentOptions: currentOptions\n        });\n      }\n    }\n\n    function removeMediaQueryListeners() {\n      mediaQueryListeners.forEach(function(mql) {\n        mql.removeListener(updateCurrentOptions);\n      });\n    }\n\n    if (!window.matchMedia) {\n      throw 'window.matchMedia not found! Make sure you\\'re using a polyfill
 .';\n    } else if (responsiveOptions) {\n\n      for (i = 0; i < responsiveOptions.length; i++) {\n        var mql = window.matchMedia(responsiveOptions[i][0]);\n        mql.addListener(updateCurrentOptions);\n        mediaQueryListeners.push(mql);\n      }\n    }\n    // Execute initially so we get the correct options\n    updateCurrentOptions(true);\n\n    return {\n      removeMediaQueryListeners: removeMediaQueryListeners,\n      getCurrentOptions: function getCurrentOptions() {\n        return Chartist.extend({}, currentOptions);\n      }\n    };\n  };\n\n}(window, document, Chartist));\n;/**\n * Chartist path interpolation functions.\n *\n * @module Chartist.Interpolation\n */\n/* global Chartist */\n(function(window, document, Chartist) {\n  'use strict';\n\n  Chartist.Interpolation = {};\n\n  /**\n   * This interpolation function does not smooth the path and the result is only containing lines and no curves.\n   *\n   * @memberof Chartist.Interpolation\n   * @return {Functi
 on}\n   */\n  Chartist.Interpolation.none = function() {\n    return function none(pathCoordinates, valueData) {\n      var path = new Chartist.Svg.Path();\n      // We need to assume that the first value is a \"hole\"\n      var hole = true;\n\n      for(var i = 1; i < pathCoordinates.length; i += 2) {\n        var data = valueData[(i - 1) / 2];\n\n        // If the current value is undefined we should treat it as a hole start\n        if(data.value === undefined) {\n          hole = true;\n        } else {\n          // If this value is valid we need to check if we're coming out of a hole\n          if(hole) {\n            // If we are coming out of a hole we should first make a move and also reset the hole flag\n            path.move(pathCoordinates[i - 1], pathCoordinates[i], false, data);\n            hole = false;\n          } else {\n            path.line(pathCoordinates[i - 1], pathCoordinates[i], false, data);\n          }\n        }\n      }\n\n      return path;\n    };\n
   };\n\n  /**\n   * Simple smoothing creates horizontal handles that are positioned with a fraction of the length between two data points. You can use the divisor option to specify the amount of smoothing.\n   *\n   * Simple smoothing can be used instead of `Chartist.Smoothing.cardinal` if you'd like to get rid of the artifacts it produces sometimes. Simple smoothi

<TRUNCATED>

Mime
View raw message