UNPKG

ng-chartjs

Version:
82 lines 8.46 kB
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==