{"version":3,"sources":["../../js/custom-tooltips.js"],"names":["CustomTooltips","tooltipModel","_idMaker","_canvasId","_this","this","ClassName","Selector","DIV","SPAN","TOOLTIP","_chart","canvas","id","Math","random","toString","tooltip","document","getElementById","createElement","className","parentNode","appendChild","opacity","classList","remove","yAlign","add","body","titleLines","title","tooltipHeader","forEach","tooltipHeaderTitle","innerHTML","tooltipBody","map","item","lines","i","tooltipBodyItem","colors","labelColors","tooltipBodyItemColor","style","backgroundColor","split","length","tooltipBodyItemLabel","tooltipBodyItemValue","pop","positionY","offsetTop","positionX","offsetLeft","left","caretX","top","caretY"],"mappings":"AAOA,SAASA,eAAeC,GAAc,IAG5BC,EAKAC,EAR4BC,EAAAC,KAa9BC,EACsB,QADtBA,EAEsB,QAFtBA,EAGsB,kBAHtBA,EAIsB,eAJtBA,EAKsB,eALtBA,EAMsB,oBANtBA,EAOsB,0BAPtBA,EAQsB,0BARtBA,EASsB,0BATtBA,EAUsB,iBAVtBA,EAWsB,sBAGtBC,EAAW,CACfC,IAAU,MACVC,KAAU,OACVC,SAAaL,KAAKM,OAAOC,OAAOC,KA3B1BX,EAAW,WAGf,OADoB,OACX,EAAIY,KAAKC,UAA0B,GAAGC,SAFlC,KAITb,EAAAA,YAAuBD,IAAaA,KAC1CE,EAAKO,OAAOC,OAAOC,GAAKV,IAqBxB,YAGEc,EAAUC,SAASC,eAAeZ,EAASG,SAU/C,GARKO,KACHA,EAAUC,SAASE,cAAc,QACzBP,GAAKN,EAASG,QACtBO,EAAQI,UAAYf,EACpBD,KAAKM,OAAOC,OAAOU,WAAWC,YAAYN,IAIf,IAAzBhB,EAAauB,QAAjB,CAcA,GARAP,EAAQQ,UAAUC,OAAOpB,EAAiBA,EAAiBA,GACvDL,EAAa0B,OACfV,EAAQQ,UAAUG,IAAI3B,EAAa0B,QAEnCV,EAAQQ,UAAUG,IAAItB,GAIpBL,EAAa4B,KAAM,CACrB,IAAMC,EAAa7B,EAAa8B,OAAS,GAEnCC,EAAgBd,SAASE,cAAcb,EAASC,KACtDwB,EAAcX,UAAYf,EAE1BwB,EAAWG,QAAQ,SAACF,GAClB,IAAMG,EAAqBhB,SAASE,cAAcb,EAASC,KAC3D0B,EAAmBb,UAAYf,EAC/B4B,EAAmBC,UAAYJ,EAC/BC,EAAcT,YAAYW,KAG5B,IAAME,EAAclB,SAASE,cAAcb,EAASC,KACpD4B,EAAYf,UAAYf,EAECL,EAAa4B,KAAKQ,IAAI,SAACC,GAAD,OAAUA,EAAKC,QAC7CN,QAAQ,SAACK,EAAME,GAC9B,IAAMC,EAAkBvB,SAASE,cAAcb,EAASC,KACxDiC,EAAgBpB,UAAYf,EAE5B,IAAMoC,EAASzC,EAAa0C,YAAYH,GAElCI,EAAuB1B,SAASE,cAAcb,EAASE,MAM7D,GALAmC,EAAqBvB,UAAYf,EACjCsC,EAAqBC,MAAMC,gBAAkBJ,EAAOI,gBAEpDL,EAAgBlB,YAAYqB,GAEI,EAA5BN,EAAK,GAAGS,MAAM,KAAKC,OAAY,CACjC,IAAMC,EAAuB/B,SAASE,cAAcb,EAASE,MAC7DwC,EAAqB5B,UAAYf,EACjC2C,EAAqBd,UAAYG,EAAK,GAAGS,MAAM,MAAM,GAErDN,EAAgBlB,YAAY0B,GAE5B,IAAMC,EAAuBhC,SAASE,cAAcb,EAASE,MAC7DyC,EAAqB7B,UAAYf,EACjC4C,EAAqBf,UAAYG,EAAK,GAAGS,MAAM,MAAMI,MAErDV,EAAgBlB,YAAY2B,OACvB,CACL,IAAMA,EAAuBhC,SAASE,cAAcb,EAASE,MAC7DyC,EAAqB7B,UAAYf,EACjC4C,EAAqBf,UAAYG,EAAK,GAEtCG,EAAgBlB,YAAY2B,GAG9Bd,EAAYb,YAAYkB,KAG1BxB,EAAQkB,UAAY,GAEpBlB,EAAQM,YAAYS,GACpBf,EAAQM,YAAYa,GAGtB,IAAMgB,EAAY/C,KAAKM,OAAOC,OAAOyC,UAC/BC,EAAYjD,KAAKM,OAAOC,OAAO2C,WAGrCtC,EAAQ4B,MAAMrB,QAAU,EACxBP,EAAQ4B,MAAMW,KAAUF,EAAYrD,EAAawD,OAAjD,KACAxC,EAAQ4B,MAAMa,IAASN,EAAYnD,EAAa0D,OAAhD,UA7EE1C,EAAQ4B,MAAMrB,QAAU","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI Plugins - Custom Tooltips for Chart.js (v1.2.0): custom-tooltips.js\n * Licensed under MIT (https://coreui.io/license)\n * --------------------------------------------------------------------------\n */\n\nfunction CustomTooltips(tooltipModel) {\n // Add unique id if not exist\n const _setCanvasId = () => {\n const _idMaker = () => {\n const _hex = 16\n const _multiplier = 0x10000\n return ((1 + Math.random()) * _multiplier | 0).toString(_hex)\n }\n const _canvasId = `_canvas-${_idMaker() + _idMaker()}`\n this._chart.canvas.id = _canvasId\n return _canvasId\n }\n\n const ClassName = {\n ABOVE : 'above',\n BELOW : 'below',\n CHARTJS_TOOLTIP : 'chartjs-tooltip',\n NO_TRANSFORM : 'no-transform',\n TOOLTIP_BODY : 'tooltip-body',\n TOOLTIP_BODY_ITEM : 'tooltip-body-item',\n TOOLTIP_BODY_ITEM_COLOR : 'tooltip-body-item-color',\n TOOLTIP_BODY_ITEM_LABEL : 'tooltip-body-item-label',\n TOOLTIP_BODY_ITEM_VALUE : 'tooltip-body-item-value',\n TOOLTIP_HEADER : 'tooltip-header',\n TOOLTIP_HEADER_ITEM : 'tooltip-header-item'\n }\n\n const Selector = {\n DIV : 'div',\n SPAN : 'span',\n TOOLTIP : `${this._chart.canvas.id || _setCanvasId()}-tooltip`\n }\n\n let tooltip = document.getElementById(Selector.TOOLTIP)\n\n if (!tooltip) {\n tooltip = document.createElement('div')\n tooltip.id = Selector.TOOLTIP\n tooltip.className = ClassName.CHARTJS_TOOLTIP\n this._chart.canvas.parentNode.appendChild(tooltip)\n }\n\n // Hide if no tooltip\n if (tooltipModel.opacity === 0) {\n tooltip.style.opacity = 0\n return\n }\n\n // Set caret Position\n tooltip.classList.remove(ClassName.ABOVE, ClassName.BELOW, ClassName.NO_TRANSFORM)\n if (tooltipModel.yAlign) {\n tooltip.classList.add(tooltipModel.yAlign)\n } else {\n tooltip.classList.add(ClassName.NO_TRANSFORM)\n }\n\n // Set Text\n if (tooltipModel.body) {\n const titleLines = tooltipModel.title || []\n\n const tooltipHeader = document.createElement(Selector.DIV)\n tooltipHeader.className = ClassName.TOOLTIP_HEADER\n\n titleLines.forEach((title) => {\n const tooltipHeaderTitle = document.createElement(Selector.DIV)\n tooltipHeaderTitle.className = ClassName.TOOLTIP_HEADER_ITEM\n tooltipHeaderTitle.innerHTML = title\n tooltipHeader.appendChild(tooltipHeaderTitle)\n })\n\n const tooltipBody = document.createElement(Selector.DIV)\n tooltipBody.className = ClassName.TOOLTIP_BODY\n\n const tooltipBodyItems = tooltipModel.body.map((item) => item.lines)\n tooltipBodyItems.forEach((item, i) => {\n const tooltipBodyItem = document.createElement(Selector.DIV)\n tooltipBodyItem.className = ClassName.TOOLTIP_BODY_ITEM\n\n const colors = tooltipModel.labelColors[i]\n\n const tooltipBodyItemColor = document.createElement(Selector.SPAN)\n tooltipBodyItemColor.className = ClassName.TOOLTIP_BODY_ITEM_COLOR\n tooltipBodyItemColor.style.backgroundColor = colors.backgroundColor\n\n tooltipBodyItem.appendChild(tooltipBodyItemColor)\n\n if (item[0].split(':').length > 1) {\n const tooltipBodyItemLabel = document.createElement(Selector.SPAN)\n tooltipBodyItemLabel.className = ClassName.TOOLTIP_BODY_ITEM_LABEL\n tooltipBodyItemLabel.innerHTML = item[0].split(': ')[0]\n\n tooltipBodyItem.appendChild(tooltipBodyItemLabel)\n\n const tooltipBodyItemValue = document.createElement(Selector.SPAN)\n tooltipBodyItemValue.className = ClassName.TOOLTIP_BODY_ITEM_VALUE\n tooltipBodyItemValue.innerHTML = item[0].split(': ').pop()\n\n tooltipBodyItem.appendChild(tooltipBodyItemValue)\n } else {\n const tooltipBodyItemValue = document.createElement(Selector.SPAN)\n tooltipBodyItemValue.className = ClassName.TOOLTIP_BODY_ITEM_VALUE\n tooltipBodyItemValue.innerHTML = item[0]\n\n tooltipBodyItem.appendChild(tooltipBodyItemValue)\n }\n\n tooltipBody.appendChild(tooltipBodyItem)\n })\n\n tooltip.innerHTML = ''\n\n tooltip.appendChild(tooltipHeader)\n tooltip.appendChild(tooltipBody)\n }\n\n const positionY = this._chart.canvas.offsetTop\n const positionX = this._chart.canvas.offsetLeft\n\n // Display, position, and set styles for font\n tooltip.style.opacity = 1\n tooltip.style.left = `${positionX + tooltipModel.caretX}px`\n tooltip.style.top = `${positionY + tooltipModel.caretY}px`\n}\n\nexport default CustomTooltips\n"]}