ng-chartjs
Version:
This is a Angular chart.js library.
82 lines • 8.46 kB
JavaScript
import { Injectable } from '@angular/core';
import { Chart } from 'chart.js';
import * as i0 from "@angular/core";
import * as i1 from "./store.service";
import * as i2 from "./plugins-config";
export class NgChartjsService {
constructor(storeService, pluginConfig) {
this.storeService = storeService;
this.pluginConfig = pluginConfig;
if (pluginConfig.plugins.length !== 0) {
Chart.register(...pluginConfig.plugins);
}
}
// get chart instance by id
getChart(id) {
return this.storeService.getChart(id);
}
}
NgChartjsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NgChartjsService, deps: [{ token: i1.StoreService }, { token: i2.NgChartjsCustomPluginConfig }], target: i0.ɵɵFactoryTarget.Injectable });
NgChartjsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NgChartjsService, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NgChartjsService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: function () { return [{ type: i1.StoreService }, { type: i2.NgChartjsCustomPluginConfig }]; } });
/**
* 深复制一个json对象
* @source 需要深复制的对象
*/
export function deepCopyJson(source) {
if (!source || typeof source !== 'object') {
return source;
}
const newObj = source.constructor === Array ? [] : {};
for (const key in source) {
if (typeof source[key] === 'object') {
// @ts-ignore
newObj[key] = deepCopyJson(source[key]);
}
else {
// @ts-ignore
newObj[key] = source[key];
}
}
return newObj;
}
/**
* 合并json对象,遇到相同元素级属性,以source为准
* @source 被合并的json对象
* @dest json对象,将此json的属性递归赋值给source
*/
export function mergeJson(source, dest) {
if (!dest) {
return source;
}
source = source || {};
for (const key of Object.keys(dest)) {
if (source[key] === undefined) {
source[key] = deepCopyJson(dest[key]);
continue;
}
// 冲突了,如果是Object,看看有么有不冲突的属性
// 不是Object 则以main为主,忽略即可。故不需要else
if (isJson(dest[key])) {
// arguments.callee 递归调用,并且与函数名解耦
mergeJson(source[key], dest[key]);
}
}
return source;
}
/**
* 是否是json对象
* @target 需要被判断的类型
*/
export function isJson(target) {
if (target === null || target === undefined) {
return false;
}
return typeof target === 'object' && target.constructor === Object;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctY2hhcnRqcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY2hhcnRqcy9zcmMvbGliL25nLWNoYXJ0anMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7QUFPakMsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixZQUNVLFlBQTBCLEVBQzFCLFlBQXlDO1FBRHpDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGlCQUFZLEdBQVosWUFBWSxDQUE2QjtRQUNqRCxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNyQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQztJQUNELDJCQUEyQjtJQUMzQixRQUFRLENBQUMsRUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7OzZHQVhVLGdCQUFnQjtpSEFBaEIsZ0JBQWdCLGNBRmYsTUFBTTsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQWVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBVztJQUN0QyxJQUFJLENBQUMsTUFBTSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtRQUN6QyxPQUFPLE1BQU0sQ0FBQztLQUNmO0lBQ0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQVcsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3RELEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxFQUFFO1FBQ3hCLElBQUksT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxFQUFFO1lBQ25DLGFBQWE7WUFDYixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3pDO2FBQU07WUFDTCxhQUFhO1lBQ2IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMzQjtLQUNGO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7O0VBSUU7QUFDRixNQUFNLFVBQVUsU0FBUyxDQUFDLE1BQVcsRUFBRSxJQUFTO0lBQzlDLElBQUksQ0FBQyxJQUFJLEVBQUU7UUFDVCxPQUFPLE1BQU0sQ0FBQztLQUNmO0lBQ0QsTUFBTSxHQUFHLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFDdEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ25DLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVMsRUFBRTtZQUM3QixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLFNBQVM7U0FDVjtRQUNELDRCQUE0QjtRQUM1QixrQ0FBa0M7UUFDbEMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDckIsaUNBQWlDO1lBQ2pDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDbkM7S0FDRjtJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7O0VBR0U7QUFDRixNQUFNLFVBQVUsTUFBTSxDQUFDLE1BQVc7SUFDaEMsSUFBSSxNQUFNLEtBQUssSUFBSSxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7UUFBRSxPQUFPLEtBQUssQ0FBQztLQUFFO0lBQzlELE9BQU8sT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxXQUFXLEtBQUssTUFBTSxDQUFDO0FBQ3JFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDaGFydCB9IGZyb20gJ2NoYXJ0LmpzJztcbmltcG9ydCB7IE5nQ2hhcnRqc0N1c3RvbVBsdWdpbkNvbmZpZyB9IGZyb20gJy4vcGx1Z2lucy1jb25maWcnO1xuaW1wb3J0IHsgU3RvcmVTZXJ2aWNlIH0gZnJvbSAnLi9zdG9yZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTmdDaGFydGpzU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmVTZXJ2aWNlOiBTdG9yZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwbHVnaW5Db25maWc6IE5nQ2hhcnRqc0N1c3RvbVBsdWdpbkNvbmZpZykge1xuICAgIGlmIChwbHVnaW5Db25maWcucGx1Z2lucy5sZW5ndGggIT09IDApIHtcbiAgICAgIENoYXJ0LnJlZ2lzdGVyKC4uLnBsdWdpbkNvbmZpZy5wbHVnaW5zKTtcbiAgICB9XG4gIH1cbiAgLy8gZ2V0IGNoYXJ0IGluc3RhbmNlIGJ5IGlkXG4gIGdldENoYXJ0KGlkOiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnN0b3JlU2VydmljZS5nZXRDaGFydChpZCk7XG4gIH1cbn1cblxuLyoqXG4gKiDmt7HlpI3liLbkuIDkuKpqc29u5a+56LGhXG4gKiBAc291cmNlIOmcgOimgea3seWkjeWItueahOWvueixoVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVlcENvcHlKc29uKHNvdXJjZTogYW55KTogYW55IHtcbiAgaWYgKCFzb3VyY2UgfHwgdHlwZW9mIHNvdXJjZSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gc291cmNlO1xuICB9XG4gIGNvbnN0IG5ld09iaiA9IHNvdXJjZS5jb25zdHJ1Y3RvciA9PT0gQXJyYXkgPyBbXSA6IHt9O1xuICBmb3IgKGNvbnN0IGtleSBpbiBzb3VyY2UpIHtcbiAgICBpZiAodHlwZW9mIHNvdXJjZVtrZXldID09PSAnb2JqZWN0Jykge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgbmV3T2JqW2tleV0gPSBkZWVwQ29weUpzb24oc291cmNlW2tleV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBuZXdPYmpba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbmV3T2JqO1xufVxuXG4vKipcbiog5ZCI5bm2anNvbuWvueixoSzpgYfliLDnm7jlkIzlhYPntKDnuqflsZ7mgKfvvIzku6Vzb3VyY2XkuLrlh4ZcbiogQHNvdXJjZSDooqvlkIjlubbnmoRqc29u5a+56LGhXG4qIEBkZXN0IGpzb27lr7nosaHvvIzlsIbmraRqc29u55qE5bGe5oCn6YCS5b2S6LWL5YC857uZc291cmNlXG4qL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlSnNvbihzb3VyY2U6IGFueSwgZGVzdDogYW55KTogT2JqZWN0IHtcbiAgaWYgKCFkZXN0KSB7XG4gICAgcmV0dXJuIHNvdXJjZTtcbiAgfVxuICBzb3VyY2UgPSBzb3VyY2UgfHwge307XG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGRlc3QpKSB7XG4gICAgaWYgKHNvdXJjZVtrZXldID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHNvdXJjZVtrZXldID0gZGVlcENvcHlKc29uKGRlc3Rba2V5XSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgLy8g5Yay56qB5LqG77yM5aaC5p6c5pivT2JqZWN077yM55yL55yL5pyJ5LmI5pyJ5LiN5Yay56qB55qE5bGe5oCnXG4gICAgLy8g5LiN5pivT2JqZWN0IOWImeS7pW1haW7kuLrkuLvvvIzlv73nlaXljbPlj6/jgILmlYXkuI3pnIDopoFlbHNlXG4gICAgaWYgKGlzSnNvbihkZXN0W2tleV0pKSB7XG4gICAgICAvLyBhcmd1bWVudHMuY2FsbGVlIOmAkuW9kuiwg+eUqO+8jOW5tuS4lOS4juWHveaVsOWQjeino+iAplxuICAgICAgbWVyZ2VKc29uKHNvdXJjZVtrZXldLCBkZXN0W2tleV0pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gc291cmNlO1xufVxuXG4vKipcbiog5piv5ZCm5pivanNvbuWvueixoVxuKiBAdGFyZ2V0IOmcgOimgeiiq+WIpOaWreeahOexu+Wei1xuKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0pzb24odGFyZ2V0OiBhbnkpOiBib29sZWFuIHtcbiAgaWYgKHRhcmdldCA9PT0gbnVsbCB8fCB0YXJnZXQgPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gZmFsc2U7IH1cbiAgcmV0dXJuIHR5cGVvZiB0YXJnZXQgPT09ICdvYmplY3QnICYmIHRhcmdldC5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0O1xufSJdfQ==