{"version":3,"file":"js/36-c53650049804b22da2f6.js","mappings":"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","sources":["webpack://enlistly/./node_modules/chartkick/dist/chartkick.js"],"sourcesContent":["/*!\n * Chartkick.js\n * Create beautiful charts with one line of JavaScript\n * https://github.com/ankane/chartkick.js\n * v4.2.0\n * MIT License\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Chartkick = factory());\n})(this, (function () { 'use strict';\n\n function isArray(variable) {\n return Object.prototype.toString.call(variable) === \"[object Array]\";\n }\n\n function isFunction(variable) {\n return variable instanceof Function;\n }\n\n function isPlainObject(variable) {\n // protect against prototype pollution, defense 2\n return Object.prototype.toString.call(variable) === \"[object Object]\" && !isFunction(variable) && variable instanceof Object;\n }\n\n // https://github.com/madrobby/zepto/blob/master/src/zepto.js\n function extend(target, source) {\n var key;\n for (key in source) {\n // protect against prototype pollution, defense 1\n if (key === \"__proto__\") { continue; }\n\n if (isPlainObject(source[key]) || isArray(source[key])) {\n if (isPlainObject(source[key]) && !isPlainObject(target[key])) {\n target[key] = {};\n }\n if (isArray(source[key]) && !isArray(target[key])) {\n target[key] = [];\n }\n extend(target[key], source[key]);\n } else if (source[key] !== undefined) {\n target[key] = source[key];\n }\n }\n }\n\n function merge(obj1, obj2) {\n var target = {};\n extend(target, obj1);\n extend(target, obj2);\n return target;\n }\n\n var DATE_PATTERN = /^(\\d\\d\\d\\d)(-)?(\\d\\d)(-)?(\\d\\d)$/i;\n\n function negativeValues(series) {\n var i, j, data;\n for (i = 0; i < series.length; i++) {\n data = series[i].data;\n for (j = 0; j < data.length; j++) {\n if (data[j][1] < 0) {\n return true;\n }\n }\n }\n return false;\n }\n\n function toStr(n) {\n return \"\" + n;\n }\n\n function toFloat(n) {\n return parseFloat(n);\n }\n\n function toDate(n) {\n var matches, year, month, day;\n if (typeof n !== \"object\") {\n if (typeof n === \"number\") {\n n = new Date(n * 1000); // ms\n } else {\n n = toStr(n);\n if ((matches = n.match(DATE_PATTERN))) {\n year = parseInt(matches[1], 10);\n month = parseInt(matches[3], 10) - 1;\n day = parseInt(matches[5], 10);\n return new Date(year, month, day);\n } else {\n // try our best to get the str into iso8601\n // TODO be smarter about this\n var str = n.replace(/ /, \"T\").replace(\" \", \"\").replace(\"UTC\", \"Z\");\n // Date.parse returns milliseconds if valid and NaN if invalid\n n = new Date(Date.parse(str) || n);\n }\n }\n }\n return n;\n }\n\n function toArr(n) {\n if (!isArray(n)) {\n var arr = [], i;\n for (i in n) {\n if (n.hasOwnProperty(i)) {\n arr.push([i, n[i]]);\n }\n }\n n = arr;\n }\n return n;\n }\n\n function jsOptionsFunc(defaultOptions, hideLegend, setTitle, setMin, setMax, setStacked, setXtitle, setYtitle) {\n return function (chart, opts, chartOptions) {\n var series = chart.data;\n var options = merge({}, defaultOptions);\n options = merge(options, chartOptions || {});\n\n if (chart.singleSeriesFormat || \"legend\" in opts) {\n hideLegend(options, opts.legend, chart.singleSeriesFormat);\n }\n\n if (opts.title) {\n setTitle(options, opts.title);\n }\n\n // min\n if (\"min\" in opts) {\n setMin(options, opts.min);\n } else if (!negativeValues(series)) {\n setMin(options, 0);\n }\n\n // max\n if (opts.max) {\n setMax(options, opts.max);\n }\n\n if (\"stacked\" in opts) {\n setStacked(options, opts.stacked);\n }\n\n if (opts.colors) {\n options.colors = opts.colors;\n }\n\n if (opts.xtitle) {\n setXtitle(options, opts.xtitle);\n }\n\n if (opts.ytitle) {\n setYtitle(options, opts.ytitle);\n }\n\n // merge library last\n options = merge(options, opts.library || {});\n\n return options;\n };\n }\n\n function sortByTime(a, b) {\n return a[0].getTime() - b[0].getTime();\n }\n\n function sortByNumberSeries(a, b) {\n return a[0] - b[0];\n }\n\n function sortByNumber(a, b) {\n return a - b;\n }\n\n function isMinute(d) {\n return d.getMilliseconds() === 0 && d.getSeconds() === 0;\n }\n\n function isHour(d) {\n return isMinute(d) && d.getMinutes() === 0;\n }\n\n function isDay(d) {\n return isHour(d) && d.getHours() === 0;\n }\n\n function isWeek(d, dayOfWeek) {\n return isDay(d) && d.getDay() === dayOfWeek;\n }\n\n function isMonth(d) {\n return isDay(d) && d.getDate() === 1;\n }\n\n function isYear(d) {\n return isMonth(d) && d.getMonth() === 0;\n }\n\n function isDate(obj) {\n return !isNaN(toDate(obj)) && toStr(obj).length >= 6;\n }\n\n function isNumber(obj) {\n return typeof obj === \"number\";\n }\n\n var byteSuffixes = [\"bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\"];\n\n function formatValue(pre, value, options, axis) {\n pre = pre || \"\";\n if (options.prefix) {\n if (value < 0) {\n value = value * -1;\n pre += \"-\";\n }\n pre += options.prefix;\n }\n\n var suffix = options.suffix || \"\";\n var precision = options.precision;\n var round = options.round;\n\n if (options.byteScale) {\n var suffixIdx;\n var baseValue = axis ? options.byteScale : value;\n\n if (baseValue >= 1152921504606846976) {\n value /= 1152921504606846976;\n suffixIdx = 6;\n } else if (baseValue >= 1125899906842624) {\n value /= 1125899906842624;\n suffixIdx = 5;\n } else if (baseValue >= 1099511627776) {\n value /= 1099511627776;\n suffixIdx = 4;\n } else if (baseValue >= 1073741824) {\n value /= 1073741824;\n suffixIdx = 3;\n } else if (baseValue >= 1048576) {\n value /= 1048576;\n suffixIdx = 2;\n } else if (baseValue >= 1024) {\n value /= 1024;\n suffixIdx = 1;\n } else {\n suffixIdx = 0;\n }\n\n // TODO handle manual precision case\n if (precision === undefined && round === undefined) {\n if (value >= 1023.5) {\n if (suffixIdx < byteSuffixes.length - 1) {\n value = 1.0;\n suffixIdx += 1;\n }\n }\n precision = value >= 1000 ? 4 : 3;\n }\n suffix = \" \" + byteSuffixes[suffixIdx];\n }\n\n if (precision !== undefined && round !== undefined) {\n throw Error(\"Use either round or precision, not both\");\n }\n\n if (!axis) {\n if (precision !== undefined) {\n value = value.toPrecision(precision);\n if (!options.zeros) {\n value = parseFloat(value);\n }\n }\n\n if (round !== undefined) {\n if (round < 0) {\n var num = Math.pow(10, -1 * round);\n value = parseInt((1.0 * value / num).toFixed(0)) * num;\n } else {\n value = value.toFixed(round);\n if (!options.zeros) {\n value = parseFloat(value);\n }\n }\n }\n }\n\n if (options.thousands || options.decimal) {\n value = toStr(value);\n var parts = value.split(\".\");\n value = parts[0];\n if (options.thousands) {\n value = value.replace(/\\B(?=(\\d{3})+(?!\\d))/g, options.thousands);\n }\n if (parts.length > 1) {\n value += (options.decimal || \".\") + parts[1];\n }\n }\n\n return pre + value + suffix;\n }\n\n function seriesOption(chart, series, option) {\n if (option in series) {\n return series[option];\n } else if (option in chart.options) {\n return chart.options[option];\n }\n return null;\n }\n\n function allZeros(data) {\n var i, j, d;\n for (i = 0; i < data.length; i++) {\n d = data[i].data;\n for (j = 0; j < d.length; j++) {\n if (d[j][1] != 0) {\n return false;\n }\n }\n }\n return true;\n }\n\n var baseOptions = {\n maintainAspectRatio: false,\n animation: false,\n plugins: {\n legend: {},\n tooltip: {\n displayColors: false,\n callbacks: {}\n },\n title: {\n font: {\n size: 20\n },\n color: \"#333\"\n }\n },\n interaction: {}\n };\n\n var defaultOptions$2 = {\n scales: {\n y: {\n ticks: {\n maxTicksLimit: 4\n },\n title: {\n font: {\n size: 16\n },\n color: \"#333\"\n },\n grid: {}\n },\n x: {\n grid: {\n drawOnChartArea: false\n },\n title: {\n font: {\n size: 16\n },\n color: \"#333\"\n },\n time: {},\n ticks: {}\n }\n }\n };\n\n // http://there4.io/2012/05/02/google-chart-color-list/\n var defaultColors = [\n \"#3366CC\", \"#DC3912\", \"#FF9900\", \"#109618\", \"#990099\", \"#3B3EAC\", \"#0099C6\",\n \"#DD4477\", \"#66AA00\", \"#B82E2E\", \"#316395\", \"#994499\", \"#22AA99\", \"#AAAA11\",\n \"#6633CC\", \"#E67300\", \"#8B0707\", \"#329262\", \"#5574A6\", \"#651067\"\n ];\n\n var hideLegend$2 = function (options, legend, hideLegend) {\n if (legend !== undefined) {\n options.plugins.legend.display = !!legend;\n if (legend && legend !== true) {\n options.plugins.legend.position = legend;\n }\n } else if (hideLegend) {\n options.plugins.legend.display = false;\n }\n };\n\n var setTitle$2 = function (options, title) {\n options.plugins.title.display = true;\n options.plugins.title.text = title;\n };\n\n var setMin$2 = function (options, min) {\n if (min !== null) {\n options.scales.y.min = toFloat(min);\n }\n };\n\n var setMax$2 = function (options, max) {\n options.scales.y.max = toFloat(max);\n };\n\n var setBarMin$1 = function (options, min) {\n if (min !== null) {\n options.scales.x.min = toFloat(min);\n }\n };\n\n var setBarMax$1 = function (options, max) {\n options.scales.x.max = toFloat(max);\n };\n\n var setStacked$2 = function (options, stacked) {\n options.scales.x.stacked = !!stacked;\n options.scales.y.stacked = !!stacked;\n };\n\n var setXtitle$2 = function (options, title) {\n options.scales.x.title.display = true;\n options.scales.x.title.text = title;\n };\n\n var setYtitle$2 = function (options, title) {\n options.scales.y.title.display = true;\n options.scales.y.title.text = title;\n };\n\n // https://stackoverflow.com/questions/5623838/rgb-to-hex-and-hex-to-rgb\n var addOpacity = function (hex, opacity) {\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result ? \"rgba(\" + parseInt(result[1], 16) + \", \" + parseInt(result[2], 16) + \", \" + parseInt(result[3], 16) + \", \" + opacity + \")\" : hex;\n };\n\n // check if not null or undefined\n // https://stackoverflow.com/a/27757708/1177228\n var notnull = function (x) {\n return x != null;\n };\n\n var setLabelSize = function (chart, data, options) {\n var maxLabelSize = Math.ceil(chart.element.offsetWidth / 4.0 / data.labels.length);\n if (maxLabelSize > 25) {\n maxLabelSize = 25;\n } else if (maxLabelSize < 10) {\n maxLabelSize = 10;\n }\n if (!options.scales.x.ticks.callback) {\n options.scales.x.ticks.callback = function (value) {\n value = toStr(this.getLabelForValue(value));\n if (value.length > maxLabelSize) {\n return value.substring(0, maxLabelSize - 2) + \"...\";\n } else {\n return value;\n }\n };\n }\n };\n\n var setFormatOptions$1 = function (chart, options, chartType) {\n var formatOptions = {\n prefix: chart.options.prefix,\n suffix: chart.options.suffix,\n thousands: chart.options.thousands,\n decimal: chart.options.decimal,\n precision: chart.options.precision,\n round: chart.options.round,\n zeros: chart.options.zeros\n };\n\n if (chart.options.bytes) {\n var series = chart.data;\n if (chartType === \"pie\") {\n series = [{data: series}];\n }\n\n // calculate max\n var max = 0;\n for (var i = 0; i < series.length; i++) {\n var s = series[i];\n for (var j = 0; j < s.data.length; j++) {\n if (s.data[j][1] > max) {\n max = s.data[j][1];\n }\n }\n }\n\n // calculate scale\n var scale = 1;\n while (max >= 1024) {\n scale *= 1024;\n max /= 1024;\n }\n\n // set step size\n formatOptions.byteScale = scale;\n }\n\n if (chartType !== \"pie\") {\n var axis = options.scales.y;\n if (chartType === \"bar\") {\n axis = options.scales.x;\n }\n\n if (formatOptions.byteScale) {\n if (!axis.ticks.stepSize) {\n axis.ticks.stepSize = formatOptions.byteScale / 2;\n }\n if (!axis.ticks.maxTicksLimit) {\n axis.ticks.maxTicksLimit = 4;\n }\n }\n\n if (!axis.ticks.callback) {\n axis.ticks.callback = function (value) {\n return formatValue(\"\", value, formatOptions, true);\n };\n }\n }\n\n if (!options.plugins.tooltip.callbacks.label) {\n if (chartType === \"scatter\") {\n options.plugins.tooltip.callbacks.label = function (context) {\n var label = context.dataset.label || '';\n if (label) {\n label += ': ';\n }\n return label + '(' + context.label + ', ' + context.formattedValue + ')';\n };\n } else if (chartType === \"bubble\") {\n options.plugins.tooltip.callbacks.label = function (context) {\n var label = context.dataset.label || '';\n if (label) {\n label += ': ';\n }\n var dataPoint = context.raw;\n return label + '(' + dataPoint.x + ', ' + dataPoint.y + ', ' + dataPoint.v + ')';\n };\n } else if (chartType === \"pie\") {\n // need to use separate label for pie charts\n options.plugins.tooltip.callbacks.label = function (context) {\n var dataLabel = context.label;\n var value = ': ';\n\n if (isArray(dataLabel)) {\n // show value on first line of multiline label\n // need to clone because we are changing the value\n dataLabel = dataLabel.slice();\n dataLabel[0] += value;\n } else {\n dataLabel += value;\n }\n\n return formatValue(dataLabel, context.parsed, formatOptions);\n };\n } else {\n var valueLabel = chartType === \"bar\" ? \"x\" : \"y\";\n options.plugins.tooltip.callbacks.label = function (context) {\n // don't show null values for stacked charts\n if (context.parsed[valueLabel] === null) {\n return;\n }\n\n var label = context.dataset.label || '';\n if (label) {\n label += ': ';\n }\n return formatValue(label, context.parsed[valueLabel], formatOptions);\n };\n }\n }\n };\n\n var jsOptions$2 = jsOptionsFunc(merge(baseOptions, defaultOptions$2), hideLegend$2, setTitle$2, setMin$2, setMax$2, setStacked$2, setXtitle$2, setYtitle$2);\n\n var createDataTable = function (chart, options, chartType) {\n var datasets = [];\n var labels = [];\n\n var colors = chart.options.colors || defaultColors;\n\n var day = true;\n var week = true;\n var dayOfWeek;\n var month = true;\n var year = true;\n var hour = true;\n var minute = true;\n\n var series = chart.data;\n\n var max = 0;\n if (chartType === \"bubble\") {\n for (var i$1 = 0; i$1 < series.length; i$1++) {\n var s$1 = series[i$1];\n for (var j$1 = 0; j$1 < s$1.data.length; j$1++) {\n if (s$1.data[j$1][2] > max) {\n max = s$1.data[j$1][2];\n }\n }\n }\n }\n\n var i, j, s, d, key, rows = [], rows2 = [];\n\n if (chartType === \"bar\" || chartType === \"column\" || (chart.xtype !== \"number\" && chart.xtype !== \"bubble\")) {\n var sortedLabels = [];\n\n for (i = 0; i < series.length; i++) {\n s = series[i];\n\n for (j = 0; j < s.data.length; j++) {\n d = s.data[j];\n key = chart.xtype == \"datetime\" ? d[0].getTime() : d[0];\n if (!rows[key]) {\n rows[key] = new Array(series.length);\n }\n rows[key][i] = toFloat(d[1]);\n if (sortedLabels.indexOf(key) === -1) {\n sortedLabels.push(key);\n }\n }\n }\n\n if (chart.xtype === \"datetime\" || chart.xtype === \"number\") {\n sortedLabels.sort(sortByNumber);\n }\n\n for (j = 0; j < series.length; j++) {\n rows2.push([]);\n }\n\n var value;\n var k;\n for (k = 0; k < sortedLabels.length; k++) {\n i = sortedLabels[k];\n if (chart.xtype === \"datetime\") {\n value = new Date(toFloat(i));\n // TODO make this efficient\n day = day && isDay(value);\n if (!dayOfWeek) {\n dayOfWeek = value.getDay();\n }\n week = week && isWeek(value, dayOfWeek);\n month = month && isMonth(value);\n year = year && isYear(value);\n hour = hour && isHour(value);\n minute = minute && isMinute(value);\n } else {\n value = i;\n }\n labels.push(value);\n for (j = 0; j < series.length; j++) {\n // Chart.js doesn't like undefined\n rows2[j].push(rows[i][j] === undefined ? null : rows[i][j]);\n }\n }\n } else {\n for (var i$2 = 0; i$2 < series.length; i$2++) {\n var s$2 = series[i$2];\n var d$1 = [];\n for (var j$2 = 0; j$2 < s$2.data.length; j$2++) {\n var point = {\n x: toFloat(s$2.data[j$2][0]),\n y: toFloat(s$2.data[j$2][1])\n };\n if (chartType === \"bubble\") {\n point.r = toFloat(s$2.data[j$2][2]) * 20 / max;\n // custom attribute, for tooltip\n point.v = s$2.data[j$2][2];\n }\n d$1.push(point);\n }\n rows2.push(d$1);\n }\n }\n\n var color;\n var backgroundColor;\n\n for (i = 0; i < series.length; i++) {\n s = series[i];\n\n // use colors for each bar for single series format\n if (chart.options.colors && chart.singleSeriesFormat && (chartType === \"bar\" || chartType === \"column\") && !s.color && isArray(chart.options.colors) && !isArray(chart.options.colors[0])) {\n color = colors;\n backgroundColor = [];\n for (var j$3 = 0; j$3 < colors.length; j$3++) {\n backgroundColor[j$3] = addOpacity(color[j$3], 0.5);\n }\n } else {\n color = s.color || colors[i];\n backgroundColor = chartType !== \"line\" ? addOpacity(color, 0.5) : color;\n }\n\n var dataset = {\n label: s.name || \"\",\n data: rows2[i],\n fill: chartType === \"area\",\n borderColor: color,\n backgroundColor: backgroundColor,\n borderWidth: 2\n };\n\n var pointChart = chartType === \"line\" || chartType === \"area\" || chartType === \"scatter\" || chartType === \"bubble\";\n if (pointChart) {\n dataset.pointBackgroundColor = color;\n dataset.pointHoverBackgroundColor = color;\n dataset.pointHitRadius = 50;\n }\n\n if (chartType === \"bubble\") {\n dataset.pointBackgroundColor = backgroundColor;\n dataset.pointHoverBackgroundColor = backgroundColor;\n dataset.pointHoverBorderWidth = 2;\n }\n\n if (s.stack) {\n dataset.stack = s.stack;\n }\n\n var curve = seriesOption(chart, s, \"curve\");\n if (curve === false) {\n dataset.tension = 0;\n } else if (pointChart) {\n dataset.tension = 0.4;\n }\n\n var points = seriesOption(chart, s, \"points\");\n if (points === false) {\n dataset.pointRadius = 0;\n dataset.pointHoverRadius = 0;\n }\n\n dataset = merge(dataset, chart.options.dataset || {});\n dataset = merge(dataset, s.library || {});\n dataset = merge(dataset, s.dataset || {});\n\n datasets.push(dataset);\n }\n\n var xmin = chart.options.xmin;\n var xmax = chart.options.xmax;\n\n if (chart.xtype === \"datetime\") {\n if (notnull(xmin)) {\n options.scales.x.min = toDate(xmin).getTime();\n }\n if (notnull(xmax)) {\n options.scales.x.max = toDate(xmax).getTime();\n }\n } else if (chart.xtype === \"number\") {\n if (notnull(xmin)) {\n options.scales.x.min = xmin;\n }\n if (notnull(xmax)) {\n options.scales.x.max = xmax;\n }\n }\n\n // for empty datetime chart\n if (chart.xtype === \"datetime\" && labels.length === 0) {\n if (notnull(xmin)) {\n labels.push(toDate(xmin));\n }\n if (notnull(xmax)) {\n labels.push(toDate(xmax));\n }\n day = false;\n week = false;\n month = false;\n year = false;\n hour = false;\n minute = false;\n }\n\n if (chart.xtype === \"datetime\" && labels.length > 0) {\n var minTime = (notnull(xmin) ? toDate(xmin) : labels[0]).getTime();\n var maxTime = (notnull(xmax) ? toDate(xmax) : labels[0]).getTime();\n\n for (i = 1; i < labels.length; i++) {\n var value$1 = labels[i].getTime();\n if (value$1 < minTime) {\n minTime = value$1;\n }\n if (value$1 > maxTime) {\n maxTime = value$1;\n }\n }\n\n var timeDiff = (maxTime - minTime) / (86400 * 1000.0);\n\n if (!options.scales.x.time.unit) {\n var step;\n if (year || timeDiff > 365 * 10) {\n options.scales.x.time.unit = \"year\";\n step = 365;\n } else if (month || timeDiff > 30 * 10) {\n options.scales.x.time.unit = \"month\";\n step = 30;\n } else if (day || timeDiff > 10) {\n options.scales.x.time.unit = \"day\";\n step = 1;\n } else if (hour || timeDiff > 0.5) {\n options.scales.x.time.displayFormats = {hour: \"MMM d, h a\"};\n options.scales.x.time.unit = \"hour\";\n step = 1 / 24.0;\n } else if (minute) {\n options.scales.x.time.displayFormats = {minute: \"h:mm a\"};\n options.scales.x.time.unit = \"minute\";\n step = 1 / 24.0 / 60.0;\n }\n\n if (step && timeDiff > 0) {\n // width not available for hidden elements\n var width = chart.element.offsetWidth;\n if (width > 0) {\n var unitStepSize = Math.ceil(timeDiff / step / (width / 100.0));\n if (week && step === 1) {\n unitStepSize = Math.ceil(unitStepSize / 7.0) * 7;\n }\n options.scales.x.time.stepSize = unitStepSize;\n }\n }\n }\n\n if (!options.scales.x.time.tooltipFormat) {\n if (day) {\n options.scales.x.time.tooltipFormat = \"PP\";\n } else if (hour) {\n options.scales.x.time.tooltipFormat = \"MMM d, h a\";\n } else if (minute) {\n options.scales.x.time.tooltipFormat = \"h:mm a\";\n }\n }\n }\n\n var data = {\n labels: labels,\n datasets: datasets\n };\n\n return data;\n };\n\n var defaultExport$2 = function defaultExport(library) {\n this.name = \"chartjs\";\n this.library = library;\n };\n\n defaultExport$2.prototype.renderLineChart = function renderLineChart (chart, chartType) {\n var chartOptions = {};\n // fix for https://github.com/chartjs/Chart.js/issues/2441\n if (!chart.options.max && allZeros(chart.data)) {\n chartOptions.max = 1;\n }\n\n var options = jsOptions$2(chart, merge(chartOptions, chart.options));\n setFormatOptions$1(chart, options, chartType);\n\n var data = createDataTable(chart, options, chartType || \"line\");\n\n if (chart.xtype === \"number\") {\n options.scales.x.type = options.scales.x.type || \"linear\";\n options.scales.x.position = options.scales.x.position ||\"bottom\";\n } else {\n options.scales.x.type = chart.xtype === \"string\" ? \"category\" : \"time\";\n }\n\n this.drawChart(chart, \"line\", data, options);\n };\n\n defaultExport$2.prototype.renderPieChart = function renderPieChart (chart) {\n var options = merge({}, baseOptions);\n if (chart.options.donut) {\n options.cutout = \"50%\";\n }\n\n if (\"legend\" in chart.options) {\n hideLegend$2(options, chart.options.legend);\n }\n\n if (chart.options.title) {\n setTitle$2(options, chart.options.title);\n }\n\n options = merge(options, chart.options.library || {});\n setFormatOptions$1(chart, options, \"pie\");\n\n var labels = [];\n var values = [];\n for (var i = 0; i < chart.data.length; i++) {\n var point = chart.data[i];\n labels.push(point[0]);\n values.push(point[1]);\n }\n\n var dataset = {\n data: values,\n backgroundColor: chart.options.colors || defaultColors\n };\n dataset = merge(dataset, chart.options.dataset || {});\n\n var data = {\n labels: labels,\n datasets: [dataset]\n };\n\n this.drawChart(chart, \"pie\", data, options);\n };\n\n defaultExport$2.prototype.renderColumnChart = function renderColumnChart (chart, chartType) {\n var options;\n if (chartType === \"bar\") {\n var barOptions = merge(baseOptions, defaultOptions$2);\n barOptions.indexAxis = \"y\";\n\n // ensure gridlines have proper orientation\n barOptions.scales.x.grid.drawOnChartArea = true;\n barOptions.scales.y.grid.drawOnChartArea = false;\n delete barOptions.scales.y.ticks.maxTicksLimit;\n\n options = jsOptionsFunc(barOptions, hideLegend$2, setTitle$2, setBarMin$1, setBarMax$1, setStacked$2, setXtitle$2, setYtitle$2)(chart, chart.options);\n } else {\n options = jsOptions$2(chart, chart.options);\n }\n setFormatOptions$1(chart, options, chartType);\n var data = createDataTable(chart, options, \"column\");\n if (chartType !== \"bar\") {\n setLabelSize(chart, data, options);\n }\n this.drawChart(chart, \"bar\", data, options);\n };\n\n defaultExport$2.prototype.renderAreaChart = function renderAreaChart (chart) {\n this.renderLineChart(chart, \"area\");\n };\n\n defaultExport$2.prototype.renderBarChart = function renderBarChart (chart) {\n this.renderColumnChart(chart, \"bar\");\n };\n\n defaultExport$2.prototype.renderScatterChart = function renderScatterChart (chart, chartType) {\n chartType = chartType || \"scatter\";\n\n var options = jsOptions$2(chart, chart.options);\n setFormatOptions$1(chart, options, chartType);\n\n if (!(\"showLine\" in options)) {\n options.showLine = false;\n }\n\n var data = createDataTable(chart, options, chartType);\n\n options.scales.x.type = options.scales.x.type || \"linear\";\n options.scales.x.position = options.scales.x.position || \"bottom\";\n\n // prevent grouping hover and tooltips\n if (!(\"mode\" in options.interaction)) {\n options.interaction.mode = \"nearest\";\n }\n\n this.drawChart(chart, chartType, data, options);\n };\n\n defaultExport$2.prototype.renderBubbleChart = function renderBubbleChart (chart) {\n this.renderScatterChart(chart, \"bubble\");\n };\n\n defaultExport$2.prototype.destroy = function destroy (chart) {\n if (chart.chart) {\n chart.chart.destroy();\n }\n };\n\n defaultExport$2.prototype.drawChart = function drawChart (chart, type, data, options) {\n this.destroy(chart);\n if (chart.destroyed) { return; }\n\n var chartOptions = {\n type: type,\n data: data,\n options: options\n };\n\n if (chart.options.code) {\n window.console.log(\"new Chart(ctx, \" + JSON.stringify(chartOptions) + \");\");\n }\n\n chart.element.innerHTML = \"\";\n var ctx = chart.element.getElementsByTagName(\"CANVAS\")[0];\n chart.chart = new this.library(ctx, chartOptions);\n };\n\n var defaultOptions$1 = {\n chart: {},\n xAxis: {\n title: {\n text: null\n },\n labels: {\n style: {\n fontSize: \"12px\"\n }\n }\n },\n yAxis: {\n title: {\n text: null\n },\n labels: {\n style: {\n fontSize: \"12px\"\n }\n }\n },\n title: {\n text: null\n },\n credits: {\n enabled: false\n },\n legend: {\n borderWidth: 0\n },\n tooltip: {\n style: {\n fontSize: \"12px\"\n }\n },\n plotOptions: {\n areaspline: {},\n area: {},\n series: {\n marker: {}\n }\n },\n time: {\n useUTC: false\n }\n };\n\n var hideLegend$1 = function (options, legend, hideLegend) {\n if (legend !== undefined) {\n options.legend.enabled = !!legend;\n if (legend && legend !== true) {\n if (legend === \"top\" || legend === \"bottom\") {\n options.legend.verticalAlign = legend;\n } else {\n options.legend.layout = \"vertical\";\n options.legend.verticalAlign = \"middle\";\n options.legend.align = legend;\n }\n }\n } else if (hideLegend) {\n options.legend.enabled = false;\n }\n };\n\n var setTitle$1 = function (options, title) {\n options.title.text = title;\n };\n\n var setMin$1 = function (options, min) {\n options.yAxis.min = min;\n };\n\n var setMax$1 = function (options, max) {\n options.yAxis.max = max;\n };\n\n var setStacked$1 = function (options, stacked) {\n var stackedValue = stacked ? (stacked === true ? \"normal\" : stacked) : null;\n options.plotOptions.series.stacking = stackedValue;\n options.plotOptions.area.stacking = stackedValue;\n options.plotOptions.areaspline.stacking = stackedValue;\n };\n\n var setXtitle$1 = function (options, title) {\n options.xAxis.title.text = title;\n };\n\n var setYtitle$1 = function (options, title) {\n options.yAxis.title.text = title;\n };\n\n var jsOptions$1 = jsOptionsFunc(defaultOptions$1, hideLegend$1, setTitle$1, setMin$1, setMax$1, setStacked$1, setXtitle$1, setYtitle$1);\n\n var setFormatOptions = function(chart, options, chartType) {\n var formatOptions = {\n prefix: chart.options.prefix,\n suffix: chart.options.suffix,\n thousands: chart.options.thousands,\n decimal: chart.options.decimal,\n precision: chart.options.precision,\n round: chart.options.round,\n zeros: chart.options.zeros\n };\n\n // skip when axis is an array (like with min/max)\n if (chartType !== \"pie\" && !isArray(options.yAxis) && !options.yAxis.labels.formatter) {\n options.yAxis.labels.formatter = function () {\n return formatValue(\"\", this.value, formatOptions);\n };\n }\n\n if (!options.tooltip.pointFormatter && !options.tooltip.pointFormat) {\n options.tooltip.pointFormatter = function () {\n return '\\u25CF ' + formatValue(this.series.name + ': ', this.y, formatOptions) + '
';\n };\n }\n };\n\n var defaultExport$1 = function defaultExport(library) {\n this.name = \"highcharts\";\n this.library = library;\n };\n\n defaultExport$1.prototype.renderLineChart = function renderLineChart (chart, chartType) {\n chartType = chartType || \"spline\";\n var chartOptions = {};\n if (chartType === \"areaspline\") {\n chartOptions = {\n plotOptions: {\n areaspline: {\n stacking: \"normal\"\n },\n area: {\n stacking: \"normal\"\n },\n series: {\n marker: {\n enabled: false\n }\n }\n }\n };\n }\n\n if (chart.options.curve === false) {\n if (chartType === \"areaspline\") {\n chartType = \"area\";\n } else if (chartType === \"spline\") {\n chartType = \"line\";\n }\n }\n\n var options = jsOptions$1(chart, chart.options, chartOptions), data, i, j;\n if (chart.xtype === \"number\") {\n options.xAxis.type = options.xAxis.type || \"linear\";\n } else {\n options.xAxis.type = chart.xtype === \"string\" ? \"category\" : \"datetime\";\n }\n if (!options.chart.type) {\n options.chart.type = chartType;\n }\n setFormatOptions(chart, options, chartType);\n\n var series = chart.data;\n for (i = 0; i < series.length; i++) {\n series[i].name = series[i].name || \"Value\";\n data = series[i].data;\n if (chart.xtype === \"datetime\") {\n for (j = 0; j < data.length; j++) {\n data[j][0] = data[j][0].getTime();\n }\n }\n series[i].marker = {symbol: \"circle\"};\n if (chart.options.points === false) {\n series[i].marker.enabled = false;\n }\n }\n\n this.drawChart(chart, series, options);\n };\n\n defaultExport$1.prototype.renderScatterChart = function renderScatterChart (chart) {\n var options = jsOptions$1(chart, chart.options, {});\n options.chart.type = \"scatter\";\n this.drawChart(chart, chart.data, options);\n };\n\n defaultExport$1.prototype.renderPieChart = function renderPieChart (chart) {\n var chartOptions = merge(defaultOptions$1, {});\n\n if (chart.options.colors) {\n chartOptions.colors = chart.options.colors;\n }\n if (chart.options.donut) {\n chartOptions.plotOptions = {pie: {innerSize: \"50%\"}};\n }\n\n if (\"legend\" in chart.options) {\n hideLegend$1(chartOptions, chart.options.legend);\n }\n\n if (chart.options.title) {\n setTitle$1(chartOptions, chart.options.title);\n }\n\n var options = merge(chartOptions, chart.options.library || {});\n setFormatOptions(chart, options, \"pie\");\n var series = [{\n type: \"pie\",\n name: chart.options.label || \"Value\",\n data: chart.data\n }];\n\n this.drawChart(chart, series, options);\n };\n\n defaultExport$1.prototype.renderColumnChart = function renderColumnChart (chart, chartType) {\n chartType = chartType || \"column\";\n var series = chart.data;\n var options = jsOptions$1(chart, chart.options), i, j, s, d, rows = [], categories = [];\n options.chart.type = chartType;\n setFormatOptions(chart, options, chartType);\n\n for (i = 0; i < series.length; i++) {\n s = series[i];\n\n for (j = 0; j < s.data.length; j++) {\n d = s.data[j];\n if (!rows[d[0]]) {\n rows[d[0]] = new Array(series.length);\n categories.push(d[0]);\n }\n rows[d[0]][i] = d[1];\n }\n }\n\n if (chart.xtype === \"number\") {\n categories.sort(sortByNumber);\n }\n\n options.xAxis.categories = categories;\n\n var newSeries = [], d2;\n for (i = 0; i < series.length; i++) {\n d = [];\n for (j = 0; j < categories.length; j++) {\n d.push(rows[categories[j]][i] || 0);\n }\n\n d2 = {\n name: series[i].name || \"Value\",\n data: d\n };\n if (series[i].stack) {\n d2.stack = series[i].stack;\n }\n\n newSeries.push(d2);\n }\n\n this.drawChart(chart, newSeries, options);\n };\n\n defaultExport$1.prototype.renderBarChart = function renderBarChart (chart) {\n this.renderColumnChart(chart, \"bar\");\n };\n\n defaultExport$1.prototype.renderAreaChart = function renderAreaChart (chart) {\n this.renderLineChart(chart, \"areaspline\");\n };\n\n defaultExport$1.prototype.destroy = function destroy (chart) {\n if (chart.chart) {\n chart.chart.destroy();\n }\n };\n\n defaultExport$1.prototype.drawChart = function drawChart (chart, data, options) {\n this.destroy(chart);\n if (chart.destroyed) { return; }\n\n options.chart.renderTo = chart.element.id;\n options.series = data;\n\n if (chart.options.code) {\n window.console.log(\"new Highcharts.Chart(\" + JSON.stringify(options) + \");\");\n }\n\n chart.chart = new this.library.Chart(options);\n };\n\n var loaded = {};\n var callbacks = [];\n\n // Set chart options\n var defaultOptions = {\n chartArea: {},\n fontName: \"'Lucida Grande', 'Lucida Sans Unicode', Verdana, Arial, Helvetica, sans-serif\",\n pointSize: 6,\n legend: {\n textStyle: {\n fontSize: 12,\n color: \"#444\"\n },\n alignment: \"center\",\n position: \"right\"\n },\n curveType: \"function\",\n hAxis: {\n textStyle: {\n color: \"#666\",\n fontSize: 12\n },\n titleTextStyle: {},\n gridlines: {\n color: \"transparent\"\n },\n baselineColor: \"#ccc\",\n viewWindow: {}\n },\n vAxis: {\n textStyle: {\n color: \"#666\",\n fontSize: 12\n },\n titleTextStyle: {},\n baselineColor: \"#ccc\",\n viewWindow: {}\n },\n tooltip: {\n textStyle: {\n color: \"#666\",\n fontSize: 12\n }\n }\n };\n\n var hideLegend = function (options, legend, hideLegend) {\n if (legend !== undefined) {\n var position;\n if (!legend) {\n position = \"none\";\n } else if (legend === true) {\n position = \"right\";\n } else {\n position = legend;\n }\n options.legend.position = position;\n } else if (hideLegend) {\n options.legend.position = \"none\";\n }\n };\n\n var setTitle = function (options, title) {\n options.title = title;\n options.titleTextStyle = {color: \"#333\", fontSize: \"20px\"};\n };\n\n var setMin = function (options, min) {\n options.vAxis.viewWindow.min = min;\n };\n\n var setMax = function (options, max) {\n options.vAxis.viewWindow.max = max;\n };\n\n var setBarMin = function (options, min) {\n options.hAxis.viewWindow.min = min;\n };\n\n var setBarMax = function (options, max) {\n options.hAxis.viewWindow.max = max;\n };\n\n var setStacked = function (options, stacked) {\n options.isStacked = stacked ? stacked : false;\n };\n\n var setXtitle = function (options, title) {\n options.hAxis.title = title;\n options.hAxis.titleTextStyle.italic = false;\n };\n\n var setYtitle = function (options, title) {\n options.vAxis.title = title;\n options.vAxis.titleTextStyle.italic = false;\n };\n\n var jsOptions = jsOptionsFunc(defaultOptions, hideLegend, setTitle, setMin, setMax, setStacked, setXtitle, setYtitle);\n\n var resize = function (callback) {\n if (window.attachEvent) {\n window.attachEvent(\"onresize\", callback);\n } else if (window.addEventListener) {\n window.addEventListener(\"resize\", callback, true);\n }\n callback();\n };\n\n var defaultExport = function defaultExport(library) {\n this.name = \"google\";\n this.library = library;\n };\n\n defaultExport.prototype.renderLineChart = function renderLineChart (chart) {\n var this$1$1 = this;\n\n this.waitForLoaded(chart, function () {\n var chartOptions = {};\n\n if (chart.options.curve === false) {\n chartOptions.curveType = \"none\";\n }\n\n if (chart.options.points === false) {\n chartOptions.pointSize = 0;\n }\n\n var options = jsOptions(chart, chart.options, chartOptions);\n var data = this$1$1.createDataTable(chart.data, chart.xtype);\n\n this$1$1.drawChart(chart, \"LineChart\", data, options);\n });\n };\n\n defaultExport.prototype.renderPieChart = function renderPieChart (chart) {\n var this$1$1 = this;\n\n this.waitForLoaded(chart, function () {\n var chartOptions = {\n chartArea: {\n top: \"10%\",\n height: \"80%\"\n },\n legend: {}\n };\n if (chart.options.colors) {\n chartOptions.colors = chart.options.colors;\n }\n if (chart.options.donut) {\n chartOptions.pieHole = 0.5;\n }\n if (\"legend\" in chart.options) {\n hideLegend(chartOptions, chart.options.legend);\n }\n if (chart.options.title) {\n setTitle(chartOptions, chart.options.title);\n }\n var options = merge(merge(defaultOptions, chartOptions), chart.options.library || {});\n\n var data = new this$1$1.library.visualization.DataTable();\n data.addColumn(\"string\", \"\");\n data.addColumn(\"number\", \"Value\");\n data.addRows(chart.data);\n\n this$1$1.drawChart(chart, \"PieChart\", data, options);\n });\n };\n\n defaultExport.prototype.renderColumnChart = function renderColumnChart (chart) {\n var this$1$1 = this;\n\n this.waitForLoaded(chart, function () {\n var options = jsOptions(chart, chart.options);\n var data = this$1$1.createDataTable(chart.data, chart.xtype);\n\n this$1$1.drawChart(chart, \"ColumnChart\", data, options);\n });\n };\n\n defaultExport.prototype.renderBarChart = function renderBarChart (chart) {\n var this$1$1 = this;\n\n this.waitForLoaded(chart, function () {\n var chartOptions = {\n hAxis: {\n gridlines: {\n color: \"#ccc\"\n }\n }\n };\n var options = jsOptionsFunc(defaultOptions, hideLegend, setTitle, setBarMin, setBarMax, setStacked, setXtitle, setYtitle)(chart, chart.options, chartOptions);\n var data = this$1$1.createDataTable(chart.data, chart.xtype);\n\n this$1$1.drawChart(chart, \"BarChart\", data, options);\n });\n };\n\n defaultExport.prototype.renderAreaChart = function renderAreaChart (chart) {\n var this$1$1 = this;\n\n this.waitForLoaded(chart, function () {\n var chartOptions = {\n isStacked: true,\n pointSize: 0,\n areaOpacity: 0.5\n };\n\n var options = jsOptions(chart, chart.options, chartOptions);\n var data = this$1$1.createDataTable(chart.data, chart.xtype);\n\n this$1$1.drawChart(chart, \"AreaChart\", data, options);\n });\n };\n\n defaultExport.prototype.renderGeoChart = function renderGeoChart (chart) {\n var this$1$1 = this;\n\n this.waitForLoaded(chart, \"geochart\", function () {\n var chartOptions = {\n legend: \"none\",\n colorAxis: {\n colors: chart.options.colors || [\"#f6c7b6\", \"#ce502d\"]\n }\n };\n var options = merge(merge(defaultOptions, chartOptions), chart.options.library || {});\n\n var data = new this$1$1.library.visualization.DataTable();\n data.addColumn(\"string\", \"\");\n data.addColumn(\"number\", chart.options.label || \"Value\");\n data.addRows(chart.data);\n\n this$1$1.drawChart(chart, \"GeoChart\", data, options);\n });\n };\n\n defaultExport.prototype.renderScatterChart = function renderScatterChart (chart) {\n var this$1$1 = this;\n\n this.waitForLoaded(chart, function () {\n var chartOptions = {};\n var options = jsOptions(chart, chart.options, chartOptions);\n\n var series = chart.data, rows2 = [], i, j, data, d;\n for (i = 0; i < series.length; i++) {\n series[i].name = series[i].name || \"Value\";\n d = series[i].data;\n for (j = 0; j < d.length; j++) {\n var row = new Array(series.length + 1);\n row[0] = d[j][0];\n row[i + 1] = d[j][1];\n rows2.push(row);\n }\n }\n\n data = new this$1$1.library.visualization.DataTable();\n data.addColumn(\"number\", \"\");\n for (i = 0; i < series.length; i++) {\n data.addColumn(\"number\", series[i].name);\n }\n data.addRows(rows2);\n\n this$1$1.drawChart(chart, \"ScatterChart\", data, options);\n });\n };\n\n defaultExport.prototype.renderTimeline = function renderTimeline (chart) {\n var this$1$1 = this;\n\n this.waitForLoaded(chart, \"timeline\", function () {\n var chartOptions = {\n legend: \"none\"\n };\n\n if (chart.options.colors) {\n chartOptions.colors = chart.options.colors;\n }\n var options = merge(merge(defaultOptions, chartOptions), chart.options.library || {});\n\n var data = new this$1$1.library.visualization.DataTable();\n data.addColumn({type: \"string\", id: \"Name\"});\n data.addColumn({type: \"date\", id: \"Start\"});\n data.addColumn({type: \"date\", id: \"End\"});\n data.addRows(chart.data);\n\n chart.element.style.lineHeight = \"normal\";\n\n this$1$1.drawChart(chart, \"Timeline\", data, options);\n });\n };\n\n // TODO remove resize events\n defaultExport.prototype.destroy = function destroy (chart) {\n if (chart.chart) {\n chart.chart.clearChart();\n }\n };\n\n defaultExport.prototype.drawChart = function drawChart (chart, type, data, options) {\n this.destroy(chart);\n if (chart.destroyed) { return; }\n\n if (chart.options.code) {\n window.console.log(\"var data = new google.visualization.DataTable(\" + data.toJSON() + \");\\nvar chart = new google.visualization.\" + type + \"(element);\\nchart.draw(data, \" + JSON.stringify(options) + \");\");\n }\n\n chart.chart = new this.library.visualization[type](chart.element);\n resize(function () {\n chart.chart.draw(data, options);\n });\n };\n\n defaultExport.prototype.waitForLoaded = function waitForLoaded (chart, pack, callback) {\n var this$1$1 = this;\n\n if (!callback) {\n callback = pack;\n pack = \"corechart\";\n }\n\n callbacks.push({pack: pack, callback: callback});\n\n if (loaded[pack]) {\n this.runCallbacks();\n } else {\n loaded[pack] = true;\n\n // https://groups.google.com/forum/#!topic/google-visualization-api/fMKJcyA2yyI\n var loadOptions = {\n packages: [pack],\n callback: function () { this$1$1.runCallbacks(); }\n };\n var config = chart.__config();\n if (config.language) {\n loadOptions.language = config.language;\n }\n if (pack === \"geochart\" && config.mapsApiKey) {\n loadOptions.mapsApiKey = config.mapsApiKey;\n }\n\n this.library.charts.load(\"current\", loadOptions);\n }\n };\n\n defaultExport.prototype.runCallbacks = function runCallbacks () {\n var cb, call;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n call = this.library.visualization && ((cb.pack === \"corechart\" && this.library.visualization.LineChart) || (cb.pack === \"timeline\" && this.library.visualization.Timeline) || (cb.pack === \"geochart\" && this.library.visualization.GeoChart));\n if (call) {\n cb.callback();\n callbacks.splice(i, 1);\n i--;\n }\n }\n };\n\n // cant use object as key\n defaultExport.prototype.createDataTable = function createDataTable (series, columnType) {\n var i, j, s, d, key, rows = [], sortedLabels = [];\n for (i = 0; i < series.length; i++) {\n s = series[i];\n series[i].name = series[i].name || \"Value\";\n\n for (j = 0; j < s.data.length; j++) {\n d = s.data[j];\n key = (columnType === \"datetime\") ? d[0].getTime() : d[0];\n if (!rows[key]) {\n rows[key] = new Array(series.length);\n sortedLabels.push(key);\n }\n rows[key][i] = toFloat(d[1]);\n }\n }\n\n var rows2 = [];\n var day = true;\n var value;\n for (j = 0; j < sortedLabels.length; j++) {\n i = sortedLabels[j];\n if (columnType === \"datetime\") {\n value = new Date(toFloat(i));\n day = day && isDay(value);\n } else if (columnType === \"number\") {\n value = toFloat(i);\n } else {\n value = i;\n }\n rows2.push([value].concat(rows[i]));\n }\n if (columnType === \"datetime\") {\n rows2.sort(sortByTime);\n } else if (columnType === \"number\") {\n rows2.sort(sortByNumberSeries);\n\n for (i = 0; i < rows2.length; i++) {\n rows2[i][0] = toStr(rows2[i][0]);\n }\n\n columnType = \"string\";\n }\n\n // create datatable\n var data = new this.library.visualization.DataTable();\n columnType = columnType === \"datetime\" && day ? \"date\" : columnType;\n data.addColumn(columnType, \"\");\n for (i = 0; i < series.length; i++) {\n data.addColumn(\"number\", series[i].name);\n }\n data.addRows(rows2);\n\n return data;\n };\n\n function formatSeriesData(data, keyType) {\n var r = [], j, keyFunc;\n\n if (keyType === \"number\") {\n keyFunc = toFloat;\n } else if (keyType === \"datetime\") {\n keyFunc = toDate;\n } else {\n keyFunc = toStr;\n }\n\n if (keyType === \"bubble\") {\n for (j = 0; j < data.length; j++) {\n r.push([toFloat(data[j][0]), toFloat(data[j][1]), toFloat(data[j][2])]);\n }\n } else {\n for (j = 0; j < data.length; j++) {\n r.push([keyFunc(data[j][0]), toFloat(data[j][1])]);\n }\n }\n\n if (keyType === \"datetime\") {\n r.sort(sortByTime);\n } else if (keyType === \"number\") {\n r.sort(sortByNumberSeries);\n }\n\n return r;\n }\n\n function detectXType(series, noDatetime, options) {\n if (dataEmpty(series)) {\n if ((options.xmin || options.xmax) && (!options.xmin || isDate(options.xmin)) && (!options.xmax || isDate(options.xmax))) {\n return \"datetime\";\n } else {\n return \"number\";\n }\n } else if (detectXTypeWithFunction(series, isNumber)) {\n return \"number\";\n } else if (!noDatetime && detectXTypeWithFunction(series, isDate)) {\n return \"datetime\";\n } else {\n return \"string\";\n }\n }\n\n function detectXTypeWithFunction(series, func) {\n var i, j, data;\n for (i = 0; i < series.length; i++) {\n data = toArr(series[i].data);\n for (j = 0; j < data.length; j++) {\n if (!func(data[j][0])) {\n return false;\n }\n }\n }\n return true;\n }\n\n // creates a shallow copy of each element of the array\n // elements are expected to be objects\n function copySeries(series) {\n var newSeries = [], i, j;\n for (i = 0; i < series.length; i++) {\n var copy = {};\n for (j in series[i]) {\n if (series[i].hasOwnProperty(j)) {\n copy[j] = series[i][j];\n }\n }\n newSeries.push(copy);\n }\n return newSeries;\n }\n\n function processSeries(chart, keyType, noDatetime) {\n var i;\n\n var opts = chart.options;\n var series = chart.rawData;\n\n // see if one series or multiple\n chart.singleSeriesFormat = (!isArray(series) || typeof series[0] !== \"object\" || isArray(series[0]));\n if (chart.singleSeriesFormat) {\n series = [{name: opts.label, data: series}];\n }\n\n // convert to array\n // must come before dataEmpty check\n series = copySeries(series);\n for (i = 0; i < series.length; i++) {\n series[i].data = toArr(series[i].data);\n }\n\n chart.xtype = keyType ? keyType : (opts.discrete ? \"string\" : detectXType(series, noDatetime, opts));\n\n // right format\n for (i = 0; i < series.length; i++) {\n series[i].data = formatSeriesData(series[i].data, chart.xtype);\n }\n\n return series;\n }\n\n function processSimple(chart) {\n var perfectData = toArr(chart.rawData), i;\n for (i = 0; i < perfectData.length; i++) {\n perfectData[i] = [toStr(perfectData[i][0]), toFloat(perfectData[i][1])];\n }\n return perfectData;\n }\n\n function dataEmpty(data, chartType) {\n if (chartType === \"PieChart\" || chartType === \"GeoChart\" || chartType === \"Timeline\") {\n return data.length === 0;\n } else {\n for (var i = 0; i < data.length; i++) {\n if (data[i].data.length > 0) {\n return false;\n }\n }\n return true;\n }\n }\n\n function addDownloadButton(chart) {\n var element = chart.element;\n var link = document.createElement(\"a\");\n\n var download = chart.options.download;\n if (download === true) {\n download = {};\n } else if (typeof download === \"string\") {\n download = {filename: download};\n }\n link.download = download.filename || \"chart.png\"; // https://caniuse.com/download\n\n link.style.position = \"absolute\";\n link.style.top = \"20px\";\n link.style.right = \"20px\";\n link.style.zIndex = 1000;\n link.style.lineHeight = \"20px\";\n link.target = \"_blank\"; // for safari\n var image = document.createElement(\"img\");\n image.alt = \"Download\";\n image.style.border = \"none\";\n // icon from font-awesome\n // http://fa2png.io/\n image.src = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAABCFBMVEUAAADMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMywEsqxAAAAV3RSTlMAAQIDBggJCgsMDQ4PERQaHB0eISIjJCouLzE0OTo/QUJHSUpLTU5PUllhYmltcHh5foWLjI+SlaCio6atr7S1t7m6vsHHyM7R2tze5Obo7fHz9ff5+/1hlxK2AAAA30lEQVQYGUXBhVYCQQBA0TdYWAt2d3d3YWAHyur7/z9xgD16Lw0DW+XKx+1GgX+FRzM3HWQWrHl5N/oapW5RPe0PkBu+UYeICvozTWZVK23Ao04B79oJrOsJDOoxkZoQPWgX29pHpCZEk7rEvQYiNSFq1UMqvlCjJkRBS1R8hb00Vb/TajtBL7nTHE1X1vyMQF732dQhyF2o6SAwrzP06iUQzvwsArlnzcOdrgBhJyHa1QOgO9U1GsKuvjUTjavliZYQ8nNPapG6sap/3nrIdJ6bOWzmX/fy0XVpfzZP3S8OJT3g9EEiJwAAAABJRU5ErkJggg==\";\n link.appendChild(image);\n element.style.position = \"relative\";\n\n chart.__downloadAttached = true;\n\n // mouseenter\n chart.__enterEvent = addEvent(element, \"mouseover\", function(e) {\n var related = e.relatedTarget;\n // check download option again to ensure it wasn't changed\n if ((!related || (related !== this && !childOf(this, related))) && chart.options.download) {\n link.href = chart.toImage(download);\n element.appendChild(link);\n }\n });\n\n // mouseleave\n chart.__leaveEvent = addEvent(element, \"mouseout\", function(e) {\n var related = e.relatedTarget;\n if (!related || (related !== this && !childOf(this, related))) {\n if (link.parentNode) {\n link.parentNode.removeChild(link);\n }\n }\n });\n }\n\n // https://stackoverflow.com/questions/10149963/adding-event-listener-cross-browser\n function addEvent(elem, event, fn) {\n if (elem.addEventListener) {\n elem.addEventListener(event, fn, false);\n return fn;\n } else {\n var fn2 = function() {\n // set the this pointer same as addEventListener when fn is called\n return(fn.call(elem, window.event));\n };\n elem.attachEvent(\"on\" + event, fn2);\n return fn2;\n }\n }\n\n function removeEvent(elem, event, fn) {\n if (elem.removeEventListener) {\n elem.removeEventListener(event, fn, false);\n } else {\n elem.detachEvent(\"on\" + event, fn);\n }\n }\n\n // https://gist.github.com/shawnbot/4166283\n function childOf(p, c) {\n if (p === c) { return false; }\n while (c && c !== p) { c = c.parentNode; }\n return c === p;\n }\n\n var pendingRequests = [], runningRequests = 0, maxRequests = 4;\n\n function pushRequest(url, success, error) {\n pendingRequests.push([url, success, error]);\n runNext();\n }\n\n function runNext() {\n if (runningRequests < maxRequests) {\n var request = pendingRequests.shift();\n if (request) {\n runningRequests++;\n getJSON(request[0], request[1], request[2]);\n runNext();\n }\n }\n }\n\n function requestComplete() {\n runningRequests--;\n runNext();\n }\n\n function getJSON(url, success, error) {\n ajaxCall(url, success, function (jqXHR, textStatus, errorThrown) {\n var message = (typeof errorThrown === \"string\") ? errorThrown : errorThrown.message;\n error(message);\n });\n }\n\n function ajaxCall(url, success, error) {\n var $ = window.jQuery || window.Zepto || window.$;\n\n if ($ && $.ajax) {\n $.ajax({\n dataType: \"json\",\n url: url,\n success: success,\n error: error,\n complete: requestComplete\n });\n } else {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, true);\n xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n xhr.onload = function () {\n requestComplete();\n if (xhr.status === 200) {\n success(JSON.parse(xhr.responseText), xhr.statusText, xhr);\n } else {\n error(xhr, \"error\", xhr.statusText);\n }\n };\n xhr.send();\n }\n }\n\n var config = {};\n var adapters = [];\n\n // helpers\n\n function setText(element, text) {\n if (document.body.innerText) {\n element.innerText = text;\n } else {\n element.textContent = text;\n }\n }\n\n // TODO remove prefix for all messages\n function chartError(element, message, noPrefix) {\n if (!noPrefix) {\n message = \"Error Loading Chart: \" + message;\n }\n setText(element, message);\n element.style.color = \"#ff0000\";\n }\n\n function errorCatcher(chart) {\n try {\n chart.__render();\n } catch (err) {\n chartError(chart.element, err.message);\n throw err;\n }\n }\n\n function fetchDataSource(chart, dataSource, showLoading) {\n // only show loading message for urls and callbacks\n if (showLoading && chart.options.loading && (typeof dataSource === \"string\" || typeof dataSource === \"function\")) {\n setText(chart.element, chart.options.loading);\n }\n\n if (typeof dataSource === \"string\") {\n pushRequest(dataSource, function (data) {\n chart.rawData = data;\n errorCatcher(chart);\n }, function (message) {\n chartError(chart.element, message);\n });\n } else if (typeof dataSource === \"function\") {\n try {\n dataSource(function (data) {\n chart.rawData = data;\n errorCatcher(chart);\n }, function (message) {\n chartError(chart.element, message, true);\n });\n } catch (err) {\n chartError(chart.element, err, true);\n }\n } else {\n chart.rawData = dataSource;\n errorCatcher(chart);\n }\n }\n\n function getAdapterType(library) {\n if (library) {\n if (library.product === \"Highcharts\") {\n return defaultExport$1;\n } else if (library.charts) {\n return defaultExport;\n } else if (isFunction(library)) {\n return defaultExport$2;\n }\n }\n throw new Error(\"Unknown adapter\");\n }\n\n function addAdapter(library) {\n var adapterType = getAdapterType(library);\n var adapter = new adapterType(library);\n\n if (adapters.indexOf(adapter) === -1) {\n adapters.push(adapter);\n }\n }\n\n function loadAdapters() {\n if (\"Chart\" in window) {\n addAdapter(window.Chart);\n }\n\n if (\"Highcharts\" in window) {\n addAdapter(window.Highcharts);\n }\n\n if (window.google && window.google.charts) {\n addAdapter(window.google);\n }\n }\n\n function renderChart(chartType, chart) {\n if (dataEmpty(chart.data, chartType)) {\n var message = chart.options.empty || (chart.options.messages && chart.options.messages.empty) || \"No data\";\n setText(chart.element, message);\n } else {\n callAdapter(chartType, chart);\n if (chart.options.download && !chart.__downloadAttached && chart.adapter === \"chartjs\") {\n addDownloadButton(chart);\n }\n }\n }\n\n // TODO remove chartType if cross-browser way\n // to get the name of the chart class\n function callAdapter(chartType, chart) {\n var i, adapter, fnName, adapterName;\n fnName = \"render\" + chartType;\n adapterName = chart.options.adapter;\n\n loadAdapters();\n\n for (i = 0; i < adapters.length; i++) {\n adapter = adapters[i];\n if ((!adapterName || adapterName === adapter.name) && isFunction(adapter[fnName])) {\n chart.adapter = adapter.name;\n chart.__adapterObject = adapter;\n return adapter[fnName](chart);\n }\n }\n\n if (adapters.length > 0) {\n throw new Error(\"No charting library found for \" + chartType);\n } else {\n throw new Error(\"No charting libraries found - be sure to include one before your charts\");\n }\n }\n\n // define classes\n\n var Chart = function Chart(element, dataSource, options) {\n var elementId;\n if (typeof element === \"string\") {\n elementId = element;\n element = document.getElementById(element);\n if (!element) {\n throw new Error(\"No element with id \" + elementId);\n }\n }\n this.element = element;\n this.options = merge(Chartkick.options, options || {});\n this.dataSource = dataSource;\n\n Chartkick.charts[element.id] = this;\n\n fetchDataSource(this, dataSource, true);\n\n if (this.options.refresh) {\n this.startRefresh();\n }\n };\n\n Chart.prototype.getElement = function getElement () {\n return this.element;\n };\n\n Chart.prototype.getDataSource = function getDataSource () {\n return this.dataSource;\n };\n\n Chart.prototype.getData = function getData () {\n return this.data;\n };\n\n Chart.prototype.getOptions = function getOptions () {\n return this.options;\n };\n\n Chart.prototype.getChartObject = function getChartObject () {\n return this.chart;\n };\n\n Chart.prototype.getAdapter = function getAdapter () {\n return this.adapter;\n };\n\n Chart.prototype.updateData = function updateData (dataSource, options) {\n this.dataSource = dataSource;\n if (options) {\n this.__updateOptions(options);\n }\n fetchDataSource(this, dataSource, true);\n };\n\n Chart.prototype.setOptions = function setOptions (options) {\n this.__updateOptions(options);\n this.redraw();\n };\n\n Chart.prototype.redraw = function redraw () {\n fetchDataSource(this, this.rawData);\n };\n\n Chart.prototype.refreshData = function refreshData () {\n if (typeof this.dataSource === \"string\") {\n // prevent browser from caching\n var sep = this.dataSource.indexOf(\"?\") === -1 ? \"?\" : \"&\";\n var url = this.dataSource + sep + \"_=\" + (new Date()).getTime();\n fetchDataSource(this, url);\n } else if (typeof this.dataSource === \"function\") {\n fetchDataSource(this, this.dataSource);\n }\n };\n\n Chart.prototype.startRefresh = function startRefresh () {\n var this$1$1 = this;\n\n var refresh = this.options.refresh;\n\n if (refresh && typeof this.dataSource !== \"string\" && typeof this.dataSource !== \"function\") {\n throw new Error(\"Data source must be a URL or callback for refresh\");\n }\n\n if (!this.intervalId) {\n if (refresh) {\n this.intervalId = setInterval( function () {\n this$1$1.refreshData();\n }, refresh * 1000);\n } else {\n throw new Error(\"No refresh interval\");\n }\n }\n };\n\n Chart.prototype.stopRefresh = function stopRefresh () {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n this.intervalId = null;\n }\n };\n\n Chart.prototype.toImage = function toImage (download) {\n if (this.adapter === \"chartjs\") {\n if (download && download.background && download.background !== \"transparent\") {\n // https://stackoverflow.com/questions/30464750/chartjs-line-chart-set-background-color\n var canvas = this.chart.canvas;\n var ctx = this.chart.ctx;\n var tmpCanvas = document.createElement(\"canvas\");\n var tmpCtx = tmpCanvas.getContext(\"2d\");\n tmpCanvas.width = ctx.canvas.width;\n tmpCanvas.height = ctx.canvas.height;\n tmpCtx.fillStyle = download.background;\n tmpCtx.fillRect(0, 0, tmpCanvas.width, tmpCanvas.height);\n tmpCtx.drawImage(canvas, 0, 0);\n return tmpCanvas.toDataURL(\"image/png\");\n } else {\n return this.chart.toBase64Image();\n }\n } else {\n throw new Error(\"Feature only available for Chart.js\");\n }\n };\n\n Chart.prototype.destroy = function destroy () {\n this.destroyed = true;\n this.stopRefresh();\n\n if (this.__adapterObject) {\n this.__adapterObject.destroy(this);\n }\n\n if (this.__enterEvent) {\n removeEvent(this.element, \"mouseover\", this.__enterEvent);\n }\n\n if (this.__leaveEvent) {\n removeEvent(this.element, \"mouseout\", this.__leaveEvent);\n }\n };\n\n Chart.prototype.__updateOptions = function __updateOptions (options) {\n var updateRefresh = options.refresh && options.refresh !== this.options.refresh;\n this.options = merge(Chartkick.options, options);\n if (updateRefresh) {\n this.stopRefresh();\n this.startRefresh();\n }\n };\n\n Chart.prototype.__render = function __render () {\n this.data = this.__processData();\n renderChart(this.__chartName(), this);\n };\n\n Chart.prototype.__config = function __config () {\n return config;\n };\n\n var LineChart = /*@__PURE__*/(function (Chart) {\n function LineChart () {\n Chart.apply(this, arguments);\n }\n\n if ( Chart ) LineChart.__proto__ = Chart;\n LineChart.prototype = Object.create( Chart && Chart.prototype );\n LineChart.prototype.constructor = LineChart;\n\n LineChart.prototype.__processData = function __processData () {\n return processSeries(this);\n };\n\n LineChart.prototype.__chartName = function __chartName () {\n return \"LineChart\";\n };\n\n return LineChart;\n }(Chart));\n\n var PieChart = /*@__PURE__*/(function (Chart) {\n function PieChart () {\n Chart.apply(this, arguments);\n }\n\n if ( Chart ) PieChart.__proto__ = Chart;\n PieChart.prototype = Object.create( Chart && Chart.prototype );\n PieChart.prototype.constructor = PieChart;\n\n PieChart.prototype.__processData = function __processData () {\n return processSimple(this);\n };\n\n PieChart.prototype.__chartName = function __chartName () {\n return \"PieChart\";\n };\n\n return PieChart;\n }(Chart));\n\n var ColumnChart = /*@__PURE__*/(function (Chart) {\n function ColumnChart () {\n Chart.apply(this, arguments);\n }\n\n if ( Chart ) ColumnChart.__proto__ = Chart;\n ColumnChart.prototype = Object.create( Chart && Chart.prototype );\n ColumnChart.prototype.constructor = ColumnChart;\n\n ColumnChart.prototype.__processData = function __processData () {\n return processSeries(this, null, true);\n };\n\n ColumnChart.prototype.__chartName = function __chartName () {\n return \"ColumnChart\";\n };\n\n return ColumnChart;\n }(Chart));\n\n var BarChart = /*@__PURE__*/(function (Chart) {\n function BarChart () {\n Chart.apply(this, arguments);\n }\n\n if ( Chart ) BarChart.__proto__ = Chart;\n BarChart.prototype = Object.create( Chart && Chart.prototype );\n BarChart.prototype.constructor = BarChart;\n\n BarChart.prototype.__processData = function __processData () {\n return processSeries(this, null, true);\n };\n\n BarChart.prototype.__chartName = function __chartName () {\n return \"BarChart\";\n };\n\n return BarChart;\n }(Chart));\n\n var AreaChart = /*@__PURE__*/(function (Chart) {\n function AreaChart () {\n Chart.apply(this, arguments);\n }\n\n if ( Chart ) AreaChart.__proto__ = Chart;\n AreaChart.prototype = Object.create( Chart && Chart.prototype );\n AreaChart.prototype.constructor = AreaChart;\n\n AreaChart.prototype.__processData = function __processData () {\n return processSeries(this);\n };\n\n AreaChart.prototype.__chartName = function __chartName () {\n return \"AreaChart\";\n };\n\n return AreaChart;\n }(Chart));\n\n var GeoChart = /*@__PURE__*/(function (Chart) {\n function GeoChart () {\n Chart.apply(this, arguments);\n }\n\n if ( Chart ) GeoChart.__proto__ = Chart;\n GeoChart.prototype = Object.create( Chart && Chart.prototype );\n GeoChart.prototype.constructor = GeoChart;\n\n GeoChart.prototype.__processData = function __processData () {\n return processSimple(this);\n };\n\n GeoChart.prototype.__chartName = function __chartName () {\n return \"GeoChart\";\n };\n\n return GeoChart;\n }(Chart));\n\n var ScatterChart = /*@__PURE__*/(function (Chart) {\n function ScatterChart () {\n Chart.apply(this, arguments);\n }\n\n if ( Chart ) ScatterChart.__proto__ = Chart;\n ScatterChart.prototype = Object.create( Chart && Chart.prototype );\n ScatterChart.prototype.constructor = ScatterChart;\n\n ScatterChart.prototype.__processData = function __processData () {\n return processSeries(this, \"number\");\n };\n\n ScatterChart.prototype.__chartName = function __chartName () {\n return \"ScatterChart\";\n };\n\n return ScatterChart;\n }(Chart));\n\n var BubbleChart = /*@__PURE__*/(function (Chart) {\n function BubbleChart () {\n Chart.apply(this, arguments);\n }\n\n if ( Chart ) BubbleChart.__proto__ = Chart;\n BubbleChart.prototype = Object.create( Chart && Chart.prototype );\n BubbleChart.prototype.constructor = BubbleChart;\n\n BubbleChart.prototype.__processData = function __processData () {\n return processSeries(this, \"bubble\");\n };\n\n BubbleChart.prototype.__chartName = function __chartName () {\n return \"BubbleChart\";\n };\n\n return BubbleChart;\n }(Chart));\n\n var Timeline = /*@__PURE__*/(function (Chart) {\n function Timeline () {\n Chart.apply(this, arguments);\n }\n\n if ( Chart ) Timeline.__proto__ = Chart;\n Timeline.prototype = Object.create( Chart && Chart.prototype );\n Timeline.prototype.constructor = Timeline;\n\n Timeline.prototype.__processData = function __processData () {\n var i, data = this.rawData;\n for (i = 0; i < data.length; i++) {\n data[i][1] = toDate(data[i][1]);\n data[i][2] = toDate(data[i][2]);\n }\n return data;\n };\n\n Timeline.prototype.__chartName = function __chartName () {\n return \"Timeline\";\n };\n\n return Timeline;\n }(Chart));\n\n var Chartkick = {\n LineChart: LineChart,\n PieChart: PieChart,\n ColumnChart: ColumnChart,\n BarChart: BarChart,\n AreaChart: AreaChart,\n GeoChart: GeoChart,\n ScatterChart: ScatterChart,\n BubbleChart: BubbleChart,\n Timeline: Timeline,\n charts: {},\n configure: function (options) {\n for (var key in options) {\n if (options.hasOwnProperty(key)) {\n config[key] = options[key];\n }\n }\n },\n setDefaultOptions: function (opts) {\n Chartkick.options = opts;\n },\n eachChart: function (callback) {\n for (var chartId in Chartkick.charts) {\n if (Chartkick.charts.hasOwnProperty(chartId)) {\n callback(Chartkick.charts[chartId]);\n }\n }\n },\n destroyAll: function() {\n for (var chartId in Chartkick.charts) {\n if (Chartkick.charts.hasOwnProperty(chartId)) {\n Chartkick.charts[chartId].destroy();\n delete Chartkick.charts[chartId];\n }\n }\n },\n config: config,\n options: {},\n adapters: adapters,\n addAdapter: addAdapter,\n use: function(adapter) {\n addAdapter(adapter);\n return Chartkick;\n }\n };\n\n // not ideal, but allows for simpler integration\n if (typeof window !== \"undefined\" && !window.Chartkick) {\n window.Chartkick = Chartkick;\n\n // clean up previous charts before Turbolinks loads new page\n document.addEventListener(\"turbolinks:before-render\", function() {\n if (config.autoDestroy !== false) {\n Chartkick.destroyAll();\n }\n });\n document.addEventListener(\"turbo:before-render\", function() {\n if (config.autoDestroy !== false) {\n Chartkick.destroyAll();\n }\n });\n\n // use setTimeout so charting library can come later in same JS file\n setTimeout(function() {\n window.dispatchEvent(new Event(\"chartkick:load\"));\n }, 0);\n }\n\n // backwards compatibility for esm require\n Chartkick.default = Chartkick;\n\n return Chartkick;\n\n}));\n"],"names":["module","exports","isArray","variable","Object","prototype","toString","call","isFunction","Function","isPlainObject","extend","target","source","key","undefined","merge","obj1","obj2","DATE_PATTERN","negativeValues","series","i","j","data","length","toStr","n","toFloat","parseFloat","toDate","matches","year","month","day","Date","match","parseInt","str","replace","parse","toArr","arr","hasOwnProperty","push","jsOptionsFunc","defaultOptions","hideLegend","setTitle","setMin","setMax","setStacked","setXtitle","setYtitle","chart","opts","chartOptions","options","singleSeriesFormat","legend","title","min","max","stacked","colors","xtitle","ytitle","library","sortByTime","a","b","getTime","sortByNumberSeries","sortByNumber","isMinute","d","getMilliseconds","getSeconds","isHour","getMinutes","isDay","getHours","isWeek","dayOfWeek","getDay","isMonth","getDate","isYear","getMonth","isDate","obj","isNaN","isNumber","byteSuffixes","formatValue","pre","value","axis","prefix","suffix","precision","round","byteScale","suffixIdx","baseValue","Error","toPrecision","zeros","num","Math","pow","toFixed","thousands","decimal","parts","split","seriesOption","option","allZeros","baseOptions","maintainAspectRatio","animation","plugins","tooltip","displayColors","callbacks","font","size","color","interaction","defaultOptions$2","scales","y","ticks","maxTicksLimit","grid","x","drawOnChartArea","time","defaultColors","hideLegend$2","display","position","setTitle$2","text","setMin$2","setMax$2","setBarMin$1","setBarMax$1","setStacked$2","setXtitle$2","setYtitle$2","addOpacity","hex","opacity","result","exec","notnull","setLabelSize","maxLabelSize","ceil","element","offsetWidth","labels","callback","this","getLabelForValue","substring","setFormatOptions$1","chartType","formatOptions","bytes","s","scale","stepSize","label","context","dataset","formattedValue","dataPoint","raw","v","dataLabel","slice","parsed","valueLabel","jsOptions$2","createDataTable","datasets","week","hour","minute","i$1","s$1","j$1","backgroundColor","rows","rows2","xtype","k","sortedLabels","Array","indexOf","sort","i$2","s$2","d$1","j$2","point","r","j$3","name","fill","borderColor","borderWidth","pointChart","pointBackgroundColor","pointHoverBackgroundColor","pointHitRadius","pointHoverBorderWidth","stack","tension","pointRadius","pointHoverRadius","xmin","xmax","minTime","maxTime","value$1","step","timeDiff","unit","displayFormats","width","unitStepSize","tooltipFormat","defaultExport$2","renderLineChart","type","drawChart","renderPieChart","donut","cutout","values","renderColumnChart","barOptions","indexAxis","renderAreaChart","renderBarChart","renderScatterChart","showLine","mode","renderBubbleChart","destroy","destroyed","code","window","console","log","JSON","stringify","innerHTML","ctx","getElementsByTagName","defaultOptions$1","xAxis","style","fontSize","yAxis","credits","enabled","plotOptions","areaspline","area","marker","useUTC","hideLegend$1","verticalAlign","layout","align","setTitle$1","jsOptions$1","stackedValue","stacking","setFormatOptions","formatter","pointFormatter","pointFormat","defaultExport$1","curve","symbol","points","pie","innerSize","categories","d2","newSeries","renderTo","id","Chart","loaded","chartArea","fontName","pointSize","textStyle","alignment","curveType","hAxis","titleTextStyle","gridlines","baselineColor","viewWindow","vAxis","setBarMin","setBarMax","isStacked","italic","jsOptions","resize","attachEvent","addEventListener","defaultExport","formatSeriesData","keyType","keyFunc","detectXType","noDatetime","dataEmpty","detectXTypeWithFunction","func","copySeries","copy","processSeries","rawData","discrete","processSimple","perfectData","addDownloadButton","link","document","createElement","download","filename","top","right","zIndex","lineHeight","image","alt","border","src","appendChild","__downloadAttached","__enterEvent","addEvent","e","related","relatedTarget","childOf","href","toImage","__leaveEvent","parentNode","removeChild","elem","event","fn","fn2","removeEvent","removeEventListener","detachEvent","p","c","this$1$1","waitForLoaded","height","pieHole","visualization","DataTable","addColumn","addRows","areaOpacity","renderGeoChart","colorAxis","row","renderTimeline","clearChart","toJSON","draw","pack","runCallbacks","loadOptions","packages","config","__config","language","mapsApiKey","charts","load","cb","LineChart","Timeline","GeoChart","splice","columnType","concat","pendingRequests","runningRequests","maxRequests","pushRequest","url","success","error","runNext","request","shift","getJSON","requestComplete","ajaxCall","jqXHR","textStatus","errorThrown","message","$","jQuery","Zepto","ajax","dataType","complete","xhr","XMLHttpRequest","open","setRequestHeader","onload","status","responseText","statusText","send","adapters","setText","body","innerText","textContent","chartError","noPrefix","errorCatcher","__render","err","fetchDataSource","dataSource","showLoading","loading","getAdapterType","product","addAdapter","adapter","loadAdapters","Highcharts","google","renderChart","empty","messages","callAdapter","fnName","adapterName","__adapterObject","elementId","getElementById","Chartkick","refresh","startRefresh","getElement","getDataSource","getData","getOptions","getChartObject","getAdapter","updateData","__updateOptions","setOptions","redraw","refreshData","sep","intervalId","setInterval","stopRefresh","clearInterval","background","canvas","tmpCanvas","tmpCtx","getContext","fillStyle","fillRect","drawImage","toDataURL","toBase64Image","updateRefresh","__processData","__chartName","apply","arguments","__proto__","create","constructor","PieChart","ColumnChart","BarChart","AreaChart","ScatterChart","BubbleChart","configure","setDefaultOptions","eachChart","chartId","destroyAll","use","autoDestroy","setTimeout","dispatchEvent","Event","default","factory"],"sourceRoot":""}