@coreui/angular-chartjs 4.3.0 → 4.3.9

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.
@@ -5,236 +5,236 @@ import merge from 'lodash-es/merge';
5
5
  import { Chart, registerables } from 'chart.js';
6
6
  import { customTooltips } from '@coreui/chartjs';
7
7
 
8
- Chart.register(...registerables);
9
- let nextId = 0;
10
- class ChartjsComponent {
11
- constructor(elementRef, ngZone, renderer) {
12
- this.elementRef = elementRef;
13
- this.ngZone = ngZone;
14
- this.renderer = renderer;
15
- this.customTooltips = true;
16
- this.id = `c-chartjs-${nextId++}`;
17
- this.plugins = [];
18
- this._redraw = false;
19
- this.type = 'bar';
20
- this.wrapper = true;
21
- this.getDatasetAtEvent = new EventEmitter();
22
- this.getElementAtEvent = new EventEmitter();
23
- this.getElementsAtEvent = new EventEmitter();
24
- }
25
- set height(value) {
26
- this._height = coerceNumberProperty(value);
27
- }
28
- get height() {
29
- return this._height;
30
- }
31
- set redraw(value) {
32
- this._redraw = coerceBooleanProperty(value);
33
- }
34
- get redraw() {
35
- return this._redraw;
36
- }
37
- set width(value) {
38
- this._width = coerceNumberProperty(value);
39
- }
40
- get width() {
41
- return this._width;
42
- }
43
- get hostClasses() {
44
- return {
45
- 'chart-wrapper': this.wrapper
46
- };
47
- }
48
- ngAfterViewInit() {
49
- this.chartRender();
50
- // this.chartUpdate();
51
- }
52
- ngOnChanges(changes) {
53
- if (changes['data'] && !changes['data'].firstChange) {
54
- this.chartUpdate();
55
- }
56
- }
57
- ngOnDestroy() {
58
- this.chartDestroy();
59
- }
60
- handleOnClick($event) {
61
- if (!this.chart)
62
- return;
63
- const datasetAtEvent = this.chart.getElementsAtEventForMode($event, 'dataset', { intersect: true }, false);
64
- this.getDatasetAtEvent.emit(datasetAtEvent);
65
- const elementAtEvent = this.chart.getElementsAtEventForMode($event, 'nearest', { intersect: true }, false);
66
- this.getElementAtEvent.emit(elementAtEvent);
67
- const elementsAtEvent = this.chart.getElementsAtEventForMode($event, 'index', { intersect: true }, false);
68
- this.getElementsAtEvent.emit(elementsAtEvent);
69
- }
70
- chartDestroy() {
71
- this.chart?.destroy();
72
- }
73
- chartRender() {
74
- if (!this.canvasElement)
75
- return;
76
- const ctx = this.canvasElement.nativeElement.getContext('2d');
77
- this.ngZone.runOutsideAngular(() => {
78
- const config = this.chartConfig();
79
- if (config) {
80
- setTimeout(() => {
81
- this.chart = new Chart(ctx, config);
82
- this.renderer.setStyle(this.canvasElement.nativeElement, 'display', 'block');
83
- });
84
- }
85
- });
86
- }
87
- chartUpdate() {
88
- if (!this.chart)
89
- return;
90
- if (this.redraw) {
91
- this.chartDestroy();
92
- setTimeout(() => {
93
- this.chartRender();
94
- });
95
- return;
96
- }
97
- const config = this.chartConfig();
98
- if (this.options) {
99
- // todo
100
- // @ts-ignore
101
- Object.assign(this.chart.options, config.options);
102
- }
103
- if (!this.chart.config.data) {
104
- this.chart.config.data = { ...config.data };
105
- this.chartUpdateOutsideAngular();
106
- }
107
- if (this.chart) {
108
- // todo
109
- // @ts-ignore
110
- Object.assign(this.chart.config.options, config.options);
111
- // todo
112
- // @ts-ignore
113
- Object.assign(this.chart.config.plugins, config.plugins);
114
- Object.assign(this.chart.config.data, config.data);
115
- }
116
- this.chartUpdateOutsideAngular();
117
- }
118
- chartUpdateOutsideAngular() {
119
- setTimeout(() => {
120
- this.ngZone.runOutsideAngular(() => {
121
- this.chart?.update();
122
- });
123
- });
124
- }
125
- chartToBase64Image() {
126
- return this.chart?.toBase64Image();
127
- }
128
- chartDataConfig() {
129
- return {
130
- labels: this.data?.labels ?? [],
131
- datasets: this.data?.datasets ?? []
132
- };
133
- }
134
- chartOptions() {
135
- return this.options;
136
- }
137
- chartConfig() {
138
- this.chartCustomTooltips();
139
- return {
140
- data: this.chartDataConfig(),
141
- options: this.chartOptions(),
142
- plugins: this.plugins,
143
- type: this.type
144
- };
145
- }
146
- chartCustomTooltips() {
147
- if (this.customTooltips) {
148
- const options = this.options;
149
- // @ts-ignore
150
- const plugins = this.options?.plugins;
151
- // @ts-ignore
152
- const tooltip = this.options?.plugins?.tooltip;
153
- this.options = merge({
154
- ...options,
155
- plugins: {
156
- ...plugins,
157
- tooltip: {
158
- ...tooltip,
159
- enabled: false,
160
- mode: 'index',
161
- position: 'nearest',
162
- external: customTooltips
163
- }
164
- }
165
- });
166
- }
167
- }
168
- ;
169
- }
170
- ChartjsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ChartjsComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
171
- ChartjsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", 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\r\n #canvasElement\r\n (click)=\"handleOnClick($event)\"\r\n [height]=\"height\"\r\n [id]=\"id\"\r\n [width]=\"width\"\r\n role=\"img\"\r\n style=\"display: none;\"\r\n>\r\n <ng-content></ng-content>\r\n</canvas>\r\n", styles: [":host.chart-wrapper{display:block}\n"] });
172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ChartjsComponent, decorators: [{
173
- type: Component,
174
- args: [{ selector: 'c-chart', exportAs: 'cChart', template: "<canvas\r\n #canvasElement\r\n (click)=\"handleOnClick($event)\"\r\n [height]=\"height\"\r\n [id]=\"id\"\r\n [width]=\"width\"\r\n role=\"img\"\r\n style=\"display: none;\"\r\n>\r\n <ng-content></ng-content>\r\n</canvas>\r\n", styles: [":host.chart-wrapper{display:block}\n"] }]
175
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }]; }, propDecorators: { customTooltips: [{
176
- type: Input
177
- }], data: [{
178
- type: Input
179
- }], height: [{
180
- type: HostBinding,
181
- args: ['style.height.px']
182
- }, {
183
- type: Input
184
- }], id: [{
185
- type: Input
186
- }], options: [{
187
- type: Input
188
- }], plugins: [{
189
- type: Input
190
- }], redraw: [{
191
- type: Input
192
- }], type: [{
193
- type: Input
194
- }], width: [{
195
- type: HostBinding,
196
- args: ['style.width.px']
197
- }, {
198
- type: Input
199
- }], wrapper: [{
200
- type: Input
201
- }], getDatasetAtEvent: [{
202
- type: Output
203
- }], getElementAtEvent: [{
204
- type: Output
205
- }], getElementsAtEvent: [{
206
- type: Output
207
- }], canvasElement: [{
208
- type: ViewChild,
209
- args: ['canvasElement']
210
- }], hostClasses: [{
211
- type: HostBinding,
212
- args: ['class']
8
+ Chart.register(...registerables);
9
+ let nextId = 0;
10
+ class ChartjsComponent {
11
+ set height(value) {
12
+ this._height = coerceNumberProperty(value);
13
+ }
14
+ get height() {
15
+ return this._height;
16
+ }
17
+ set redraw(value) {
18
+ this._redraw = coerceBooleanProperty(value);
19
+ }
20
+ get redraw() {
21
+ return this._redraw;
22
+ }
23
+ set width(value) {
24
+ this._width = coerceNumberProperty(value);
25
+ }
26
+ get width() {
27
+ return this._width;
28
+ }
29
+ get hostClasses() {
30
+ return {
31
+ 'chart-wrapper': this.wrapper
32
+ };
33
+ }
34
+ constructor(elementRef, ngZone, renderer) {
35
+ this.elementRef = elementRef;
36
+ this.ngZone = ngZone;
37
+ this.renderer = renderer;
38
+ this.customTooltips = true;
39
+ this.id = `c-chartjs-${nextId++}`;
40
+ this.plugins = [];
41
+ this._redraw = false;
42
+ this.type = 'bar';
43
+ this.wrapper = true;
44
+ this.getDatasetAtEvent = new EventEmitter();
45
+ this.getElementAtEvent = new EventEmitter();
46
+ this.getElementsAtEvent = new EventEmitter();
47
+ }
48
+ ngAfterViewInit() {
49
+ this.chartRender();
50
+ // this.chartUpdate();
51
+ }
52
+ ngOnChanges(changes) {
53
+ if (changes['data'] && !changes['data'].firstChange) {
54
+ this.chartUpdate();
55
+ }
56
+ }
57
+ ngOnDestroy() {
58
+ this.chartDestroy();
59
+ }
60
+ handleOnClick($event) {
61
+ if (!this.chart)
62
+ return;
63
+ const datasetAtEvent = this.chart.getElementsAtEventForMode($event, 'dataset', { intersect: true }, false);
64
+ this.getDatasetAtEvent.emit(datasetAtEvent);
65
+ const elementAtEvent = this.chart.getElementsAtEventForMode($event, 'nearest', { intersect: true }, false);
66
+ this.getElementAtEvent.emit(elementAtEvent);
67
+ const elementsAtEvent = this.chart.getElementsAtEventForMode($event, 'index', { intersect: true }, false);
68
+ this.getElementsAtEvent.emit(elementsAtEvent);
69
+ }
70
+ chartDestroy() {
71
+ this.chart?.destroy();
72
+ }
73
+ chartRender() {
74
+ if (!this.canvasElement)
75
+ return;
76
+ const ctx = this.canvasElement.nativeElement.getContext('2d');
77
+ this.ngZone.runOutsideAngular(() => {
78
+ const config = this.chartConfig();
79
+ if (config) {
80
+ setTimeout(() => {
81
+ this.chart = new Chart(ctx, config);
82
+ this.renderer.setStyle(this.canvasElement.nativeElement, 'display', 'block');
83
+ });
84
+ }
85
+ });
86
+ }
87
+ chartUpdate() {
88
+ if (!this.chart)
89
+ return;
90
+ if (this.redraw) {
91
+ this.chartDestroy();
92
+ setTimeout(() => {
93
+ this.chartRender();
94
+ });
95
+ return;
96
+ }
97
+ const config = this.chartConfig();
98
+ if (this.options) {
99
+ // todo
100
+ // @ts-ignore
101
+ Object.assign(this.chart.options, config.options);
102
+ }
103
+ if (!this.chart.config.data) {
104
+ this.chart.config.data = { ...config.data };
105
+ this.chartUpdateOutsideAngular();
106
+ }
107
+ if (this.chart) {
108
+ // todo
109
+ // @ts-ignore
110
+ Object.assign(this.chart.config.options, config.options);
111
+ // todo
112
+ // @ts-ignore
113
+ Object.assign(this.chart.config.plugins, config.plugins);
114
+ Object.assign(this.chart.config.data, config.data);
115
+ }
116
+ this.chartUpdateOutsideAngular();
117
+ }
118
+ chartUpdateOutsideAngular() {
119
+ setTimeout(() => {
120
+ this.ngZone.runOutsideAngular(() => {
121
+ this.chart?.update();
122
+ });
123
+ });
124
+ }
125
+ chartToBase64Image() {
126
+ return this.chart?.toBase64Image();
127
+ }
128
+ chartDataConfig() {
129
+ return {
130
+ labels: this.data?.labels ?? [],
131
+ datasets: this.data?.datasets ?? []
132
+ };
133
+ }
134
+ chartOptions() {
135
+ return this.options;
136
+ }
137
+ chartConfig() {
138
+ this.chartCustomTooltips();
139
+ return {
140
+ data: this.chartDataConfig(),
141
+ options: this.chartOptions(),
142
+ plugins: this.plugins,
143
+ type: this.type
144
+ };
145
+ }
146
+ chartCustomTooltips() {
147
+ if (this.customTooltips) {
148
+ const options = this.options;
149
+ // @ts-ignore
150
+ const plugins = this.options?.plugins;
151
+ // @ts-ignore
152
+ const tooltip = this.options?.plugins?.tooltip;
153
+ this.options = merge({
154
+ ...options,
155
+ plugins: {
156
+ ...plugins,
157
+ tooltip: {
158
+ ...tooltip,
159
+ enabled: false,
160
+ mode: 'index',
161
+ position: 'nearest',
162
+ external: customTooltips
163
+ }
164
+ }
165
+ });
166
+ }
167
+ }
168
+ ;
169
+ }
170
+ ChartjsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ChartjsComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
171
+ ChartjsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", 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"] });
172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ChartjsComponent, decorators: [{
173
+ type: Component,
174
+ args: [{ selector: 'c-chart', exportAs: 'cChart', 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"] }]
175
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }]; }, propDecorators: { customTooltips: [{
176
+ type: Input
177
+ }], data: [{
178
+ type: Input
179
+ }], height: [{
180
+ type: HostBinding,
181
+ args: ['style.height.px']
182
+ }, {
183
+ type: Input
184
+ }], id: [{
185
+ type: Input
186
+ }], options: [{
187
+ type: Input
188
+ }], plugins: [{
189
+ type: Input
190
+ }], redraw: [{
191
+ type: Input
192
+ }], type: [{
193
+ type: Input
194
+ }], width: [{
195
+ type: HostBinding,
196
+ args: ['style.width.px']
197
+ }, {
198
+ type: Input
199
+ }], wrapper: [{
200
+ type: Input
201
+ }], getDatasetAtEvent: [{
202
+ type: Output
203
+ }], getElementAtEvent: [{
204
+ type: Output
205
+ }], getElementsAtEvent: [{
206
+ type: Output
207
+ }], canvasElement: [{
208
+ type: ViewChild,
209
+ args: ['canvasElement']
210
+ }], hostClasses: [{
211
+ type: HostBinding,
212
+ args: ['class']
213
213
  }] } });
