All Downloads are FREE. Search and download functionalities are using the official Maven repository.

report-resources.chartist.chartist-plugin-tooltip.dist.chartist-plugin-tooltip.min.js.map Maven / Gradle / Ivy

{"version":3,"sources":["chartist-plugin-tooltip.js"],"names":["root","factory","define","amd","Chartist","returnExportsGlobal","exports","module","require","this","window","document","show","element","hasClass","className","hide","regex","RegExp","replace","trim","getAttribute","indexOf","next","nextSibling","text","innerText","textContent","defaultOptions","currency","undefined","currencyFormatCallback","tooltipOffset","x","y","anchorToPoint","appendToBody","class","pointClass","plugins","tooltip","options","extend","chart","on","event","selector","callback","$chart","addEventListener","e","target","setPosition","height","$toolTip","offsetHeight","width","offsetWidth","anchorX","anchorY","offsetX","offsetY","style","top","pageY","left","pageX","box","getBoundingClientRect","pageXOffset","pageYOffset","x2","y2","parseInt","baseVal","value","tooltipSelector","Bar","Pie","donut","container","querySelector","createElement","body","appendChild","$point","tooltipText","isPieChart","parentNode","seriesName","meta","hasMeta","transformTooltipTextFnc","tooltipFnc","metaIsHTML","txt","innerHTML","label"],"mappings":"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","file":"chartist-plugin-tooltip.min.js","sourcesContent":["(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define([\"chartist\"], function (Chartist) {\n      return (root.returnExportsGlobal = factory(Chartist));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like enviroments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"chartist\"));\n  } else {\n    root['Chartist.plugins.tooltip'] = factory(Chartist);\n  }\n}(this, function (Chartist) {\n\n  /**\r\n   * Chartist.js plugin to display a data label on top of the points in a line chart.\r\n   *\r\n   */\r\n  /* global Chartist */\r\n  (function (window, document, Chartist) {\r\n    'use strict';\r\n\r\n    var defaultOptions = {\r\n      currency: undefined,\r\n      currencyFormatCallback: undefined,\r\n      tooltipOffset: {\r\n        x: 0,\r\n        y: -20\r\n      },\r\n      anchorToPoint: false,\r\n      appendToBody: false,\r\n      class: undefined,\r\n      pointClass: 'ct-point'\r\n    };\r\n\r\n    Chartist.plugins = Chartist.plugins || {};\r\n    Chartist.plugins.tooltip = function (options) {\r\n      options = Chartist.extend({}, defaultOptions, options);\r\n\r\n      return function tooltip(chart) {\r\n        var tooltipSelector = options.pointClass;\r\n        if (chart instanceof Chartist.Bar) {\r\n          tooltipSelector = 'ct-bar';\r\n        } else if (chart instanceof Chartist.Pie) {\r\n          // Added support for donut graph\r\n          if (chart.options.donut) {\r\n            tooltipSelector = 'ct-slice-donut';\r\n          } else {\r\n            tooltipSelector = 'ct-slice-pie';\r\n          }\r\n        }\r\n\r\n        var $chart = chart.container;\r\n        var $toolTip = $chart.querySelector('.chartist-tooltip');\r\n        if (!$toolTip) {\r\n          $toolTip = document.createElement('div');\r\n          $toolTip.className = (!options.class) ? 'chartist-tooltip' : 'chartist-tooltip ' + options.class;\r\n          if (!options.appendToBody) {\r\n            $chart.appendChild($toolTip);\r\n          } else {\r\n            document.body.appendChild($toolTip);\r\n          }\r\n        }\r\n        var height = $toolTip.offsetHeight;\r\n        var width = $toolTip.offsetWidth;\r\n\r\n        hide($toolTip);\r\n\r\n        function on(event, selector, callback) {\r\n          $chart.addEventListener(event, function (e) {\r\n            if (!selector || hasClass(e.target, selector))\r\n              callback(e);\r\n          });\r\n        }\r\n\r\n        on('mouseover', tooltipSelector, function (event) {\r\n          var $point = event.target;\r\n          var tooltipText = '';\r\n\r\n          var isPieChart = (chart instanceof Chartist.Pie) ? $point : $point.parentNode;\r\n          var seriesName = (isPieChart) ? $point.parentNode.getAttribute('ct:meta') || $point.parentNode.getAttribute('ct:series-name') : '';\r\n          var meta = $point.getAttribute('ct:meta') || seriesName || '';\r\n          var hasMeta = !!meta;\r\n          var value = $point.getAttribute('ct:value');\r\n\r\n          if (options.transformTooltipTextFnc && typeof options.transformTooltipTextFnc === 'function') {\r\n            value = options.transformTooltipTextFnc(value);\r\n          }\r\n\r\n          if (options.tooltipFnc && typeof options.tooltipFnc === 'function') {\r\n            tooltipText = options.tooltipFnc(meta, value);\r\n          } else {\r\n            if (options.metaIsHTML) {\r\n              var txt = document.createElement('textarea');\r\n              txt.innerHTML = meta;\r\n              meta = txt.value;\r\n            }\r\n\r\n            meta = '' + meta + '';\r\n\r\n            if (hasMeta) {\r\n              tooltipText += meta + '
';\r\n } else {\r\n // For Pie Charts also take the labels into account\r\n // Could add support for more charts here as well!\r\n if (chart instanceof Chartist.Pie) {\r\n var label = next($point, 'ct-label');\r\n if (label) {\r\n tooltipText += text(label) + '
';\r\n }\r\n }\r\n }\r\n\r\n if (value) {\r\n if (options.currency) {\r\n if (options.currencyFormatCallback != undefined) {\r\n value = options.currencyFormatCallback(value, options);\r\n } else {\r\n value = options.currency + value.replace(/(\\d)(?=(\\d{3})+(?:\\.\\d+)?$)/g, '$1,');\r\n }\r\n }\r\n value = '' + value + '';\r\n tooltipText += value;\r\n }\r\n }\r\n\r\n if(tooltipText) {\r\n $toolTip.innerHTML = tooltipText;\r\n setPosition(event);\r\n show($toolTip);\r\n\r\n // Remember height and width to avoid wrong position in IE\r\n height = $toolTip.offsetHeight;\r\n width = $toolTip.offsetWidth;\r\n }\r\n });\r\n\r\n on('mouseout', tooltipSelector, function () {\r\n hide($toolTip);\r\n });\r\n\r\n on('mousemove', null, function (event) {\r\n if (false === options.anchorToPoint)\r\n setPosition(event);\r\n });\r\n\r\n function setPosition(event) {\r\n height = height || $toolTip.offsetHeight;\r\n width = width || $toolTip.offsetWidth;\r\n var offsetX = - width / 2 + options.tooltipOffset.x\r\n var offsetY = - height + options.tooltipOffset.y;\r\n var anchorX, anchorY;\r\n\r\n if (!options.appendToBody) {\r\n var box = $chart.getBoundingClientRect();\r\n var left = event.pageX - box.left - window.pageXOffset ;\r\n var top = event.pageY - box.top - window.pageYOffset ;\r\n\r\n if (true === options.anchorToPoint && event.target.x2 && event.target.y2) {\r\n anchorX = parseInt(event.target.x2.baseVal.value);\r\n anchorY = parseInt(event.target.y2.baseVal.value);\r\n }\r\n\r\n $toolTip.style.top = (anchorY || top) + offsetY + 'px';\r\n $toolTip.style.left = (anchorX || left) + offsetX + 'px';\r\n } else {\r\n $toolTip.style.top = event.pageY + offsetY + 'px';\r\n $toolTip.style.left = event.pageX + offsetX + 'px';\r\n }\r\n }\r\n }\r\n };\r\n\r\n function show(element) {\r\n if(!hasClass(element, 'tooltip-show')) {\r\n element.className = element.className + ' tooltip-show';\r\n }\r\n }\r\n\r\n function hide(element) {\r\n var regex = new RegExp('tooltip-show' + '\\\\s*', 'gi');\r\n element.className = element.className.replace(regex, '').trim();\r\n }\r\n\r\n function hasClass(element, className) {\r\n return (' ' + element.getAttribute('class') + ' ').indexOf(' ' + className + ' ') > -1;\r\n }\r\n\r\n function next(element, className) {\r\n do {\r\n element = element.nextSibling;\r\n } while (element && !hasClass(element, className));\r\n return element;\r\n }\r\n\r\n function text(element) {\r\n return element.innerText || element.textContent;\r\n }\r\n\r\n } (window, document, Chartist));\r\n\n return Chartist.plugins.tooltip;\n\n}));\n"]}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy