UNPKG

ng2-charts

Version:

Reactive, responsive, beautiful charts for Angular2 based on Chart.js

115 lines 12.7 kB
/** * @fileoverview added by tsickle * Generated from: lib/monkey-patch-chart-js-tooltip.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ // tslint:disable:variable-name // tslint:disable:no-var-keyword // tslint:disable:prefer-const // tslint:disable:only-arrow-functions // tslint:disable:one-variable-per-declaration // tslint:disable:object-literal-shorthand // tslint:disable:space-before-function-paren /** * @return {?} */ export function monkeyPatchChartJsTooltip() { if (typeof Chart === 'undefined') { console.log('Chart not defined (guessing this is a universal build, and I don\'t know why this happens -- Aviad)'); return; } Chart.Tooltip.prototype.drawBody = drawBody; /** @type {?} */ const helpers = Chart.helpers; /** * @param {?} vm * @param {?} align * @return {?} */ function getAlignedX(vm, align) { return align === 'center' ? vm.x + vm.width / 2 : align === 'right' ? vm.x + vm.width - vm.xPadding : vm.x + vm.xPadding; } /** * @param {?} pt * @param {?} vm * @param {?} ctx * @return {?} */ function drawBody(pt, vm, ctx) { /** @type {?} */ var bodyFontSize = vm.bodyFontSize; /** @type {?} */ var bodySpacing = vm.bodySpacing; /** @type {?} */ var bodyAlign = vm._bodyAlign; /** @type {?} */ var body = vm.body; /** @type {?} */ var drawColorBoxes = vm.displayColors; /** @type {?} */ var labelColors = vm.labelColors; /** @type {?} */ var xLinePadding = 0; /** @type {?} */ var colorX = drawColorBoxes ? getAlignedX(vm, 'left') : 0; /** @type {?} */ var textColor; ctx.textAlign = bodyAlign; ctx.textBaseline = 'top'; ctx.font = helpers.fontString(bodyFontSize, vm._bodyFontStyle, vm._bodyFontFamily); pt.x = getAlignedX(vm, bodyAlign); // Before Body /** @type {?} */ var fillLineOfText = (/** * @param {?} line * @return {?} */ function (line) { ctx.fillText(line, pt.x + xLinePadding, pt.y); pt.y += bodyFontSize + bodySpacing; }); // Before body lines ctx.fillStyle = vm.bodyFontColor; helpers.each(vm.beforeBody, fillLineOfText); xLinePadding = drawColorBoxes && bodyAlign !== 'right' ? bodyAlign === 'center' ? (bodyFontSize / 2 + 1) : (bodyFontSize + 2) : 0; // Draw body lines now helpers.each(body, (/** * @param {?} bodyItem * @param {?} i * @return {?} */ function (bodyItem, i) { textColor = vm.labelTextColors[i]; ctx.fillStyle = textColor; helpers.each(bodyItem.before, fillLineOfText); // Draw Legend-like boxes if needed if (drawColorBoxes) { // Fill a white rect so that colours merge nicely if the opacity is < 1 ctx.fillStyle = vm.legendColorBackground; ctx.fillRect(colorX, pt.y, bodyFontSize, bodyFontSize); // Border ctx.lineWidth = 1; ctx.strokeStyle = labelColors[i].borderColor; ctx.strokeRect(colorX, pt.y, bodyFontSize, bodyFontSize); // Inner square ctx.fillStyle = labelColors[i].backgroundColor; ctx.fillRect(colorX + 1, pt.y + 1, bodyFontSize - 2, bodyFontSize - 2); ctx.fillStyle = textColor; } helpers.each(bodyItem.lines, fillLineOfText); helpers.each(bodyItem.after, fillLineOfText); })); // Reset back to 0 for after body xLinePadding = 0; // After body lines helpers.each(vm.afterBody, fillLineOfText); pt.y -= bodySpacing; // Remove last body spacing } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5LXBhdGNoLWNoYXJ0LWpzLXRvb2x0aXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZzItY2hhcnRzL3NyYy9saWIvbW9ua2V5LXBhdGNoLWNoYXJ0LWpzLXRvb2x0aXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBZ0JBLE1BQU0sVUFBVSx5QkFBeUI7SUFDdkMsSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXLEVBQUU7UUFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxR0FBcUcsQ0FBQyxDQUFDO1FBQ25ILE9BQU87S0FDUjtJQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7O1VBQ3RDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTzs7Ozs7O0lBRTdCLFNBQVMsV0FBVyxDQUFDLEVBQUUsRUFBRSxLQUFLO1FBQzVCLE9BQU8sS0FBSyxLQUFLLFFBQVE7WUFDdkIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDO1lBQ3JCLENBQUMsQ0FBQyxLQUFLLEtBQUssT0FBTztnQkFDakIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsUUFBUTtnQkFDL0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQztJQUMzQixDQUFDOzs7Ozs7O0lBRUQsU0FBUyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHOztZQUN2QixZQUFZLEdBQUcsRUFBRSxDQUFDLFlBQVk7O1lBQzlCLFdBQVcsR0FBRyxFQUFFLENBQUMsV0FBVzs7WUFDNUIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxVQUFVOztZQUN6QixJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUk7O1lBQ2QsY0FBYyxHQUFHLEVBQUUs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QyxRQUFRLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQy9DLENBQUMsRUFBQyxDQUFDO1FBRUgsaUNBQWlDO1FBQ2pDLFlBQVksR0FBRyxDQUFDLENBQUM7UUFFakIsbUJBQW1CO1FBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUMzQyxFQUFFLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxDQUFDLDJCQUEyQjtJQUNsRCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlOnZhcmlhYmxlLW5hbWVcclxuLy8gdHNsaW50OmRpc2FibGU6bm8tdmFyLWtleXdvcmRcclxuLy8gdHNsaW50OmRpc2FibGU6cHJlZmVyLWNvbnN0XHJcbi8vIHRzbGludDpkaXNhYmxlOm9ubHktYXJyb3ctZnVuY3Rpb25zXHJcbi8vIHRzbGludDpkaXNhYmxlOm9uZS12YXJpYWJsZS1wZXItZGVjbGFyYXRpb25cclxuLy8gdHNsaW50OmRpc2FibGU6b2JqZWN0LWxpdGVyYWwtc2hvcnRoYW5kXHJcbi8vIHRzbGludDpkaXNhYmxlOnNwYWNlLWJlZm9yZS1mdW5jdGlvbi1wYXJlblxyXG5cclxuZGVjbGFyZSBjbGFzcyBDaGFydCB7XHJcbiAgc3RhdGljIHJlYWRvbmx5IENoYXJ0OiB0eXBlb2YgQ2hhcnQ7XHJcbiAgc3RhdGljIHJlYWRvbmx5IFRvb2x0aXA6IGFueTtcclxuICBzdGF0aWMgcmVhZG9ubHkgaGVscGVyczogYW55O1xyXG4gIHN0YXRpYyByZWFkb25seSBkZWZhdWx0czogYW55O1xyXG4gIHN0YXRpYyByZWFkb25seSBwbHVnaW5zOiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtb25rZXlQYXRjaENoYXJ0SnNUb29sdGlwKCkge1xyXG4gIGlmICh0eXBlb2YgQ2hhcnQgPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICBjb25zb2xlLmxvZygnQ2hhcnQgbm90IGRlZmluZWQgKGd1ZXNzaW5nIHRoaXMgaXMgYSB1bml2ZXJzYWwgYnVpbGQsIGFuZCBJIGRvblxcJ3Qga25vdyB3aHkgdGhpcyBoYXBwZW5zIC0tIEF2aWFkKScpO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICBDaGFydC5Ub29sdGlwLnByb3RvdHlwZS5kcmF3Qm9keSA9IGRyYXdCb2R5O1xyXG4gIGNvbnN0IGhlbHBlcnMgPSBDaGFydC5oZWxwZXJzO1xyXG5cclxuICBmdW5jdGlvbiBnZXRBbGlnbmVkWCh2bSwgYWxpZ24pIHtcclxuICAgIHJldHVybiBhbGlnbiA9PT0gJ2NlbnRlcidcclxuICAgICAgPyB2bS54ICsgdm0ud2lkdGggLyAyXHJcbiAgICAgIDogYWxpZ24gPT09ICdyaWdodCdcclxuICAgICAgICA/IHZtLnggKyB2bS53aWR0aCAtIHZtLnhQYWRkaW5nXHJcbiAgICAgICAgOiB2bS54ICsgdm0ueFBhZGRpbmc7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBkcmF3Qm9keShwdCwgdm0sIGN0eCkge1xyXG4gICAgdmFyIGJvZHlGb250U2l6ZSA9IHZtLmJvZHlGb250U2l6ZTtcclxuICAgIHZhciBib2R5U3BhY2luZyA9IHZtLmJvZHlTcGFjaW5nO1xyXG4gICAgdmFyIGJvZHlBbGlnbiA9IHZtLl9ib2R5QWxpZ247XHJcbiAgICB2YXIgYm9keSA9IHZtLmJvZHk7XHJcbiAgICB2YXIgZHJhd0NvbG9yQm94ZXMgPSB2bS5kaXNwbGF5Q29sb3JzO1xyXG4gICAgdmFyIGxhYmVsQ29sb3JzID0gdm0ubGFiZWxDb2xvcnM7XHJcbiAgICB2YXIgeExpbmVQYWRkaW5nID0gMDtcclxuICAgIHZhciBjb2xvclggPSBkcmF3Q29sb3JCb3hlcyA/IGdldEFsaWduZWRYKHZtLCAnbGVmdCcpIDogMDtcclxuICAgIHZhciB0ZXh0Q29sb3I7XHJcblxyXG4gICAgY3R4LnRleHRBbGlnbiA9IGJvZHlBbGlnbjtcclxuICAgIGN0eC50ZXh0QmFzZWxpbmUgPSAndG9wJztcclxuICAgIGN0eC5mb250ID0gaGVscGVycy5mb250U3RyaW5nKGJvZHlGb250U2l6ZSwgdm0uX2JvZHlGb250U3R5bGUsIHZtLl9ib2R5Rm9udEZhbWlseSk7XHJcblxyXG4gICAgcHQueCA9IGdldEFsaWduZWRYKHZtLCBib2R5QWxpZ24pO1xyXG5cclxuICAgIC8vIEJlZm9yZSBCb2R5XHJcbiAgICB2YXIgZmlsbExpbmVPZlRleHQgPSBmdW5jdGlvbiAobGluZSkge1xyXG4gICAgICBjdHguZmlsbFRleHQobGluZSwgcHQueCArIHhMaW5lUGFkZGluZywgcHQueSk7XHJcbiAgICAgIHB0LnkgKz0gYm9keUZvbnRTaXplICsgYm9keVNwYWNpbmc7XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIEJlZm9yZSBib2R5IGxpbmVzXHJcbiAgICBjdHguZmlsbFN0eWxlID0gdm0uYm9keUZvbnRDb2xvcjtcclxuICAgIGhlbHBlcnMuZWFjaCh2bS5iZWZvcmVCb2R5LCBmaWxsTGluZU9mVGV4dCk7XHJcblxyXG4gICAgeExpbmVQYWRkaW5nID0gZHJhd0NvbG9yQm94ZXMgJiYgYm9keUFsaWduICE9PSAncmlnaHQnXHJcbiAgICAgID8gYm9keUFsaWduID09PSAnY2VudGVyJyA/IChib2R5Rm9udFNpemUgLyAyICsgMSkgOiAoYm9keUZvbnRTaXplICsgMilcclxuICAgICAgOiAwO1xyXG5cclxuICAgIC8vIERyYXcgYm9keSBsaW5lcyBub3dcclxuICAgIGhlbHBlcnMuZWFjaChib2R5LCBmdW5jdGlvbiAoYm9keUl0ZW0sIGkpIHtcclxuICAgICAgdGV4dENvbG9yID0gdm0ubGFiZWxUZXh0Q29sb3JzW2ldO1xyXG4gICAgICBjdHguZmlsbFN0eWxlID0gdGV4dENvbG9yO1xyXG4gICAgICBoZWxwZXJzLmVhY2goYm9keUl0ZW0uYmVmb3JlLCBmaWxsTGluZU9mVGV4dCk7XHJcblxyXG4gICAgICAvLyBEcmF3IExlZ2VuZC1saWtlIGJveGVzIGlmIG5lZWRlZFxyXG4gICAgICBpZiAoZHJhd0NvbG9yQm94ZXMpIHtcclxuICAgICAgICAvLyBGaWxsIGEgd2hpdGUgcmVjdCBzbyB0aGF0IGNvbG91cnMgbWVyZ2UgbmljZWx5IGlmIHRoZSBvcGFjaXR5IGlzIDwgMVxyXG4gICAgICAgIGN0eC5maWxsU3R5bGUgPSB2bS5sZWdlbmRDb2xvckJhY2tncm91bmQ7XHJcbiAgICAgICAgY3R4LmZpbGxSZWN0KGNvbG9yWCwgcHQueSwgYm9keUZvbnRTaXplLCBib2R5Rm9udFNpemUpO1xyXG5cclxuICAgICAgICAvLyBCb3JkZXJcclxuICAgICAgICBjdHgubGluZVdpZHRoID0gMTtcclxuICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSBsYWJlbENvbG9yc1tpXS5ib3JkZXJDb2xvcjtcclxuICAgICAgICBjdHguc3Ryb2tlUmVjdChjb2xvclgsIHB0LnksIGJvZHlGb250U2l6ZSwgYm9keUZvbnRTaXplKTtcclxuXHJcbiAgICAgICAgLy8gSW5uZXIgc3F1YXJlXHJcbiAgICAgICAgY3R4LmZpbGxTdHlsZSA9IGxhYmVsQ29sb3JzW2ldLmJhY2tncm91bmRDb2xvcjtcclxuICAgICAgICBjdHguZmlsbFJlY3QoY29sb3JYICsgMSwgcHQueSArIDEsIGJvZHlGb250U2l6ZSAtIDIsIGJvZHlGb250U2l6ZSAtIDIpO1xyXG4gICAgICAgIGN0eC5maWxsU3R5bGUgPSB0ZXh0Q29sb3I7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGhlbHBlcnMuZWFjaChib2R5SXRlbS5saW5lcywgZmlsbExpbmVPZlRleHQpO1xyXG5cclxuICAgICAgaGVscGVycy5lYWNoKGJvZHlJdGVtLmFmdGVyLCBmaWxsTGluZU9mVGV4dCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBSZXNldCBiYWNrIHRvIDAgZm9yIGFmdGVyIGJvZHlcclxuICAgIHhMaW5lUGFkZGluZyA9IDA7XHJcblxyXG4gICAgLy8gQWZ0ZXIgYm9keSBsaW5lc1xyXG4gICAgaGVscGVycy5lYWNoKHZtLmFmdGVyQm9keSwgZmlsbExpbmVPZlRleHQpO1xyXG4gICAgcHQueSAtPSBib2R5U3BhY2luZzsgLy8gUmVtb3ZlIGxhc3QgYm9keSBzcGFjaW5nXHJcbiAgfVxyXG59XHJcbiJdfQ==