214
214
 
215
- class ChartjsModule {
216
- }
217
- ChartjsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ChartjsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
218
- ChartjsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: ChartjsModule, declarations: [ChartjsComponent], exports: [ChartjsComponent] });
219
- ChartjsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ChartjsModule });
220
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ChartjsModule, decorators: [{
221
- type: NgModule,
222
- args: [{
223
- declarations: [
224
- ChartjsComponent
225
- ],
226
- exports: [
227
- ChartjsComponent
228
- ]
229
- }]
215
+ class ChartjsModule {
216
+ }
217
+ ChartjsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ChartjsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
218
+ ChartjsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.2", ngImport: i0, type: ChartjsModule, declarations: [ChartjsComponent], exports: [ChartjsComponent] });
219
+ ChartjsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ChartjsModule });
220
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ChartjsModule, decorators: [{
221
+ type: NgModule,
222
+ args: [{
223
+ declarations: [
224
+ ChartjsComponent
225
+ ],
226
+ exports: [
227
+ ChartjsComponent
228
+ ]
229
+ }]
230
230
  }] });
231
231
 
232
- /*
233
- * Public API Surface of coreui-angular-chartjs
232
+ /*
233
+ * Public API Surface of coreui-angular-chartjs
234
234
  */
235
235
 
236
- /**
237
- * Generated bundle index. Do not edit.
236
+ /**
237
+ * Generated bundle index. Do not edit.
238
238
  */
