@coreui/angular-chartjs 2.0.0-alpha.3 → 2.0.0-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -20
- package/README.md +128 -126
- package/{esm2015/coreui-angular-chartjs.js → esm2020/coreui-angular-chartjs.mjs} +0 -0
- package/esm2020/lib/chartjs.component.mjs +207 -0
- package/esm2020/lib/chartjs.module.mjs +20 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/fesm2015/{coreui-angular-chartjs.js → coreui-angular-chartjs.mjs} +24 -37
- package/fesm2015/coreui-angular-chartjs.mjs.map +1 -0
- package/fesm2020/coreui-angular-chartjs.mjs +235 -0
- package/fesm2020/coreui-angular-chartjs.mjs.map +1 -0
- package/lib/chartjs.component.d.ts +12 -13
- package/package.json +23 -9
- package/bundles/coreui-angular-chartjs.umd.js +0 -613
- package/bundles/coreui-angular-chartjs.umd.js.map +0 -1
- package/esm2015/lib/chartjs.component.js +0 -212
- package/esm2015/lib/chartjs.interface.js +0 -2
- package/esm2015/lib/chartjs.module.js +0 -21
- package/fesm2015/coreui-angular-chartjs.js.map +0 -1
- package/lib/chartjs.interface.d.ts +0 -65
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"coreui-angular-chartjs.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/coreui-angular-chartjs/src/lib/chartjs.component.ts","../../../projects/coreui-angular-chartjs/src/lib/chartjs.component.html","../../../projects/coreui-angular-chartjs/src/lib/chartjs.module.ts","../../../projects/coreui-angular-chartjs/src/public-api.ts","../../../projects/coreui-angular-chartjs/src/coreui-angular-chartjs.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n Output,\n Renderer2,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty, coerceNumberProperty, NumberInput } from '@angular/cdk/coercion';\n\nimport { merge } from 'lodash';\n\nimport Chart, { ChartData, ChartOptions, ChartType, Plugin } from 'chart.js/auto';\n\nimport { customTooltips as cuiCustomTooltips } from '@coreui/chartjs';\nimport { IChartjs } from './chartjs.interface';\n\nlet nextId = 0;\n\n@Component({\n selector: 'c-chart',\n templateUrl: './chartjs.component.html',\n styleUrls: ['./chartjs.component.scss'],\n exportAs: 'cChart'\n})\nexport class ChartjsComponent implements IChartjs, AfterViewInit, OnDestroy, OnChanges {\n\n static ngAcceptInputType_height: NumberInput;\n static ngAcceptInputType_width: NumberInput;\n static ngAcceptInputType_redraw: BooleanInput;\n\n @Input() customTooltips = true;\n @Input() data: ChartData | ((canvas: HTMLCanvasElement) => ChartData) | undefined;\n\n @HostBinding('style.height.px')\n @Input()\n set height(value: number) {\n this._height = coerceNumberProperty(value);\n }\n get height() {\n return this._height;\n }\n private _height = 150;\n\n @Input() id = `c-chartjs-${nextId++}`;\n @Input() options?: ChartOptions;\n @Input() plugins: Plugin[] = [];\n\n @Input()\n set redraw(value: boolean) {\n this._redraw = coerceBooleanProperty(value);\n }\n get redraw(): boolean {\n return this._redraw;\n }\n private _redraw = false;\n\n @Input() type: ChartType = 'bar';\n\n @HostBinding('style.width.px')\n @Input()\n set width(value: number | undefined) {\n this._width = coerceNumberProperty(value);\n }\n get width() {\n return this._width;\n }\n private _width: number | undefined;\n\n @Input() wrapper = true;\n\n @Output() getDatasetAtEvent = new EventEmitter<any>();\n @Output() getElementAtEvent = new EventEmitter<any>();\n @Output() getElementsAtEvent = new EventEmitter<any>();\n\n @ViewChild('canvasElement') canvasElement!: ElementRef;\n\n chart: Chart | undefined;\n\n @HostBinding('class')\n get hostClasses() {\n return {\n 'chart-wrapper': this.wrapper\n };\n }\n\n get chartData() {\n const canvasRef = this.canvasElement.nativeElement;\n return typeof this.data === 'function'\n ? canvasRef.value\n ? this.data(canvasRef.value)\n : { labels: [], datasets: [] }\n : merge({ labels: [], datasets: [] }, { ...this.data });\n }\n\n constructor(\n private elementRef: ElementRef,\n private ngZone: NgZone,\n private renderer: Renderer2\n ) {}\n\n ngAfterViewInit(): void {\n this.chartRender();\n // this.chartUpdate();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.data && !changes.data.firstChange) {\n this.chartUpdate();\n }\n }\n\n ngOnDestroy(): void {\n this.chartDestroy();\n }\n\n public handleOnClick($event: MouseEvent) {\n if (!this.chart) return;\n\n const datasetAtEvent = this.chart.getElementsAtEventForMode($event, 'dataset', { intersect: true }, false);\n this.getDatasetAtEvent.emit(datasetAtEvent);\n\n const elementAtEvent = this.chart.getElementsAtEventForMode($event, 'nearest', { intersect: true }, false);\n this.getElementAtEvent.emit(elementAtEvent);\n\n const elementsAtEvent = this.chart.getElementsAtEventForMode($event, 'index', { intersect: true }, false);\n this.getElementsAtEvent.emit(elementsAtEvent);\n }\n\n public chartDestroy() {\n this.chart?.destroy();\n }\n\n public chartRender() {\n if (!this.canvasElement) return;\n\n if (this.customTooltips) {\n const options = this.options\n this.options = {\n ...options,\n plugins: {\n ...options?.plugins,\n tooltip: {\n ...options?.plugins?.tooltip,\n enabled: false,\n mode: 'index',\n position: 'nearest',\n external: cuiCustomTooltips\n }\n }\n };\n }\n\n const ctx: CanvasRenderingContext2D = this.canvasElement.nativeElement.getContext('2d');\n\n this.ngZone.runOutsideAngular(() => {\n const config = this.chartConfig();\n if (config) {\n this.chart = new Chart(ctx, config);\n setTimeout(() => {\n this.renderer.setStyle(this.canvasElement.nativeElement, 'display', 'block');\n });\n }\n });\n }\n\n chartUpdate() {\n if (!this.chart) return;\n\n if (this.redraw) {\n this.chartDestroy();\n setTimeout(() => {\n this.chartRender();\n });\n return;\n }\n\n\n const config = this.chartConfig();\n\n if (this.options) {\n Object.assign(this.chart.options, config.options);\n }\n\n if (!this.chart.config.data) {\n this.chart.config.data = { ...config.data };\n this.chartUpdateOutsideAngular();\n }\n\n if (this.chart) {\n Object.assign(this.chart.config.options, config.options);\n Object.assign(this.chart.config.plugins, config.plugins);\n Object.assign(this.chart.config.data, config.data);\n }\n\n this.chartUpdateOutsideAngular();\n }\n\n private chartUpdateOutsideAngular() {\n setTimeout(() => {\n this.ngZone.runOutsideAngular(() => {\n this.chart?.update();\n });\n });\n }\n\n public chartToBase64Image(): string | undefined {\n return this.chart?.toBase64Image();\n }\n\n private chartDataConfig() {\n return {\n labels: this.chartData?.labels ?? [],\n datasets: [...this.chartData?.datasets] ?? []\n };\n }\n\n private chartConfig() {\n this.chartCustomTooltips();\n return {\n data: this.chartDataConfig(),\n options: this.options as ChartOptions,\n plugins: this.plugins,\n type: this.type\n };\n }\n\n private chartCustomTooltips() {\n if (this.customTooltips) {\n const options = this.options\n this.options = {\n ...options,\n plugins: {\n ...options?.plugins,\n tooltip: {\n ...options?.plugins?.tooltip,\n enabled: false,\n mode: 'index',\n position: 'nearest',\n external: cuiCustomTooltips\n }\n }\n };\n };\n };\n}\n","<canvas\n #canvasElement\n (click)=\"handleOnClick($event)\"\n [height]=\"height\"\n [id]=\"id\"\n [width]=\"width\"\n role=\"img\"\n style=\"display: none;\"\n>\n <ng-content></ng-content>\n</canvas>\n","import { NgModule } from '@angular/core';\nimport { ChartjsComponent } from './chartjs.component';\n\n\n\n@NgModule({\n declarations: [\n ChartjsComponent\n ],\n imports: [\n ],\n exports: [\n ChartjsComponent\n ]\n})\nexport class ChartjsModule { }\n","/*\n * Public API Surface of coreui-angular-chartjs\n */\n\nexport * from './lib/chartjs.component';\nexport * from './lib/chartjs.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["EventEmitter","coerceNumberProperty","coerceBooleanProperty","merge","cuiCustomTooltips","Chart","Component","Input","HostBinding","Output","ViewChild","NgModule"],"mappings":"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"}
|
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, HostBinding, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
|
|
3
|
-
import { merge } from 'lodash';
|
|
4
|
-
import Chart from 'chart.js/auto';
|
|
5
|
-
import { customTooltips as cuiCustomTooltips } from '@coreui/chartjs';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
let nextId = 0;
|
|
8
|
-
export class ChartjsComponent {
|
|
9
|
-
constructor(elementRef, ngZone, renderer) {
|
|
10
|
-
this.elementRef = elementRef;
|
|
11
|
-
this.ngZone = ngZone;
|
|
12
|
-
this.renderer = renderer;
|
|
13
|
-
this.customTooltips = true;
|
|
14
|
-
this._height = 150;
|
|
15
|
-
this.id = `c-chartjs-${nextId++}`;
|
|
16
|
-
this.plugins = [];
|
|
17
|
-
this._redraw = false;
|
|
18
|
-
this.type = 'bar';
|
|
19
|
-
this.wrapper = true;
|
|
20
|
-
this.getDatasetAtEvent = new EventEmitter();
|
|
21
|
-
this.getElementAtEvent = new EventEmitter();
|
|
22
|
-
this.getElementsAtEvent = new EventEmitter();
|
|
23
|
-
}
|
|
24
|
-
set height(value) {
|
|
25
|
-
this._height = coerceNumberProperty(value);
|
|
26
|
-
}
|
|
27
|
-
get height() {
|
|
28
|
-
return this._height;
|
|
29
|
-
}
|
|
30
|
-
set redraw(value) {
|
|
31
|
-
this._redraw = coerceBooleanProperty(value);
|
|
32
|
-
}
|
|
33
|
-
get redraw() {
|
|
34
|
-
return this._redraw;
|
|
35
|
-
}
|
|
36
|
-
set width(value) {
|
|
37
|
-
this._width = coerceNumberProperty(value);
|
|
38
|
-
}
|
|
39
|
-
get width() {
|
|
40
|
-
return this._width;
|
|
41
|
-
}
|
|
42
|
-
get hostClasses() {
|
|
43
|
-
return {
|
|
44
|
-
'chart-wrapper': this.wrapper
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
get chartData() {
|
|
48
|
-
const canvasRef = this.canvasElement.nativeElement;
|
|
49
|
-
return typeof this.data === 'function'
|
|
50
|
-
? canvasRef.value
|
|
51
|
-
? this.data(canvasRef.value)
|
|
52
|
-
: { labels: [], datasets: [] }
|
|
53
|
-
: merge({ labels: [], datasets: [] }, Object.assign({}, this.data));
|
|
54
|
-
}
|
|
55
|
-
ngAfterViewInit() {
|
|
56
|
-
this.chartRender();
|
|
57
|
-
// this.chartUpdate();
|
|
58
|
-
}
|
|
59
|
-
ngOnChanges(changes) {
|
|
60
|
-
if (changes.data && !changes.data.firstChange) {
|
|
61
|
-
this.chartUpdate();
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
ngOnDestroy() {
|
|
65
|
-
this.chartDestroy();
|
|
66
|
-
}
|
|
67
|
-
handleOnClick($event) {
|
|
68
|
-
if (!this.chart)
|
|
69
|
-
return;
|
|
70
|
-
const datasetAtEvent = this.chart.getElementsAtEventForMode($event, 'dataset', { intersect: true }, false);
|
|
71
|
-
this.getDatasetAtEvent.emit(datasetAtEvent);
|
|
72
|
-
const elementAtEvent = this.chart.getElementsAtEventForMode($event, 'nearest', { intersect: true }, false);
|
|
73
|
-
this.getElementAtEvent.emit(elementAtEvent);
|
|
74
|
-
const elementsAtEvent = this.chart.getElementsAtEventForMode($event, 'index', { intersect: true }, false);
|
|
75
|
-
this.getElementsAtEvent.emit(elementsAtEvent);
|
|
76
|
-
}
|
|
77
|
-
chartDestroy() {
|
|
78
|
-
var _a;
|
|
79
|
-
(_a = this.chart) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
80
|
-
}
|
|
81
|
-
chartRender() {
|
|
82
|
-
var _a;
|
|
83
|
-
if (!this.canvasElement)
|
|
84
|
-
return;
|
|
85
|
-
if (this.customTooltips) {
|
|
86
|
-
const options = this.options;
|
|
87
|
-
this.options = Object.assign(Object.assign({}, options), { plugins: Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.plugins), { tooltip: Object.assign(Object.assign({}, (_a = options === null || options === void 0 ? void 0 : options.plugins) === null || _a === void 0 ? void 0 : _a.tooltip), { enabled: false, mode: 'index', position: 'nearest', external: cuiCustomTooltips }) }) });
|
|
88
|
-
}
|
|
89
|
-
const ctx = this.canvasElement.nativeElement.getContext('2d');
|
|
90
|
-
this.ngZone.runOutsideAngular(() => {
|
|
91
|
-
const config = this.chartConfig();
|
|
92
|
-
if (config) {
|
|
93
|
-
this.chart = new Chart(ctx, config);
|
|
94
|
-
setTimeout(() => {
|
|
95
|
-
this.renderer.setStyle(this.canvasElement.nativeElement, 'display', 'block');
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
chartUpdate() {
|
|
101
|
-
if (!this.chart)
|
|
102
|
-
return;
|
|
103
|
-
if (this.redraw) {
|
|
104
|
-
this.chartDestroy();
|
|
105
|
-
setTimeout(() => {
|
|
106
|
-
this.chartRender();
|
|
107
|
-
});
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
const config = this.chartConfig();
|
|
111
|
-
if (this.options) {
|
|
112
|
-
Object.assign(this.chart.options, config.options);
|
|
113
|
-
}
|
|
114
|
-
if (!this.chart.config.data) {
|
|
115
|
-
this.chart.config.data = Object.assign({}, config.data);
|
|
116
|
-
this.chartUpdateOutsideAngular();
|
|
117
|
-
}
|
|
118
|
-
if (this.chart) {
|
|
119
|
-
Object.assign(this.chart.config.options, config.options);
|
|
120
|
-
Object.assign(this.chart.config.plugins, config.plugins);
|
|
121
|
-
Object.assign(this.chart.config.data, config.data);
|
|
122
|
-
}
|
|
123
|
-
this.chartUpdateOutsideAngular();
|
|
124
|
-
}
|
|
125
|
-
chartUpdateOutsideAngular() {
|
|
126
|
-
setTimeout(() => {
|
|
127
|
-
this.ngZone.runOutsideAngular(() => {
|
|
128
|
-
var _a;
|
|
129
|
-
(_a = this.chart) === null || _a === void 0 ? void 0 : _a.update();
|
|
130
|
-
});
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
chartToBase64Image() {
|
|
134
|
-
var _a;
|
|
135
|
-
return (_a = this.chart) === null || _a === void 0 ? void 0 : _a.toBase64Image();
|
|
136
|
-
}
|
|
137
|
-
chartDataConfig() {
|
|
138
|
-
var _a, _b, _c, _d;
|
|
139
|
-
return {
|
|
140
|
-
labels: (_b = (_a = this.chartData) === null || _a === void 0 ? void 0 : _a.labels) !== null && _b !== void 0 ? _b : [],
|
|
141
|
-
datasets: (_d = [...(_c = this.chartData) === null || _c === void 0 ? void 0 : _c.datasets]) !== null && _d !== void 0 ? _d : []
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
chartConfig() {
|
|
145
|
-
this.chartCustomTooltips();
|
|
146
|
-
return {
|
|
147
|
-
data: this.chartDataConfig(),
|
|
148
|
-
options: this.options,
|
|
149
|
-
plugins: this.plugins,
|
|
150
|
-
type: this.type
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
chartCustomTooltips() {
|
|
154
|
-
var _a;
|
|
155
|
-
if (this.customTooltips) {
|
|
156
|
-
const options = this.options;
|
|
157
|
-
this.options = Object.assign(Object.assign({}, options), { plugins: Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.plugins), { tooltip: Object.assign(Object.assign({}, (_a = options === null || options === void 0 ? void 0 : options.plugins) === null || _a === void 0 ? void 0 : _a.tooltip), { enabled: false, mode: 'index', position: 'nearest', external: cuiCustomTooltips }) }) });
|
|
158
|
-
}
|
|
159
|
-
;
|
|
160
|
-
}
|
|
161
|
-
;
|
|
162
|
-
}
|
|
163
|
-
ChartjsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ChartjsComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
164
|
-
ChartjsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: ChartjsComponent, selector: "c-chart", inputs: { customTooltips: "customTooltips", data: "data", height: "height", id: "id", options: "options", plugins: "plugins", redraw: "redraw", type: "type", width: "width", wrapper: "wrapper" }, outputs: { getDatasetAtEvent: "getDatasetAtEvent", getElementAtEvent: "getElementAtEvent", getElementsAtEvent: "getElementsAtEvent" }, host: { properties: { "style.height.px": "this.height", "style.width.px": "this.width", "class": "this.hostClasses" } }, viewQueries: [{ propertyName: "canvasElement", first: true, predicate: ["canvasElement"], descendants: true }], exportAs: ["cChart"], usesOnChanges: true, ngImport: i0, template: "<canvas\n #canvasElement\n (click)=\"handleOnClick($event)\"\n [height]=\"height\"\n [id]=\"id\"\n [width]=\"width\"\n role=\"img\"\n style=\"display: none;\"\n>\n <ng-content></ng-content>\n</canvas>\n", styles: [":host.chart-wrapper{display:block}\n"] });
|
|
165
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ChartjsComponent, decorators: [{
|
|
166
|
-
type: Component,
|
|
167
|
-
args: [{
|
|
168
|
-
selector: 'c-chart',
|
|
169
|
-
templateUrl: './chartjs.component.html',
|
|
170
|
-
styleUrls: ['./chartjs.component.scss'],
|
|
171
|
-
exportAs: 'cChart'
|
|
172
|
-
}]
|
|
173
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }]; }, propDecorators: { customTooltips: [{
|
|
174
|
-
type: Input
|
|
175
|
-
}], data: [{
|
|
176
|
-
type: Input
|
|
177
|
-
}], height: [{
|
|
178
|
-
type: HostBinding,
|
|
179
|
-
args: ['style.height.px']
|
|
180
|
-
}, {
|
|
181
|
-
type: Input
|
|
182
|
-
}], id: [{
|
|
183
|
-
type: Input
|
|
184
|
-
}], options: [{
|
|
185
|
-
type: Input
|
|
186
|
-
}], plugins: [{
|
|
187
|
-
type: Input
|
|
188
|
-
}], redraw: [{
|
|
189
|
-
type: Input
|
|
190
|
-
}], type: [{
|
|
191
|
-
type: Input
|
|
192
|
-
}], width: [{
|
|
193
|
-
type: HostBinding,
|
|
194
|
-
args: ['style.width.px']
|
|
195
|
-
}, {
|
|
196
|
-
type: Input
|
|
197
|
-
}], wrapper: [{
|
|
198
|
-
type: Input
|
|
199
|
-
}], getDatasetAtEvent: [{
|
|
200
|
-
type: Output
|
|
201
|
-
}], getElementAtEvent: [{
|
|
202
|
-
type: Output
|
|
203
|
-
}], getElementsAtEvent: [{
|
|
204
|
-
type: Output
|
|
205
|
-
}], canvasElement: [{
|
|
206
|
-
type: ViewChild,
|
|
207
|
-
args: ['canvasElement']
|
|
208
|
-
}], hostClasses: [{
|
|
209
|
-
type: HostBinding,
|
|
210
|
-
args: ['class']
|
|
211
|
-
}] } });
|
|
212
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRqcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci1jaGFydGpzL3NyYy9saWIvY2hhcnRqcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci1jaGFydGpzL3NyYy9saWIvY2hhcnRqcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUlMLE1BQU0sRUFHTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxvQkFBb0IsRUFBZSxNQUFNLHVCQUF1QixDQUFDO0FBRS9HLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFL0IsT0FBTyxLQUFxRCxNQUFNLGVBQWUsQ0FBQztBQUVsRixPQUFPLEVBQUUsY0FBYyxJQUFJLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBR3RFLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztBQVFmLE1BQU0sT0FBTyxnQkFBZ0I7SUFzRTNCLFlBQ1UsVUFBc0IsRUFDdEIsTUFBYyxFQUNkLFFBQW1CO1FBRm5CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVc7UUFuRXBCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBV3ZCLFlBQU8sR0FBRyxHQUFHLENBQUM7UUFFYixPQUFFLEdBQUcsYUFBYSxNQUFNLEVBQUUsRUFBRSxDQUFDO1FBRTdCLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFTeEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVmLFNBQUksR0FBYyxLQUFLLENBQUM7UUFZeEIsWUFBTyxHQUFHLElBQUksQ0FBQztRQUVkLHNCQUFp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RUFDZCxJQUFJLEVBQUUsT0FBTyxFQUNiLFFBQVEsRUFBRSxTQUFTLEVBQ25CLFFBQVEsRUFBRSxpQkFBaUIsU0FHaEMsQ0FBQztTQUNIO1FBQUEsQ0FBQztJQUNKLENBQUM7SUFBQSxDQUFDOzs4R0EzTlMsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsOG9CQ2hDN0Isb05BV0E7NEZEcUJhLGdCQUFnQjtrQkFONUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsU0FBUztvQkFDbkIsV0FBVyxFQUFFLDBCQUEwQjtvQkFDdkMsU0FBUyxFQUFFLENBQUMsMEJBQTBCLENBQUM7b0JBQ3ZDLFFBQVEsRUFBRSxRQUFRO2lCQUNuQjs4SUFPVSxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFJRixNQUFNO3NCQUZULFdBQVc7dUJBQUMsaUJBQWlCOztzQkFDN0IsS0FBSztnQkFTRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFHRixNQUFNO3NCQURULEtBQUs7Z0JBU0csSUFBSTtzQkFBWixLQUFLO2dCQUlGLEtBQUs7c0JBRlIsV0FBVzt1QkFBQyxnQkFBZ0I7O3NCQUM1QixLQUFLO2dCQVNHLE9BQU87c0JBQWYsS0FBSztnQkFFSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFFcUIsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQUt0QixXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgY29lcmNlTnVtYmVyUHJvcGVydHksIE51bWJlcklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcblxuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgQ2hhcnQsIHsgQ2hhcnREYXRhLCBDaGFydE9wdGlvbnMsIENoYXJ0VHlwZSwgUGx1Z2luIH0gZnJvbSAnY2hhcnQuanMvYXV0byc7XG5cbmltcG9ydCB7IGN1c3RvbVRvb2x0aXBzIGFzIGN1aUN1c3RvbVRvb2x0aXBzIH0gZnJvbSAnQGNvcmV1aS9jaGFydGpzJztcbmltcG9ydCB7IElDaGFydGpzIH0gZnJvbSAnLi9jaGFydGpzLmludGVyZmFjZSc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjLWNoYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXJ0anMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGFydGpzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGV4cG9ydEFzOiAnY0NoYXJ0J1xufSlcbmV4cG9ydCBjbGFzcyBDaGFydGpzQ29tcG9uZW50IGltcGxlbWVudHMgSUNoYXJ0anMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcblxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfaGVpZ2h0OiBOdW1iZXJJbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3dpZHRoOiBOdW1iZXJJbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3JlZHJhdzogQm9vbGVhbklucHV0O1xuXG4gIEBJbnB1dCgpIGN1c3RvbVRvb2x0aXBzID0gdHJ1ZTtcbiAgQElucHV0KCkgZGF0YTogQ2hhcnREYXRhIHwgKChjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50KSA9PiBDaGFydERhdGEpIHwgdW5kZWZpbmVkO1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUuaGVpZ2h0LnB4JylcbiAgQElucHV0KClcbiAgc2V0IGhlaWdodCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5faGVpZ2h0ID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIGdldCBoZWlnaHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2hlaWdodDtcbiAgfVxuICBwcml2YXRlIF9oZWlnaHQgPSAxNTA7XG5cbiAgQElucHV0KCkgaWQgPSBgYy1jaGFydGpzLSR7bmV4dElkKyt9YDtcbiAgQElucHV0KCkgb3B0aW9ucz86IENoYXJ0T3B0aW9ucztcbiAgQElucHV0KCkgcGx1Z2luczogUGx1Z2luW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBzZXQgcmVkcmF3KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVkcmF3ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBnZXQgcmVkcmF3KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZWRyYXc7XG4gIH1cbiAgcHJpdmF0ZSBfcmVkcmF3ID0gZmFsc2U7XG5cbiAgQElucHV0KCkgdHlwZTogQ2hhcnRUeXBlID0gJ2Jhcic7XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS53aWR0aC5weCcpXG4gIEBJbnB1dCgpXG4gIHNldCB3aWR0aCh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fd2lkdGggPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgZ2V0IHdpZHRoKCkge1xuICAgIHJldHVybiB0aGlzLl93aWR0aDtcbiAgfVxuICBwcml2YXRlIF93aWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpIHdyYXBwZXIgPSB0cnVlO1xuXG4gIEBPdXRwdXQoKSBnZXREYXRhc2V0QXRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgZ2V0RWxlbWVudEF0RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGdldEVsZW1lbnRzQXRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2NhbnZhc0VsZW1lbnQnKSBjYW52YXNFbGVtZW50ITogRWxlbWVudFJlZjtcblxuICBjaGFydDogQ2hhcnQgfCB1bmRlZmluZWQ7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBob3N0Q2xhc3NlcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2NoYXJ0LXdyYXBwZXInOiB0aGlzLndyYXBwZXJcbiAgICB9O1xuICB9XG5cbiAgZ2V0IGNoYXJ0RGF0YSgpIHtcbiAgICBjb25zdCBjYW52YXNSZWYgPSB0aGlzLmNhbnZhc0VsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMuZGF0YSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgPyBjYW52YXNSZWYudmFsdWVcbiAgICAgICAgPyB0aGlzLmRhdGEoY2FudmFzUmVmLnZhbHVlKVxuICAgICAgICA6IHsgbGFiZWxzOiBbXSwgZGF0YXNldHM6IFtdIH1cbiAgICAgIDogbWVyZ2UoeyBsYWJlbHM6IFtdLCBkYXRhc2V0czogW10gfSwgeyAuLi50aGlzLmRhdGEgfSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoYXJ0UmVuZGVyKCk7XG4gICAgLy8gdGhpcy5jaGFydFVwZGF0ZSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmRhdGEgJiYgIWNoYW5nZXMuZGF0YS5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy5jaGFydFVwZGF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2hhcnREZXN0cm95KCk7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlT25DbGljaygkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuY2hhcnQpIHJldHVybjtcblxuICAgIGNvbnN0IGRhdGFzZXRBdEV2ZW50ID0gdGhpcy5jaGFydC5nZXRFbGVtZW50c0F0RXZlbnRGb3JNb2RlKCRldmVudCwgJ2RhdGFzZXQnLCB7IGludGVyc2VjdDogdHJ1ZSB9LCBmYWxzZSk7XG4gICAgdGhpcy5nZXREYXRhc2V0QXRFdmVudC5lbWl0KGRhdGFzZXRBdEV2ZW50KTtcblxuICAgIGNvbnN0IGVsZW1lbnRBdEV2ZW50ID0gdGhpcy5jaGFydC5nZXRFbGVtZW50c0F0RXZlbnRGb3JNb2RlKCRldmVudCwgJ25lYXJlc3QnLCB7IGludGVyc2VjdDogdHJ1ZSB9LCBmYWxzZSk7XG4gICAgdGhpcy5nZXRFbGVtZW50QXRFdmVudC5lbWl0KGVsZW1lbnRBdEV2ZW50KTtcblxuICAgIGNvbnN0IGVsZW1lbnRzQXRFdmVudCA9IHRoaXMuY2hhcnQuZ2V0RWxlbWVudHNBdEV2ZW50Rm9yTW9kZSgkZXZlbnQsICdpbmRleCcsIHsgaW50ZXJzZWN0OiB0cnVlIH0sIGZhbHNlKTtcbiAgICB0aGlzLmdldEVsZW1lbnRzQXRFdmVudC5lbWl0KGVsZW1lbnRzQXRFdmVudCk7XG4gIH1cblxuICBwdWJsaWMgY2hhcnREZXN0cm95KCkge1xuICAgIHRoaXMuY2hhcnQ/LmRlc3Ryb3koKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFydFJlbmRlcigpIHtcbiAgICBpZiAoIXRoaXMuY2FudmFzRWxlbWVudCkgcmV0dXJuO1xuXG4gICAgaWYgKHRoaXMuY3VzdG9tVG9vbHRpcHMpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnNcbiAgICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgcGx1Z2luczoge1xuICAgICAgICAgIC4uLm9wdGlvbnM/LnBsdWdpbnMsXG4gICAgICAgICAgdG9vbHRpcDoge1xuICAgICAgICAgICAgLi4ub3B0aW9ucz8ucGx1Z2lucz8udG9vbHRpcCxcbiAgICAgICAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgICAgICAgbW9kZTogJ2luZGV4JyxcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnbmVhcmVzdCcsXG4gICAgICAgICAgICBleHRlcm5hbDogY3VpQ3VzdG9tVG9vbHRpcHNcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgPSB0aGlzLmNhbnZhc0VsZW1lbnQubmF0aXZlRWxlbWVudC5nZXRDb250ZXh0KCcyZCcpO1xuXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5jaGFydENvbmZpZygpO1xuICAgICAgaWYgKGNvbmZpZykge1xuICAgICAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KGN0eCwgY29uZmlnKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY2FudmFzRWxlbWVudC5uYXRpdmVFbGVtZW50LCAnZGlzcGxheScsICdibG9jaycpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGNoYXJ0VXBkYXRlKCkge1xuICAgIGlmICghdGhpcy5jaGFydCkgcmV0dXJuO1xuXG4gICAgaWYgKHRoaXMucmVkcmF3KSB7XG4gICAgICB0aGlzLmNoYXJ0RGVzdHJveSgpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2hhcnRSZW5kZXIoKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuXG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jaGFydENvbmZpZygpO1xuXG4gICAgaWYgKHRoaXMub3B0aW9ucykge1xuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLmNoYXJ0Lm9wdGlvbnMsIGNvbmZpZy5vcHRpb25zKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuY2hhcnQuY29uZmlnLmRhdGEpIHtcbiAgICAgIHRoaXMuY2hhcnQuY29uZmlnLmRhdGEgPSB7IC4uLmNvbmZpZy5kYXRhIH07XG4gICAgICB0aGlzLmNoYXJ0VXBkYXRlT3V0c2lkZUFuZ3VsYXIoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jaGFydCkge1xuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLmNoYXJ0LmNvbmZpZy5vcHRpb25zLCBjb25maWcub3B0aW9ucyk7XG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuY2hhcnQuY29uZmlnLnBsdWdpbnMsIGNvbmZpZy5wbHVnaW5zKTtcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5jaGFydC5jb25maWcuZGF0YSwgY29uZmlnLmRhdGEpO1xuICAgIH1cblxuICAgIHRoaXMuY2hhcnRVcGRhdGVPdXRzaWRlQW5ndWxhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGFydFVwZGF0ZU91dHNpZGVBbmd1bGFyKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICB0aGlzLmNoYXJ0Py51cGRhdGUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNoYXJ0VG9CYXNlNjRJbWFnZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNoYXJ0Py50b0Jhc2U2NEltYWdlKCk7XG4gIH1cblxuICBwcml2YXRlIGNoYXJ0RGF0YUNvbmZpZygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbGFiZWxzOiB0aGlzLmNoYXJ0RGF0YT8ubGFiZWxzID8/IFtdLFxuICAgICAgZGF0YXNldHM6IFsuLi50aGlzLmNoYXJ0RGF0YT8uZGF0YXNldHNdID8/IFtdXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY2hhcnRDb25maWcoKSB7XG4gICAgdGhpcy5jaGFydEN1c3RvbVRvb2x0aXBzKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGE6IHRoaXMuY2hhcnREYXRhQ29uZmlnKCksXG4gICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnMgYXMgQ2hhcnRPcHRpb25zLFxuICAgICAgcGx1Z2luczogdGhpcy5wbHVnaW5zLFxuICAgICAgdHlwZTogdGhpcy50eXBlXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY2hhcnRDdXN0b21Ub29sdGlwcygpIHtcbiAgICBpZiAodGhpcy5jdXN0b21Ub29sdGlwcykge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9uc1xuICAgICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBwbHVnaW5zOiB7XG4gICAgICAgICAgLi4ub3B0aW9ucz8ucGx1Z2lucyxcbiAgICAgICAgICB0b29sdGlwOiB7XG4gICAgICAgICAgICAuLi5vcHRpb25zPy5wbHVnaW5zPy50b29sdGlwLFxuICAgICAgICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICAgICAgICBtb2RlOiAnaW5kZXgnLFxuICAgICAgICAgICAgcG9zaXRpb246ICduZWFyZXN0JyxcbiAgICAgICAgICAgIGV4dGVybmFsOiBjdWlDdXN0b21Ub29sdGlwc1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9O1xuICB9O1xufVxuIiwiPGNhbnZhc1xuICAjY2FudmFzRWxlbWVudFxuICAoY2xpY2spPVwiaGFuZGxlT25DbGljaygkZXZlbnQpXCJcbiAgW2hlaWdodF09XCJoZWlnaHRcIlxuICBbaWRdPVwiaWRcIlxuICBbd2lkdGhdPVwid2lkdGhcIlxuICByb2xlPVwiaW1nXCJcbiAgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiXG4+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvY2FudmFzPlxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRqcy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci1jaGFydGpzL3NyYy9saWIvY2hhcnRqcy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYXJ0RGF0YSwgQ2hhcnRPcHRpb25zLCBDaGFydFR5cGUsIFBsdWdpbiB9IGZyb20gJ2NoYXJ0LmpzL2F1dG8nO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNoYXJ0anMge1xuICAvKipcbiAgICogRW5hYmxlcyBjdXN0b20gaHRtbCBiYXNlZCB0b29sdGlwcyBpbnN0ZWFkIG9mIHN0YW5kYXJkIHRvb2x0aXBzLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBjdXN0b21Ub29sdGlwcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBkYXRhIG9iamVjdCB0aGF0IGlzIHBhc3NlZCBpbnRvIHRoZSBDaGFydC5qcyBjaGFydCAobW9yZSBpbmZvKS5cbiAgICovXG4gIGRhdGE6IENoYXJ0RGF0YSB8ICgoY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCkgPT4gQ2hhcnREYXRhKSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogSGVpZ2h0IGF0dHJpYnV0ZSBhcHBsaWVkIHRvIHRoZSByZW5kZXJlZCBjYW52YXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IDE1MFxuICAgKi9cbiAgaGVpZ2h0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBIdG1sIGlkIGF0dHJpYnV0ZSBhcHBsaWVkIHRvIHRoZSByZW5kZXJlZCBjYW52YXMuXG4gICAqL1xuICBpZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG9wdGlvbnMgb2JqZWN0IHRoYXQgaXMgcGFzc2VkIGludG8gdGhlIENoYXJ0LmpzIGNoYXJ0LlxuICAgKiB7QGxpbmsgaHR0cHM6Ly93d3cuY2hhcnRqcy5vcmcvZG9jcy9sYXRlc3QvZ2VuZXJhbC9vcHRpb25zLmh0bWwgTW9yZSBJbmZvfVxuICAgKi9cbiAgb3B0aW9ucz86IENoYXJ0T3B0aW9ucztcblxuICAvKipcbiAgICogVGhlIHBsdWdpbnMgYXJyYXkgdGhhdCBpcyBwYXNzZWQgaW50byB0aGUgQ2hhcnQuanMgY2hhcnQgKG1vcmUgaW5mbylcbiAgICoge0BsaW5rIGh0dHBzOi8vd3d3LmNoYXJ0anMub3JnL2RvY3MvbGF0ZXN0L2RldmVsb3BlcnMvcGx1Z2lucy5odG1sIE1vcmUgSW5mb31cbiAgICovXG4gIHBsdWdpbnM/OiBQbHVnaW5bXTtcblxuICAvKipcbiAgICogSWYgdHJ1ZSwgd2lsbCB0ZWFyIGRvd24gYW5kIHJlZHJhdyBjaGFydCBvbiBhbGwgdXBkYXRlcy5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlZHJhdz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoYXJ0LmpzIGNoYXJ0IHR5cGUuXG4gICAqIEB0eXBlIHsnbGluZScgfCAnYmFyJyB8ICdyYWRhcicgfCAnZG91Z2hudXQnIHwgJ3BvbGFyQXJlYScgfCAnYnViYmxlJyB8ICdwaWUnIHwgJ3NjYXR0ZXInfVxuICAgKi9cbiAgdHlwZTogQ2hhcnRUeXBlO1xuXG4gIC8qKlxuICAgKiBXaWR0aCBhdHRyaWJ1dGUgYXBwbGllZCB0byB0aGUgcmVuZGVyZWQgY2FudmFzLlxuICAgKiBAZGVmYXVsdCAzMDBcbiAgICovXG4gIHdpZHRoPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBQdXQgdGhlIGNoYXJ0IGludG8gdGhlIHdyYXBwZXIgZGl2IGVsZW1lbnQuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHdyYXBwZXI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQcm94eSBmb3IgQ2hhcnQuanMgZ2V0RGF0YXNldEF0RXZlbnQuIENhbGxzIHdpdGggZGF0YXNldCBhbmQgdHJpZ2dlcmluZyBldmVudC5cbiAgICovXG4gIGdldERhdGFzZXRBdEV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcblxuICAvKipcbiAgICogUHJveHkgZm9yIENoYXJ0LmpzIGdldEVsZW1lbnRBdEV2ZW50LiBDYWxscyB3aXRoIHNpbmdsZSBlbGVtZW50IGFycmF5IGFuZCB0cmlnZ2VyaW5nIGV2ZW50LlxuICAgKi9cbiAgZ2V0RWxlbWVudEF0RXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xuXG4gIC8qKlxuICAgKiBQcm94eSBmb3IgQ2hhcnQuanMgZ2V0RWxlbWVudHNBdEV2ZW50LiBDYWxscyB3aXRoIGVsZW1lbnQgYXJyYXkgYW5kIHRyaWdnZXJpbmcgZXZlbnQuXG4gICAqL1xuICBnZXRFbGVtZW50c0F0RXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xuXG59XG4iXX0=
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { ChartjsComponent } from './chartjs.component';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class ChartjsModule {
|
|
5
|
-
}
|
|
6
|
-
ChartjsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ChartjsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
-
ChartjsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ChartjsModule, declarations: [ChartjsComponent], exports: [ChartjsComponent] });
|
|
8
|
-
ChartjsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ChartjsModule, imports: [[]] });
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ChartjsModule, decorators: [{
|
|
10
|
-
type: NgModule,
|
|
11
|
-
args: [{
|
|
12
|
-
declarations: [
|
|
13
|
-
ChartjsComponent
|
|
14
|
-
],
|
|
15
|
-
imports: [],
|
|
16
|
-
exports: [
|
|
17
|
-
ChartjsComponent
|
|
18
|
-
]
|
|
19
|
-
}]
|
|
20
|
-
}] });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRqcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci1jaGFydGpzL3NyYy9saWIvY2hhcnRqcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFjdkQsTUFBTSxPQUFPLGFBQWE7OzJHQUFiLGFBQWE7NEdBQWIsYUFBYSxpQkFSdEIsZ0JBQWdCLGFBS2hCLGdCQUFnQjs0R0FHUCxhQUFhLFlBTmYsRUFDUjs0RkFLVSxhQUFhO2tCQVZ6QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixnQkFBZ0I7cUJBQ2pCO29CQUNELE9BQU8sRUFBRSxFQUNSO29CQUNELE9BQU8sRUFBRTt3QkFDUCxnQkFBZ0I7cUJBQ2pCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoYXJ0anNDb21wb25lbnQgfSBmcm9tICcuL2NoYXJ0anMuY29tcG9uZW50JztcblxuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIENoYXJ0anNDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQ2hhcnRqc0NvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENoYXJ0anNNb2R1bGUgeyB9XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"coreui-angular-chartjs.js","sources":["../../../projects/coreui-angular-chartjs/src/lib/chartjs.component.ts","../../../projects/coreui-angular-chartjs/src/lib/chartjs.component.html","../../../projects/coreui-angular-chartjs/src/lib/chartjs.module.ts","../../../projects/coreui-angular-chartjs/src/public-api.ts","../../../projects/coreui-angular-chartjs/src/coreui-angular-chartjs.ts"],"sourcesContent":["import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n Output,\n Renderer2,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty, coerceNumberProperty, NumberInput } from '@angular/cdk/coercion';\n\nimport { merge } from 'lodash';\n\nimport Chart, { ChartData, ChartOptions, ChartType, Plugin } from 'chart.js/auto';\n\nimport { customTooltips as cuiCustomTooltips } from '@coreui/chartjs';\nimport { IChartjs } from './chartjs.interface';\n\nlet nextId = 0;\n\n@Component({\n selector: 'c-chart',\n templateUrl: './chartjs.component.html',\n styleUrls: ['./chartjs.component.scss'],\n exportAs: 'cChart'\n})\nexport class ChartjsComponent implements IChartjs, AfterViewInit, OnDestroy, OnChanges {\n\n static ngAcceptInputType_height: NumberInput;\n static ngAcceptInputType_width: NumberInput;\n static ngAcceptInputType_redraw: BooleanInput;\n\n @Input() customTooltips = true;\n @Input() data: ChartData | ((canvas: HTMLCanvasElement) => ChartData) | undefined;\n\n @HostBinding('style.height.px')\n @Input()\n set height(value: number) {\n this._height = coerceNumberProperty(value);\n }\n get height() {\n return this._height;\n }\n private _height = 150;\n\n @Input() id = `c-chartjs-${nextId++}`;\n @Input() options?: ChartOptions;\n @Input() plugins: Plugin[] = [];\n\n @Input()\n set redraw(value: boolean) {\n this._redraw = coerceBooleanProperty(value);\n }\n get redraw(): boolean {\n return this._redraw;\n }\n private _redraw = false;\n\n @Input() type: ChartType = 'bar';\n\n @HostBinding('style.width.px')\n @Input()\n set width(value: number | undefined) {\n this._width = coerceNumberProperty(value);\n }\n get width() {\n return this._width;\n }\n private _width: number | undefined;\n\n @Input() wrapper = true;\n\n @Output() getDatasetAtEvent = new EventEmitter<any>();\n @Output() getElementAtEvent = new EventEmitter<any>();\n @Output() getElementsAtEvent = new EventEmitter<any>();\n\n @ViewChild('canvasElement') canvasElement!: ElementRef;\n\n chart: Chart | undefined;\n\n @HostBinding('class')\n get hostClasses() {\n return {\n 'chart-wrapper': this.wrapper\n };\n }\n\n get chartData() {\n const canvasRef = this.canvasElement.nativeElement;\n return typeof this.data === 'function'\n ? canvasRef.value\n ? this.data(canvasRef.value)\n : { labels: [], datasets: [] }\n : merge({ labels: [], datasets: [] }, { ...this.data });\n }\n\n constructor(\n private elementRef: ElementRef,\n private ngZone: NgZone,\n private renderer: Renderer2\n ) {}\n\n ngAfterViewInit(): void {\n this.chartRender();\n // this.chartUpdate();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.data && !changes.data.firstChange) {\n this.chartUpdate();\n }\n }\n\n ngOnDestroy(): void {\n this.chartDestroy();\n }\n\n public handleOnClick($event: MouseEvent) {\n if (!this.chart) return;\n\n const datasetAtEvent = this.chart.getElementsAtEventForMode($event, 'dataset', { intersect: true }, false);\n this.getDatasetAtEvent.emit(datasetAtEvent);\n\n const elementAtEvent = this.chart.getElementsAtEventForMode($event, 'nearest', { intersect: true }, false);\n this.getElementAtEvent.emit(elementAtEvent);\n\n const elementsAtEvent = this.chart.getElementsAtEventForMode($event, 'index', { intersect: true }, false);\n this.getElementsAtEvent.emit(elementsAtEvent);\n }\n\n public chartDestroy() {\n this.chart?.destroy();\n }\n\n public chartRender() {\n if (!this.canvasElement) return;\n\n if (this.customTooltips) {\n const options = this.options\n this.options = {\n ...options,\n plugins: {\n ...options?.plugins,\n tooltip: {\n ...options?.plugins?.tooltip,\n enabled: false,\n mode: 'index',\n position: 'nearest',\n external: cuiCustomTooltips\n }\n }\n };\n }\n\n const ctx: CanvasRenderingContext2D = this.canvasElement.nativeElement.getContext('2d');\n\n this.ngZone.runOutsideAngular(() => {\n const config = this.chartConfig();\n if (config) {\n this.chart = new Chart(ctx, config);\n setTimeout(() => {\n this.renderer.setStyle(this.canvasElement.nativeElement, 'display', 'block');\n });\n }\n });\n }\n\n chartUpdate() {\n if (!this.chart) return;\n\n if (this.redraw) {\n this.chartDestroy();\n setTimeout(() => {\n this.chartRender();\n });\n return;\n }\n\n\n const config = this.chartConfig();\n\n if (this.options) {\n Object.assign(this.chart.options, config.options);\n }\n\n if (!this.chart.config.data) {\n this.chart.config.data = { ...config.data };\n this.chartUpdateOutsideAngular();\n }\n\n if (this.chart) {\n Object.assign(this.chart.config.options, config.options);\n Object.assign(this.chart.config.plugins, config.plugins);\n Object.assign(this.chart.config.data, config.data);\n }\n\n this.chartUpdateOutsideAngular();\n }\n\n private chartUpdateOutsideAngular() {\n setTimeout(() => {\n this.ngZone.runOutsideAngular(() => {\n this.chart?.update();\n });\n });\n }\n\n public chartToBase64Image(): string | undefined {\n return this.chart?.toBase64Image();\n }\n\n private chartDataConfig() {\n return {\n labels: this.chartData?.labels ?? [],\n datasets: [...this.chartData?.datasets] ?? []\n };\n }\n\n private chartConfig() {\n this.chartCustomTooltips();\n return {\n data: this.chartDataConfig(),\n options: this.options as ChartOptions,\n plugins: this.plugins,\n type: this.type\n };\n }\n\n private chartCustomTooltips() {\n if (this.customTooltips) {\n const options = this.options\n this.options = {\n ...options,\n plugins: {\n ...options?.plugins,\n tooltip: {\n ...options?.plugins?.tooltip,\n enabled: false,\n mode: 'index',\n position: 'nearest',\n external: cuiCustomTooltips\n }\n }\n };\n };\n };\n}\n","<canvas\n #canvasElement\n (click)=\"handleOnClick($event)\"\n [height]=\"height\"\n [id]=\"id\"\n [width]=\"width\"\n role=\"img\"\n style=\"display: none;\"\n>\n <ng-content></ng-content>\n</canvas>\n","import { NgModule } from '@angular/core';\nimport { ChartjsComponent } from './chartjs.component';\n\n\n\n@NgModule({\n declarations: [\n ChartjsComponent\n ],\n imports: [\n ],\n exports: [\n ChartjsComponent\n ]\n})\nexport class ChartjsModule { }\n","/*\n * Public API Surface of coreui-angular-chartjs\n */\n\nexport * from './lib/chartjs.component';\nexport * from './lib/chartjs.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["cuiCustomTooltips"],"mappings":"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"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { ChartData, ChartOptions, ChartType, Plugin } from 'chart.js/auto';
|
|
2
|
-
import { EventEmitter } from '@angular/core';
|
|
3
|
-
export interface IChartjs {
|
|
4
|
-
/**
|
|
5
|
-
* Enables custom html based tooltips instead of standard tooltips.
|
|
6
|
-
* @default true
|
|
7
|
-
*/
|
|
8
|
-
customTooltips?: boolean;
|
|
9
|
-
/**
|
|
10
|
-
* The data object that is passed into the Chart.js chart (more info).
|
|
11
|
-
*/
|
|
12
|
-
data: ChartData | ((canvas: HTMLCanvasElement) => ChartData) | undefined;
|
|
13
|
-
/**
|
|
14
|
-
* Height attribute applied to the rendered canvas.
|
|
15
|
-
*
|
|
16
|
-
* @default 150
|
|
17
|
-
*/
|
|
18
|
-
height?: number;
|
|
19
|
-
/**
|
|
20
|
-
* Html id attribute applied to the rendered canvas.
|
|
21
|
-
*/
|
|
22
|
-
id?: string;
|
|
23
|
-
/**
|
|
24
|
-
* The options object that is passed into the Chart.js chart.
|
|
25
|
-
* {@link https://www.chartjs.org/docs/latest/general/options.html More Info}
|
|
26
|
-
*/
|
|
27
|
-
options?: ChartOptions;
|
|
28
|
-
/**
|
|
29
|
-
* The plugins array that is passed into the Chart.js chart (more info)
|
|
30
|
-
* {@link https://www.chartjs.org/docs/latest/developers/plugins.html More Info}
|
|
31
|
-
*/
|
|
32
|
-
plugins?: Plugin[];
|
|
33
|
-
/**
|
|
34
|
-
* If true, will tear down and redraw chart on all updates.
|
|
35
|
-
* @default false
|
|
36
|
-
*/
|
|
37
|
-
redraw?: boolean;
|
|
38
|
-
/**
|
|
39
|
-
* Chart.js chart type.
|
|
40
|
-
* @type {'line' | 'bar' | 'radar' | 'doughnut' | 'polarArea' | 'bubble' | 'pie' | 'scatter'}
|
|
41
|
-
*/
|
|
42
|
-
type: ChartType;
|
|
43
|
-
/**
|
|
44
|
-
* Width attribute applied to the rendered canvas.
|
|
45
|
-
* @default 300
|
|
46
|
-
*/
|
|
47
|
-
width?: number;
|
|
48
|
-
/**
|
|
49
|
-
* Put the chart into the wrapper div element.
|
|
50
|
-
* @default true
|
|
51
|
-
*/
|
|
52
|
-
wrapper?: boolean;
|
|
53
|
-
/**
|
|
54
|
-
* Proxy for Chart.js getDatasetAtEvent. Calls with dataset and triggering event.
|
|
55
|
-
*/
|
|
56
|
-
getDatasetAtEvent: EventEmitter<any>;
|
|
57
|
-
/**
|
|
58
|
-
* Proxy for Chart.js getElementAtEvent. Calls with single element array and triggering event.
|
|
59
|
-
*/
|
|
60
|
-
getElementAtEvent: EventEmitter<any>;
|
|
61
|
-
/**
|
|
62
|
-
* Proxy for Chart.js getElementsAtEvent. Calls with element array and triggering event.
|
|
63
|
-
*/
|
|
64
|
-
getElementsAtEvent: EventEmitter<any>;
|
|
65
|
-
}
|