239
239
 
240
240
  export { ChartjsComponent, ChartjsModule };
@@ -1 +1 @@
1
- {"version":3,"file":"coreui-angular-chartjs.mjs","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 {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n NgZone,\r\n OnChanges,\r\n OnDestroy,\r\n Output,\r\n Renderer2,\r\n SimpleChanges,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { BooleanInput, coerceBooleanProperty, coerceNumberProperty, NumberInput } from '@angular/cdk/coercion';\r\n\r\nimport merge from 'lodash-es/merge';\r\n\r\nimport { Chart, ChartConfiguration, ChartOptions, ChartType, DefaultDataPoint, registerables } from 'chart.js';\r\nimport { customTooltips as cuiCustomTooltips } from '@coreui/chartjs';\r\n\r\nChart.register(...registerables);\r\n\r\nlet nextId = 0;\r\n\r\n@Component({\r\n selector: 'c-chart',\r\n templateUrl: './chartjs.component.html',\r\n styleUrls: ['./chartjs.component.scss'],\r\n exportAs: 'cChart'\r\n})\r\nexport class ChartjsComponent<TType extends ChartType = ChartType, TData = DefaultDataPoint<TType>, TLabel = unknown> implements AfterViewInit, OnDestroy, OnChanges {\r\n\r\n static ngAcceptInputType_height: NumberInput;\r\n static ngAcceptInputType_width: NumberInput;\r\n static ngAcceptInputType_redraw: BooleanInput;\r\n\r\n @Input() customTooltips = true;\r\n @Input() data?: ChartConfiguration<TType, TData, TLabel>['data'];\r\n\r\n @HostBinding('style.height.px')\r\n @Input()\r\n set height(value: number | undefined) {\r\n this._height = coerceNumberProperty(value);\r\n }\r\n\r\n get height() {\r\n return this._height;\r\n }\r\n\r\n private _height: number | undefined;\r\n\r\n @Input() id = `c-chartjs-${nextId++}`;\r\n @Input() options?: ChartConfiguration<TType, TData, TLabel>['options'];\r\n @Input() plugins: ChartConfiguration<TType, TData, TLabel>['plugins'] = [];\r\n\r\n @Input()\r\n set redraw(value: boolean) {\r\n this._redraw = coerceBooleanProperty(value);\r\n }\r\n\r\n get redraw(): boolean {\r\n return this._redraw;\r\n }\r\n\r\n private _redraw = false;\r\n\r\n @Input() type: ChartConfiguration<TType, TData, TLabel>['type'] = 'bar' as TType;\r\n\r\n @HostBinding('style.width.px')\r\n @Input()\r\n set width(value: number | undefined) {\r\n this._width = coerceNumberProperty(value);\r\n }\r\n\r\n get width() {\r\n return this._width;\r\n }\r\n\r\n private _width: number | undefined;\r\n\r\n @Input() wrapper = true;\r\n\r\n @Output() getDatasetAtEvent = new EventEmitter<any>();\r\n @Output() getElementAtEvent = new EventEmitter<any>();\r\n @Output() getElementsAtEvent = new EventEmitter<any>();\r\n\r\n @ViewChild('canvasElement') canvasElement!: ElementRef;\r\n\r\n chart!: Chart<TType, TData, TLabel>;\r\n\r\n @HostBinding('class')\r\n get hostClasses() {\r\n return {\r\n 'chart-wrapper': this.wrapper\r\n };\r\n }\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private ngZone: NgZone,\r\n private renderer: Renderer2\r\n ) {}\r\n\r\n ngAfterViewInit(): void {\r\n this.chartRender();\r\n // this.chartUpdate();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['data'] && !changes['data'].firstChange) {\r\n this.chartUpdate();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.chartDestroy();\r\n }\r\n\r\n public handleOnClick($event: MouseEvent) {\r\n if (!this.chart) return;\r\n\r\n const datasetAtEvent = this.chart.getElementsAtEventForMode($event, 'dataset', { intersect: true }, false);\r\n this.getDatasetAtEvent.emit(datasetAtEvent);\r\n\r\n const elementAtEvent = this.chart.getElementsAtEventForMode($event, 'nearest', { intersect: true }, false);\r\n this.getElementAtEvent.emit(elementAtEvent);\r\n\r\n const elementsAtEvent = this.chart.getElementsAtEventForMode($event, 'index', { intersect: true }, false);\r\n this.getElementsAtEvent.emit(elementsAtEvent);\r\n }\r\n\r\n public chartDestroy() {\r\n this.chart?.destroy();\r\n }\r\n\r\n public chartRender() {\r\n if (!this.canvasElement) return;\r\n\r\n const ctx: CanvasRenderingContext2D = this.canvasElement.nativeElement.getContext('2d');\r\n\r\n this.ngZone.runOutsideAngular(() => {\r\n const config = this.chartConfig();\r\n if (config) {\r\n setTimeout(() => {\r\n this.chart = new Chart(ctx, config);\r\n this.renderer.setStyle(this.canvasElement.nativeElement, 'display', 'block');\r\n });\r\n }\r\n });\r\n }\r\n\r\n chartUpdate() {\r\n if (!this.chart) return;\r\n\r\n if (this.redraw) {\r\n this.chartDestroy();\r\n setTimeout(() => {\r\n this.chartRender();\r\n });\r\n return;\r\n }\r\n\r\n const config = this.chartConfig();\r\n\r\n if (this.options) {\r\n // todo\r\n // @ts-ignore\r\n Object.assign(this.chart.options, config.options);\r\n }\r\n\r\n if (!this.chart.config.data) {\r\n this.chart.config.data = { ...config.data };\r\n this.chartUpdateOutsideAngular();\r\n }\r\n\r\n if (this.chart) {\r\n // todo\r\n // @ts-ignore\r\n Object.assign(this.chart.config.options, config.options);\r\n // todo\r\n // @ts-ignore\r\n Object.assign(this.chart.config.plugins, config.plugins);\r\n Object.assign(this.chart.config.data, config.data);\r\n }\r\n\r\n this.chartUpdateOutsideAngular();\r\n }\r\n\r\n private chartUpdateOutsideAngular() {\r\n setTimeout(() => {\r\n this.ngZone.runOutsideAngular(() => {\r\n this.chart?.update();\r\n });\r\n });\r\n }\r\n\r\n public chartToBase64Image(): string | undefined {\r\n return this.chart?.toBase64Image();\r\n }\r\n\r\n private chartDataConfig(): ChartConfiguration<TType, TData, TLabel>['data'] {\r\n return {\r\n labels: this.data?.labels ?? [],\r\n datasets: this.data?.datasets ?? []\r\n };\r\n }\r\n\r\n private chartOptions(): ChartConfiguration<TType, TData, TLabel>['options'] {\r\n return this.options;\r\n }\r\n\r\n private chartConfig(): ChartConfiguration<TType, TData, TLabel> {\r\n this.chartCustomTooltips();\r\n return {\r\n data: this.chartDataConfig(),\r\n options: this.chartOptions(),\r\n plugins: this.plugins,\r\n type: this.type\r\n };\r\n }\r\n\r\n private chartCustomTooltips() {\r\n if (this.customTooltips) {\r\n const options = this.options;\r\n // @ts-ignore\r\n const plugins = this.options?.plugins;\r\n // @ts-ignore\r\n const tooltip = this.options?.plugins?.tooltip;\r\n this.options = merge({\r\n ...options,\r\n plugins: {\r\n ...plugins,\r\n tooltip: {\r\n ...tooltip,\r\n enabled: false,\r\n mode: 'index',\r\n position: 'nearest',\r\n external: cuiCustomTooltips\r\n }\r\n }\r\n });\r\n }\r\n };\r\n}\r\n","<canvas\r\n #canvasElement\r\n (click)=\"handleOnClick($event)\"\r\n [height]=\"height\"\r\n [id]=\"id\"\r\n [width]=\"width\"\r\n role=\"img\"\r\n style=\"display: none;\"\r\n>\r\n <ng-content></ng-content>\r\n</canvas>\r\n","import { NgModule } from '@angular/core';\r\nimport { ChartjsComponent } from './chartjs.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ChartjsComponent\r\n ],\r\n exports: [\r\n ChartjsComponent\r\n ]\r\n})\r\nexport class ChartjsModule { }\r\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":";;;;;;;AAsBA,KAAK,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,CAAC;AAEjC,IAAI,MAAM,GAAG,CAAC,CAAC;MAQF,gBAAgB,CAAA;AAmE3B,IAAA,WAAA,CACU,UAAsB,EACtB,MAAc,EACd,QAAmB,EAAA;QAFnB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QAhEpB,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;AAetB,QAAA,IAAA,CAAA,EAAE,GAAG,CAAA,UAAA,EAAa,MAAM,EAAE,EAAE,CAAC;QAE7B,IAAO,CAAA,OAAA,GAAwD,EAAE,CAAC;QAWnE,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAEf,IAAI,CAAA,IAAA,GAAqD,KAAc,CAAC;QAcxE,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;AAEd,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAO,CAAC;AAC5C,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAO,CAAC;AAC5C,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAO,CAAC;KAiBnD;IA9DJ,IAEI,MAAM,CAAC,KAAyB,EAAA;AAClC,QAAA,IAAI,CAAC,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;KAC5C;AAED,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;IAQD,IACI,MAAM,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAC7C;AAED,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;IAMD,IAEI,KAAK,CAAC,KAAyB,EAAA;AACjC,QAAA,IAAI,CAAC,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;KAC3C;AAED,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;AAcD,IAAA,IACI,WAAW,GAAA;QACb,OAAO;YACL,eAAe,EAAE,IAAI,CAAC,OAAO;SAC9B,CAAC;KACH;IAQD,eAAe,GAAA;QACb,IAAI,CAAC,WAAW,EAAE,CAAC;;KAEpB;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE;YACnD,IAAI,CAAC,WAAW,EAAE,CAAC;AACpB,SAAA;KACF;IAED,WAAW,GAAA;QACT,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAEM,IAAA,aAAa,CAAC,MAAkB,EAAA;QACrC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;AAC3G,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE5C,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;AAC3G,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE5C,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;AAC1G,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAC/C;IAEM,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;KACvB;IAEM,WAAW,GAAA;QAChB,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;AAEhC,QAAA,MAAM,GAAG,GAA6B,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAExF,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;AACjC,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAClC,YAAA,IAAI,MAAM,EAAE;gBACV,UAAU,CAAC,MAAK;oBACd,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACpC,oBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAC/E,iBAAC,CAAC,CAAC;AACJ,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;QACT,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,WAAW,EAAE,CAAC;AACrB,aAAC,CAAC,CAAC;YACH,OAAO;AACR,SAAA;AAED,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAElC,IAAI,IAAI,CAAC,OAAO,EAAE;;;AAGhB,YAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AACnD,SAAA;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;AAC3B,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,CAAC,yBAAyB,EAAE,CAAC;AAClC,SAAA;QAED,IAAI,IAAI,CAAC,KAAK,EAAE;;;AAGd,YAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;;;AAGzD,YAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AACzD,YAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AACpD,SAAA;QAED,IAAI,CAAC,yBAAyB,EAAE,CAAC;KAClC;IAEO,yBAAyB,GAAA;QAC/B,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;AACjC,gBAAA,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;AACvB,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;IAEM,kBAAkB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC;KACpC;IAEO,eAAe,GAAA;QACrB,OAAO;AACL,YAAA,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE;AAC/B,YAAA,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,IAAI,EAAE;SACpC,CAAC;KACH;IAEO,YAAY,GAAA;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;IAEO,WAAW,GAAA;QACjB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,OAAO;AACL,YAAA,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE;AAC5B,YAAA,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE;YAC5B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;KACH;IAEO,mBAAmB,GAAA;QACzB,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;;AAE7B,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;;YAEtC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;AAC/C,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACnB,gBAAA,GAAG,OAAO;AACV,gBAAA,OAAO,EAAE;AACP,oBAAA,GAAG,OAAO;AACV,oBAAA,OAAO,EAAE;AACP,wBAAA,GAAG,OAAO;AACV,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,IAAI,EAAE,OAAO;AACb,wBAAA,QAAQ,EAAE,SAAS;AACnB,wBAAA,QAAQ,EAAEA,cAAiB;AAC5B,qBAAA;AACF,iBAAA;AACF,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;;;6GApNU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,8oBChC7B,0OAWA,EAAA,MAAA,EAAA,CAAA,sCAAA,CAAA,EAAA,CAAA,CAAA;2FDqBa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,YAGT,QAAQ,EAAA,QAAA,EAAA,0OAAA,EAAA,MAAA,EAAA,CAAA,sCAAA,CAAA,EAAA,CAAA;8IAQT,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAIF,MAAM,EAAA,CAAA;sBAFT,WAAW;uBAAC,iBAAiB,CAAA;;sBAC7B,KAAK;gBAWG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAGF,MAAM,EAAA,CAAA;sBADT,KAAK;gBAWG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAIF,KAAK,EAAA,CAAA;sBAFR,WAAW;uBAAC,gBAAgB,CAAA;;sBAC5B,KAAK;gBAWG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEI,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACG,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBAEqB,aAAa,EAAA,CAAA;sBAAxC,SAAS;uBAAC,eAAe,CAAA;gBAKtB,WAAW,EAAA,CAAA;sBADd,WAAW;uBAAC,OAAO,CAAA;;;MEjFT,aAAa,CAAA;;0GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;2GAAb,aAAa,EAAA,YAAA,EAAA,CANtB,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAGhB,gBAAgB,CAAA,EAAA,CAAA,CAAA;2GAGP,aAAa,EAAA,CAAA,CAAA;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBARzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,gBAAgB;AACjB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,gBAAgB;AACjB,qBAAA;AACF,iBAAA,CAAA;;;ACVD;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"coreui-angular-chartjs.mjs","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-es/merge';\n\nimport { Chart, ChartConfiguration, ChartOptions, ChartType, DefaultDataPoint, registerables } from 'chart.js';\nimport { customTooltips as cuiCustomTooltips } from '@coreui/chartjs';\n\nChart.register(...registerables);\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<TType extends ChartType = ChartType, TData = DefaultDataPoint<TType>, TLabel = unknown> implements 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?: ChartConfiguration<TType, TData, TLabel>['data'];\n\n @HostBinding('style.height.px')\n @Input()\n set height(value: number | undefined) {\n this._height = coerceNumberProperty(value);\n }\n\n get height() {\n return this._height;\n }\n\n private _height: number | undefined;\n\n @Input() id = `c-chartjs-${nextId++}`;\n @Input() options?: ChartConfiguration<TType, TData, TLabel>['options'];\n @Input() plugins: ChartConfiguration<TType, TData, TLabel>['plugins'] = [];\n\n @Input()\n set redraw(value: boolean) {\n this._redraw = coerceBooleanProperty(value);\n }\n\n get redraw(): boolean {\n return this._redraw;\n }\n\n private _redraw = false;\n\n @Input() type: ChartConfiguration<TType, TData, TLabel>['type'] = 'bar' as TType;\n\n @HostBinding('style.width.px')\n @Input()\n set width(value: number | undefined) {\n this._width = coerceNumberProperty(value);\n }\n\n get width() {\n return this._width;\n }\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<TType, TData, TLabel>;\n\n @HostBinding('class')\n get hostClasses() {\n return {\n 'chart-wrapper': this.wrapper\n };\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 const ctx: CanvasRenderingContext2D = this.canvasElement.nativeElement.getContext('2d');\n\n this.ngZone.runOutsideAngular(() => {\n const config = this.chartConfig();\n if (config) {\n setTimeout(() => {\n this.chart = new Chart(ctx, config);\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 const config = this.chartConfig();\n\n if (this.options) {\n // todo\n // @ts-ignore\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 // todo\n // @ts-ignore\n Object.assign(this.chart.config.options, config.options);\n // todo\n // @ts-ignore\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(): ChartConfiguration<TType, TData, TLabel>['data'] {\n return {\n labels: this.data?.labels ?? [],\n datasets: this.data?.datasets ?? []\n };\n }\n\n private chartOptions(): ChartConfiguration<TType, TData, TLabel>['options'] {\n return this.options;\n }\n\n private chartConfig(): ChartConfiguration<TType, TData, TLabel> {\n this.chartCustomTooltips();\n return {\n data: this.chartDataConfig(),\n options: this.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 // @ts-ignore\n const plugins = this.options?.plugins;\n // @ts-ignore\n const tooltip = this.options?.plugins?.tooltip;\n this.options = merge({\n ...options,\n plugins: {\n ...plugins,\n tooltip: {\n ...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@NgModule({\n declarations: [\n ChartjsComponent\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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"}
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@coreui/angular-chartjs" />
5
- export * from './public-api';
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@coreui/angular-chartjs" />
5
+ export * from './public-api';