@smartbit4all/ng-client 4.2.13 → 4.2.15

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.
@@ -10,4 +10,4 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  export {};
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhZ3JhbURhdGFJdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtY2hhcnQvYXBpL21vZGVsL2RpYWdyYW1EYXRhSXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztHQVVHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENoYXJ0IEFQSVxyXG4gKiBBUEkgZm9yIGNvbnN1bWUgY2hhcnRzLlxyXG4gKlxyXG4gKiBUaGUgdmVyc2lvbiBvZiB0aGUgT3BlbkFQSSBkb2N1bWVudDogMS4wLjBcclxuICogQ29udGFjdDogaW5mb0BpdDRhbGwuaHVcclxuICpcclxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKS5cclxuICogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoXHJcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cclxuICovXHJcblxyXG5cclxuLyoqXHJcbiAqIENvbnRhaW5zIGFuIGl0ZW1zIGRhdGEsIGJhc2VkIG9uIHRoZSB0eXBlIG9mIHRoZSBkaWFncmFtLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBEaWFncmFtRGF0YUl0ZW0geyBcclxuICAgIGxhYmVsPzogc3RyaW5nO1xyXG4gICAgeFZhbHVlPzogbnVtYmVyO1xyXG4gICAgeVZhbHVlPzogbnVtYmVyO1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIHByb3BlcnR5IHNwZWNpZmllcyB0aGUgcmFkaXVzIG9mIGVhY2ggYnViYmxlIGluIGEgYnViYmxlIGNoYXJ0LiBJdCBpcyB1c2VkIHRvIGRldGVybWluZSB0aGUgc2l6ZSBvZiB0aGUgYnViYmxlcyByZWxhdGl2ZSB0byB0aGVpciBkYXRhIHZhbHVlcy5cclxuICAgICAqL1xyXG4gICAgclZhbHVlPzogbnVtYmVyO1xyXG4gICAgaXRlbUNvbG9yPzogc3RyaW5nO1xyXG59XHJcblxyXG4iXX0=
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhZ3JhbURhdGFJdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtY2hhcnQvYXBpL21vZGVsL2RpYWdyYW1EYXRhSXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztHQVVHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENoYXJ0IEFQSVxyXG4gKiBBUEkgZm9yIGNvbnN1bWUgY2hhcnRzLlxyXG4gKlxyXG4gKiBUaGUgdmVyc2lvbiBvZiB0aGUgT3BlbkFQSSBkb2N1bWVudDogMS4wLjBcclxuICogQ29udGFjdDogaW5mb0BpdDRhbGwuaHVcclxuICpcclxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKS5cclxuICogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoXHJcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cclxuICovXHJcblxyXG5cclxuLyoqXHJcbiAqIENvbnRhaW5zIGFuIGl0ZW1zIGRhdGEsIGJhc2VkIG9uIHRoZSB0eXBlIG9mIHRoZSBkaWFncmFtLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBEaWFncmFtRGF0YUl0ZW0geyBcclxuICAgIHVyaT86IHN0cmluZztcclxuICAgIGxhYmVsPzogc3RyaW5nO1xyXG4gICAgeFZhbHVlPzogbnVtYmVyO1xyXG4gICAgeVZhbHVlPzogbnVtYmVyO1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIHByb3BlcnR5IHNwZWNpZmllcyB0aGUgcmFkaXVzIG9mIGVhY2ggYnViYmxlIGluIGEgYnViYmxlIGNoYXJ0LiBJdCBpcyB1c2VkIHRvIGRldGVybWluZSB0aGUgc2l6ZSBvZiB0aGUgYnViYmxlcyByZWxhdGl2ZSB0byB0aGVpciBkYXRhIHZhbHVlcy5cclxuICAgICAqL1xyXG4gICAgclZhbHVlPzogbnVtYmVyO1xyXG4gICAgaXRlbUNvbG9yPzogc3RyaW5nO1xyXG59XHJcblxyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhZ3JhbURhdGFTZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1jaGFydC9hcGkvbW9kZWwvZGlhZ3JhbURhdGFTZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDaGFydCBBUElcclxuICogQVBJIGZvciBjb25zdW1lIGNoYXJ0cy5cclxuICpcclxuICogVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuMC4wXHJcbiAqIENvbnRhY3Q6IGluZm9AaXQ0YWxsLmh1XHJcbiAqXHJcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IgKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaCkuXHJcbiAqIGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaFxyXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXHJcbiAqL1xyXG5pbXBvcnQgeyBEaWFncmFtRGF0YUl0ZW0gfSBmcm9tICcuL2RpYWdyYW1EYXRhSXRlbSc7XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEaWFncmFtRGF0YVNldCB7IFxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdHlwZSBjYW4gYmUgc2V0IHNwZWNpZmljYWxseSBmb3IgdGhlIGRhdGFzZXQuIFRoaXMgYWxsb3dzIHRoZSBkYXRhc2V0IHRvIGJlIHJlbmRlcmVkIGFzIHRoZSBzcGVjaWZpZWQgdHlwZSwgd2hpbGUgb3RoZXIgZGF0YXNldHMgaW4gdGhlIGRpYWdyYW0gcmVtYWluIHJlbmRlcmVkIGFzIHRoZSBiYXNpYyBjaGFydCB0eXBlLiBGb3IgZXhhbXBsZSwgeW91IGNhbiByZW5kZXIgb25lIGRhdGFzZXQgYXMgYSBcXCdsaW5lXFwnIHR5cGUgaW4gYSBcXCdiYXJcXCcgY2hhcnQuXHJcbiAgICAgKi9cclxuICAgIGRhdGFTZXRUeXBlPzogc3RyaW5nO1xyXG4gICAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgICBkYXRhU2V0Y29sb3I/OiBzdHJpbmc7XHJcbiAgICBpdGVtczogQXJyYXk8RGlhZ3JhbURhdGFJdGVtPjtcclxufVxyXG5cclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhZ3JhbURhdGFTZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1jaGFydC9hcGkvbW9kZWwvZGlhZ3JhbURhdGFTZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDaGFydCBBUElcclxuICogQVBJIGZvciBjb25zdW1lIGNoYXJ0cy5cclxuICpcclxuICogVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuMC4wXHJcbiAqIENvbnRhY3Q6IGluZm9AaXQ0YWxsLmh1XHJcbiAqXHJcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IgKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaCkuXHJcbiAqIGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaFxyXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXHJcbiAqL1xyXG5pbXBvcnQgeyBEaWFncmFtRGF0YUl0ZW0gfSBmcm9tICcuL2RpYWdyYW1EYXRhSXRlbSc7XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEaWFncmFtRGF0YVNldCB7IFxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdHlwZSBjYW4gYmUgc2V0IHNwZWNpZmljYWxseSBmb3IgdGhlIGRhdGFzZXQuIFRoaXMgYWxsb3dzIHRoZSBkYXRhc2V0IHRvIGJlIHJlbmRlcmVkIGFzIHRoZSBzcGVjaWZpZWQgdHlwZSwgd2hpbGUgb3RoZXIgZGF0YXNldHMgaW4gdGhlIGRpYWdyYW0gcmVtYWluIHJlbmRlcmVkIGFzIHRoZSBiYXNpYyBjaGFydCB0eXBlLiBGb3IgZXhhbXBsZSwgeW91IGNhbiByZW5kZXIgb25lIGRhdGFzZXQgYXMgYSBcXCdsaW5lXFwnIHR5cGUgaW4gYSBcXCdiYXJcXCcgY2hhcnQuXHJcbiAgICAgKi9cclxuICAgIGRhdGFTZXRUeXBlPzogc3RyaW5nO1xyXG4gICAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgICBkYXRhU2V0Y29sb3I/OiBzdHJpbmc7XHJcbiAgICBwb2ludFN0eWxlPzogc3RyaW5nO1xyXG4gICAgaXRlbXM6IEFycmF5PERpYWdyYW1EYXRhSXRlbT47XHJcbn1cclxuXHJcbiJdfQ==
@@ -1,5 +1,6 @@
1
- import { Component, Inject, Input, Optional } from '@angular/core';
2
- import { COMPONENT_LIBRARY, ComponentLibrary } from '../view-context/utility/componentLibrary';
1
+ import { Component, EventEmitter, Inject, Input, Optional, Output, } from "@angular/core";
2
+ import { COMPONENT_LIBRARY, ComponentLibrary, } from "../view-context/utility/componentLibrary";
3
+ import { Chart } from "chart.js";
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "./default-chart-options.provider";
5
6
  import * as i2 from "primeng/chart";
@@ -7,6 +8,9 @@ import * as i3 from "../view-context/utility/componentLibrary";
7
8
  export class SmartChartComponent {
8
9
  constructor(chartOptionProvider, compLib) {
9
10
  this.chartOptionProvider = chartOptionProvider;
11
+ this.dataSelect = new EventEmitter();
12
+ this.chartClick = new EventEmitter();
13
+ this.onDataClicked = new EventEmitter(); //
10
14
  this.componentLibrary = ComponentLibrary;
11
15
  this.compLib = compLib ?? ComponentLibrary.PRIMENG;
12
16
  }
@@ -14,7 +18,7 @@ export class SmartChartComponent {
14
18
  let options = undefined;
15
19
  const diagramType = !!this.diagramUiModel.Descriptor?.diagramType
16
20
  ? this.diagramUiModel.Descriptor.diagramType
17
- : '';
21
+ : "";
18
22
  const factory = this.chartOptionProvider.getFactory(diagramType);
19
23
  this.type = factory.chartJsType;
20
24
  options = factory.createOptions(this.diagramUiModel.DiagramData);
@@ -45,7 +49,8 @@ export class SmartChartComponent {
45
49
  },
46
50
  scales: {},
47
51
  };
48
- if (descriptor.diagramMinX !== undefined && descriptor.diagramMaxX !== undefined) {
52
+ if (descriptor.diagramMinX !== undefined &&
53
+ descriptor.diagramMaxX !== undefined) {
49
54
  options.scales.x = {
50
55
  ticks: {
51
56
  display: descriptor.showLabelsForXAxis ?? true,
@@ -61,7 +66,8 @@ export class SmartChartComponent {
61
66
  },
62
67
  };
63
68
  }
64
- if (descriptor.diagramMinY !== undefined && descriptor.diagramMaxY !== undefined) {
69
+ if (descriptor.diagramMinY !== undefined &&
70
+ descriptor.diagramMaxY !== undefined) {
65
71
  options.scales.y = {
66
72
  ticks: {
67
73
  display: descriptor.showLabelsForYAxis ?? true,
@@ -79,12 +85,32 @@ export class SmartChartComponent {
79
85
  }
80
86
  return options;
81
87
  }
88
+ onDataSelect(event) {
89
+ this.dataSelect.emit(event);
90
+ }
91
+ handleChartClick(event) {
92
+ this.chartClick.emit(event);
93
+ }
94
+ handleOnDataClicked(event) {
95
+ const canvas = event.target;
96
+ const chart = Chart.getChart(canvas);
97
+ if (chart) {
98
+ const elements = chart.getElementsAtEventForMode(event, "nearest", { intersect: true }, false);
99
+ const overlappingElements = elements.map((element) => {
100
+ return {
101
+ element,
102
+ coordinates: chart.data.datasets[element.datasetIndex].data[element.index],
103
+ };
104
+ });
105
+ this.chartClick.emit({ event, chart, overlappingElements });
106
+ }
107
+ }
82
108
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartChartComponent, deps: [{ token: i1.DefaultChartOptionsProvider }, { token: COMPONENT_LIBRARY, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
83
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: SmartChartComponent, selector: "smart-chart", inputs: { diagramUiModel: "diagramUiModel", options: "options" }, ngImport: i0, template: "@if(compLib === componentLibrary.PRIMENG) {\r\n<p-chart [type]=\"type\" [data]=\"data\" [options]=\"options\" />\r\n} @else {\r\n<p>Only PrimeNg component library is supported </p>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: i2.UIChart, selector: "p-chart", inputs: ["type", "plugins", "width", "height", "responsive", "ariaLabel", "ariaLabelledBy", "data", "options"], outputs: ["onDataSelect"] }] }); }
109
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: SmartChartComponent, selector: "smart-chart", inputs: { diagramUiModel: "diagramUiModel", options: "options" }, outputs: { dataSelect: "dataSelect", chartClick: "chartClick", onDataClicked: "onDataClicked" }, ngImport: i0, template: "@if(compLib === componentLibrary.PRIMENG) {\r\n<p-chart\r\n [type]=\"type\"\r\n [data]=\"data\"\r\n [options]=\"options\"\r\n (onDataSelect)=\"onDataSelect($event)\"\r\n (click)=\"handleChartClick($event)\"\r\n (click)=\"handleOnDataClicked($event)\"\r\n/>\r\n} @else {\r\n<p>Only PrimeNg component library is supported</p>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: i2.UIChart, selector: "p-chart", inputs: ["type", "plugins", "width", "height", "responsive", "ariaLabel", "ariaLabelledBy", "data", "options"], outputs: ["onDataSelect"] }] }); }
84
110
  }
85
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartChartComponent, decorators: [{
86
112
  type: Component,
87
- args: [{ selector: 'smart-chart', template: "@if(compLib === componentLibrary.PRIMENG) {\r\n<p-chart [type]=\"type\" [data]=\"data\" [options]=\"options\" />\r\n} @else {\r\n<p>Only PrimeNg component library is supported </p>\r\n}\r\n" }]
113
+ args: [{ selector: "smart-chart", template: "@if(compLib === componentLibrary.PRIMENG) {\r\n<p-chart\r\n [type]=\"type\"\r\n [data]=\"data\"\r\n [options]=\"options\"\r\n (onDataSelect)=\"onDataSelect($event)\"\r\n (click)=\"handleChartClick($event)\"\r\n (click)=\"handleOnDataClicked($event)\"\r\n/>\r\n} @else {\r\n<p>Only PrimeNg component library is supported</p>\r\n}\r\n" }]
88
114
  }], ctorParameters: () => [{ type: i1.DefaultChartOptionsProvider }, { type: i3.ComponentLibrary, decorators: [{
89
115
  type: Inject,
90
116
  args: [COMPONENT_LIBRARY]
@@ -94,5 +120,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
94
120
  type: Input
95
121
  }], options: [{
96
122
  type: Input
123
+ }], dataSelect: [{
124
+ type: Output
125
+ }], chartClick: [{
126
+ type: Output
127
+ }], onDataClicked: [{
128
+ type: Output
97
129
  }] } });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtY2hhcnQvc21hcnQtY2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtY2hhcnQvc21hcnQtY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7QUFPL0YsTUFBTSxPQUFPLG1CQUFtQjtJQVM5QixZQUNVLG1CQUFnRCxFQUNqQixPQUEwQjtRQUR6RCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQTZCO1FBSDFELHFCQUFnQixHQUFHLGdCQUFnQixDQUFDO1FBTWxDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxJQUFJLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztJQUNyRCxDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksT0FBTyxHQUFHLFNBQVMsQ0FBQztRQUN4QixNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsV0FBVztZQUMvRCxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsV0FBVztZQUM1QyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRVAsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFD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a0JBQWtCLElBQUksSUFBSTtpQkFDL0M7YUFDRixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7K0dBckZVLG1CQUFtQiw2REFXcEIsaUJBQWlCO21HQVhoQixtQkFBbUIscUhDVmhDLCtMQUtBOzs0RkRLYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsYUFBYTs7MEJBZXBCLE1BQU07MkJBQUMsaUJBQWlCOzswQkFBRyxRQUFRO3lDQVY3QixjQUFjO3NCQUF0QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGVmYXVsdENoYXJ0T3B0aW9uc1Byb3ZpZGVyIH0gZnJvbSAnLi9kZWZhdWx0LWNoYXJ0LW9wdGlvbnMucHJvdmlkZXInO1xyXG5pbXBvcnQgeyBEaWFncmFtRGVzY3JpcHRvciwgRGlhZ3JhbVVpTW9kZWwgfSBmcm9tICcuL2FwaSc7XHJcbmltcG9ydCB7IENPTVBPTkVOVF9MSUJSQVJZLCBDb21wb25lbnRMaWJyYXJ5IH0gZnJvbSAnLi4vdmlldy1jb250ZXh0L3V0aWxpdHkvY29tcG9uZW50TGlicmFyeSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NtYXJ0LWNoYXJ0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc21hcnQtY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NtYXJ0LWNoYXJ0LmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0Q2hhcnRDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGRpYWdyYW1VaU1vZGVsITogRGlhZ3JhbVVpTW9kZWw7XHJcbiAgQElucHV0KCkgb3B0aW9ucz86IGFueTtcclxuICBkYXRhOiBhbnk7XHJcbiAgdHlwZTogYW55O1xyXG5cclxuICBjb21wTGliOiBDb21wb25lbnRMaWJyYXJ5O1xyXG4gIGNvbXBvbmVudExpYnJhcnkgPSBDb21wb25lbnRMaWJyYXJ5O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2hhcnRPcHRpb25Qcm92aWRlcjogRGVmYXVsdENoYXJ0T3B0aW9uc1Byb3ZpZGVyLFxyXG4gICAgQEluamVjdChDT01QT05FTlRfTElCUkFSWSkgQE9wdGlvbmFsKCkgY29tcExpYj86IENvbXBvbmVudExpYnJhcnlcclxuICApIHtcclxuICAgIHRoaXMuY29tcExpYiA9IGNvbXBMaWIgPz8gQ29tcG9uZW50TGlicmFyeS5QUklNRU5HO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGxldCBvcHRpb25zID0gdW5kZWZpbmVkO1xyXG4gICAgY29uc3QgZGlhZ3JhbVR5cGUgPSAhIXRoaXMuZGlhZ3JhbVVpTW9kZWwuRGVzY3JpcHRvcj8uZGlhZ3JhbVR5cGVcclxuICAgICAgPyB0aGlzLmRpYWdyYW1VaU1vZGVsLkRlc2NyaXB0b3IuZGlhZ3JhbVR5cGVcclxuICAgICAgOiAnJztcclxuXHJcbiAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5jaGFydE9wdGlvblByb3ZpZGVyLmdldEZhY3RvcnkoZGlhZ3JhbVR5cGUpO1xyXG4gICAgdGhpcy50eXBlID0gZmFjdG9yeS5jaGFydEpzVHlwZTtcclxuICAgIG9wdGlvbnMgPSBmYWN0b3J5LmNyZWF0ZU9wdGlvbnModGhpcy5kaWFncmFtVWlNb2RlbC5EaWFncmFtRGF0YSEpO1xyXG4gICAgaWYgKHRoaXMuZGlhZ3JhbVVpTW9kZWwuRGVzY3JpcHRvcikge1xyXG4gICAgICBvcHRpb25zID0gdGhpcy5kZWVwTWVyZ2UodGhpcy5jb252ZXJ0QmFja2VuZE9wdGlvbnModGhpcy5kaWFncmFtVWlNb2RlbC5EZXNjcmlwdG9yKSwgb3B0aW9ucyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vcHRpb25zKSB7XHJcbiAgICAgIG9wdGlvbnMgPSB0aGlzLmRlZXBNZXJnZSh0aGlzLm9wdGlvbnMsIG9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XHJcbiAgICB0aGlzLmRhdGEgPSBmYWN0b3J5LnRyYW5zZm9ybURhdGEodGhpcy5kaWFncmFtVWlNb2RlbC5EaWFncmFtRGF0YSEpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkZWVwTWVyZ2UodGFyZ2V0OiBhbnksIHNvdXJjZTogYW55KTogYW55IHtcclxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHNvdXJjZSkpIHtcclxuICAgICAgaWYgKHNvdXJjZVtrZXldIGluc3RhbmNlb2YgT2JqZWN0ICYmIHRhcmdldFtrZXldKSB7XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbihzb3VyY2Vba2V5XSwgdGhpcy5kZWVwTWVyZ2UodGFyZ2V0W2tleV0sIHNvdXJjZVtrZXldKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIE9iamVjdC5hc3NpZ24odGFyZ2V0IHx8IHt9LCBzb3VyY2UpO1xyXG4gICAgcmV0dXJuIHRhcmdldDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29udmVydEJhY2tlbmRPcHRpb25zKGRlc2NyaXB0b3I6IERpYWdyYW1EZXNjcmlwdG9yKSB7XHJcbiAgICBjb25zdCBvcHRpb25zOiBhbnkgPSB7XHJcbiAgICAgIHBsdWdpbnM6IHtcclxuICAgICAgICBsZWdlbmQ6IHtcclxuICAgICAgICAgIGRpc3BsYXk6IGRlc2NyaXB0b3Iuc2hvd0xlZ2VuZEZvckNoYXJ0ID8/IHRydWUsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgc2NhbGVzOiB7fSBhcyBhbnksXHJcbiAgICB9O1xyXG4gICAgaWYgKGRlc2NyaXB0b3IuZGlhZ3JhbU1pblggIT09IHVuZGVmaW5lZCAmJiBkZXNjcmlwdG9yLmRpYWdyYW1NYXhYICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgb3B0aW9ucy5zY2FsZXMueCA9IHtcclxuICAgICAgICB0aWNrczoge1xyXG4gICAgICAgICAgZGlzcGxheTogZGVzY3JpcHRvci5zaG93TGFiZWxzRm9yWEF4aXMgPz8gdHJ1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIG1pbjogZGVzY3JpcHRvci5kaWFncmFtTWluWCxcclxuICAgICAgICBtYXg6IGRlc2NyaXB0b3IuZGlhZ3JhbU1heFgsXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBvcHRpb25zLnNjYWxlcy54ID0ge1xyXG4gICAgICAgIHRpY2tzOiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBkZXNjcmlwdG9yLnNob3dMYWJlbHNGb3JYQXhpcyA/PyB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAoZGVzY3JpcHRvci5kaWFncmFtTWluWSAhPT0gdW5kZWZpbmVkICYmIGRlc2NyaXB0b3IuZGlhZ3JhbU1heFkgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBvcHRpb25zLnNjYWxlcy55ID0ge1xyXG4gICAgICAgIHRpY2tzOiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBkZXNjcmlwdG9yLnNob3dMYWJlbHNGb3JZQXhpcyA/PyB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbWluOiBkZXNjcmlwdG9yLmRpYWdyYW1NaW5ZLFxyXG4gICAgICAgIG1heDogZGVzY3JpcHRvci5kaWFncmFtTWF4WSxcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG9wdGlvbnMuc2NhbGVzLnkgPSB7XHJcbiAgICAgICAgdGlja3M6IHtcclxuICAgICAgICAgIGRpc3BsYXk6IGRlc2NyaXB0b3Iuc2hvd0xhYmVsc0ZvcllBeGlzID8/IHRydWUsXHJcbiAgICAgICAgfSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiBvcHRpb25zO1xyXG4gIH1cclxufVxyXG4iLCJAaWYoY29tcExpYiA9PT0gY29tcG9uZW50TGlicmFyeS5QUklNRU5HKSB7XHJcbjxwLWNoYXJ0IFt0eXBlXT1cInR5cGVcIiBbZGF0YV09XCJkYXRhXCIgW29wdGlvbnNdPVwib3B0aW9uc1wiIC8+XHJcbn0gQGVsc2Uge1xyXG48cD5Pbmx5IFByaW1lTmcgY29tcG9uZW50IGxpYnJhcnkgaXMgc3VwcG9ydGVkIDwvcD5cclxufVxyXG4iXX0=
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtY2hhcnQvc21hcnQtY2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtY2hhcnQvc21hcnQtY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsZ0JBQWdCLEdBQ2pCLE1BQU0sMENBQTBDLENBQUM7QUFDbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7QUFRakMsTUFBTSxPQUFPLG1CQUFtQjtJQWM5QixZQUNVLG1CQUFnRCxFQUNqQixPQUEwQjtRQUR6RCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQTZCO1FBWGhELGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3JDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3JDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQyxDQUFDLEVBQUU7UUFNckQscUJBQWdCLEdBQUcsZ0JBQWdCLENBQUM7UUFNbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUksZ0JBQWdCLENBQUMsT0FBTyxDQUFDO0lBQ3JELENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxPQUFPLEdBQUcsU0FBUyxDQUFDO1FBQ3hCLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxXQUFXO1lBQy9ELENBQUMs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QUVILElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7UUFDOUQsQ0FBQztJQUNILENBQUM7K0dBbklVLG1CQUFtQiw2REFnQnBCLGlCQUFpQjttR0FoQmhCLG1CQUFtQixzTkN2QmhDLG9WQVlBOzs0RkRXYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsYUFBYTs7MEJBb0JwQixNQUFNOzJCQUFDLGlCQUFpQjs7MEJBQUcsUUFBUTt5Q0FmN0IsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRGVmYXVsdENoYXJ0T3B0aW9uc1Byb3ZpZGVyIH0gZnJvbSBcIi4vZGVmYXVsdC1jaGFydC1vcHRpb25zLnByb3ZpZGVyXCI7XHJcbmltcG9ydCB7IERpYWdyYW1EZXNjcmlwdG9yLCBEaWFncmFtVWlNb2RlbCB9IGZyb20gXCIuL2FwaVwiO1xyXG5pbXBvcnQge1xyXG4gIENPTVBPTkVOVF9MSUJSQVJZLFxyXG4gIENvbXBvbmVudExpYnJhcnksXHJcbn0gZnJvbSBcIi4uL3ZpZXctY29udGV4dC91dGlsaXR5L2NvbXBvbmVudExpYnJhcnlcIjtcclxuaW1wb3J0IHsgQ2hhcnQgfSBmcm9tIFwiY2hhcnQuanNcIjtcclxuaW1wb3J0IHsgVUlDaGFydCB9IGZyb20gXCJwcmltZW5nL2NoYXJ0XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJzbWFydC1jaGFydFwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vc21hcnQtY2hhcnQuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vc21hcnQtY2hhcnQuY29tcG9uZW50LmNzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0Q2hhcnRDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGRpYWdyYW1VaU1vZGVsITogRGlhZ3JhbVVpTW9kZWw7XHJcbiAgQElucHV0KCkgb3B0aW9ucz86IGFueTtcclxuXHJcbiAgQE91dHB1dCgpIGRhdGFTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgY2hhcnRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBvbkRhdGFDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7IC8vXHJcblxyXG4gIGRhdGE6IGFueTtcclxuICB0eXBlOiBhbnk7XHJcblxyXG4gIGNvbXBMaWI6IENvbXBvbmVudExpYnJhcnk7XHJcbiAgY29tcG9uZW50TGlicmFyeSA9IENvbXBvbmVudExpYnJhcnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjaGFydE9wdGlvblByb3ZpZGVyOiBEZWZhdWx0Q2hhcnRPcHRpb25zUHJvdmlkZXIsXHJcbiAgICBASW5qZWN0KENPTVBPTkVOVF9MSUJSQVJZKSBAT3B0aW9uYWwoKSBjb21wTGliPzogQ29tcG9uZW50TGlicmFyeVxyXG4gICkge1xyXG4gICAgdGhpcy5jb21wTGliID0gY29tcExpYiA/PyBDb21wb25lbnRMaWJyYXJ5LlBSSU1FTkc7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgbGV0IG9wdGlvbnMgPSB1bmRlZmluZWQ7XHJcbiAgICBjb25zdCBkaWFncmFtVHlwZSA9ICEhdGhpcy5kaWFncmFtVWlNb2RlbC5EZXNjcmlwdG9yPy5kaWFncmFtVHlwZVxyXG4gICAgICA/IHRoaXMuZGlhZ3JhbVVpTW9kZWwuRGVzY3JpcHRvci5kaWFncmFtVHlwZVxyXG4gICAgICA6IFwiXCI7XHJcblxyXG4gICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuY2hhcnRPcHRpb25Qcm92aWRlci5nZXRGYWN0b3J5KGRpYWdyYW1UeXBlKTtcclxuICAgIHRoaXMudHlwZSA9IGZhY3RvcnkuY2hhcnRKc1R5cGU7XHJcbiAgICBvcHRpb25zID0gZmFjdG9yeS5jcmVhdGVPcHRpb25zKHRoaXMuZGlhZ3JhbVVpTW9kZWwuRGlhZ3JhbURhdGEhKTtcclxuICAgIGlmICh0aGlzLmRpYWdyYW1VaU1vZGVsLkRlc2NyaXB0b3IpIHtcclxuICAgICAgb3B0aW9ucyA9IHRoaXMuZGVlcE1lcmdlKFxyXG4gICAgICAgIHRoaXMuY29udmVydEJhY2tlbmRPcHRpb25zKHRoaXMuZGlhZ3JhbVVpTW9kZWwuRGVzY3JpcHRvciksXHJcbiAgICAgICAgb3B0aW9uc1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub3B0aW9ucykge1xyXG4gICAgICBvcHRpb25zID0gdGhpcy5kZWVwTWVyZ2UodGhpcy5vcHRpb25zLCBvcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xyXG4gICAgdGhpcy5kYXRhID0gZmFjdG9yeS50cmFuc2Zvcm1EYXRhKHRoaXMuZGlhZ3JhbVVpTW9kZWwuRGlhZ3JhbURhdGEhKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGVlcE1lcmdlKHRhcmdldDogYW55LCBzb3VyY2U6IGFueSk6IGFueSB7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhzb3VyY2UpKSB7XHJcbiAgICAgIGlmIChzb3VyY2Vba2V5XSBpbnN0YW5jZW9mIE9iamVjdCAmJiB0YXJnZXRba2V5XSkge1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24oc291cmNlW2tleV0sIHRoaXMuZGVlcE1lcmdlKHRhcmdldFtrZXldLCBzb3VyY2Vba2V5XSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBPYmplY3QuYXNzaWduKHRhcmdldCB8fCB7fSwgc291cmNlKTtcclxuICAgIHJldHVybiB0YXJnZXQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnZlcnRCYWNrZW5kT3B0aW9ucyhkZXNjcmlwdG9yOiBEaWFncmFtRGVzY3JpcHRvcikge1xyXG4gICAgY29uc3Qgb3B0aW9uczogYW55ID0ge1xyXG4gICAgICBwbHVnaW5zOiB7XHJcbiAgICAgICAgbGVnZW5kOiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBkZXNjcmlwdG9yLnNob3dMZWdlbmRGb3JDaGFydCA/PyB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHNjYWxlczoge30gYXMgYW55LFxyXG4gICAgfTtcclxuICAgIGlmIChcclxuICAgICAgZGVzY3JpcHRvci5kaWFncmFtTWluWCAhPT0gdW5kZWZpbmVkICYmXHJcbiAgICAgIGRlc2NyaXB0b3IuZGlhZ3JhbU1heFggIT09IHVuZGVmaW5lZFxyXG4gICAgKSB7XHJcbiAgICAgIG9wdGlvbnMuc2NhbGVzLnggPSB7XHJcbiAgICAgICAgdGlja3M6IHtcclxuICAgICAgICAgIGRpc3BsYXk6IGRlc2NyaXB0b3Iuc2hvd0xhYmVsc0ZvclhBeGlzID8/IHRydWUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBtaW46IGRlc2NyaXB0b3IuZGlhZ3JhbU1pblgsXHJcbiAgICAgICAgbWF4OiBkZXNjcmlwdG9yLmRpYWdyYW1NYXhYLFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgb3B0aW9ucy5zY2FsZXMueCA9IHtcclxuICAgICAgICB0aWNrczoge1xyXG4gICAgICAgICAgZGlzcGxheTogZGVzY3JpcHRvci5zaG93TGFiZWxzRm9yWEF4aXMgPz8gdHJ1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICBkZXNjcmlwdG9yLmRpYWdyYW1NaW5ZICE9PSB1bmRlZmluZWQgJiZcclxuICAgICAgZGVzY3JpcHRvci5kaWFncmFtTWF4WSAhPT0gdW5kZWZpbmVkXHJcbiAgICApIHtcclxuICAgICAgb3B0aW9ucy5zY2FsZXMueSA9IHtcclxuICAgICAgICB0aWNrczoge1xyXG4gICAgICAgICAgZGlzcGxheTogZGVzY3JpcHRvci5zaG93TGFiZWxzRm9yWUF4aXMgPz8gdHJ1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIG1pbjogZGVzY3JpcHRvci5kaWFncmFtTWluWSxcclxuICAgICAgICBtYXg6IGRlc2NyaXB0b3IuZGlhZ3JhbU1heFksXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBvcHRpb25zLnNjYWxlcy55ID0ge1xyXG4gICAgICAgIHRpY2tzOiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBkZXNjcmlwdG9yLnNob3dMYWJlbHNGb3JZQXhpcyA/PyB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb3B0aW9ucztcclxuICB9XHJcblxyXG4gIG9uRGF0YVNlbGVjdChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmRhdGFTZWxlY3QuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDaGFydENsaWNrKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuY2hhcnRDbGljay5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIGhhbmRsZU9uRGF0YUNsaWNrZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgY2FudmFzID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxDYW52YXNFbGVtZW50O1xyXG4gICAgY29uc3QgY2hhcnQgPSBDaGFydC5nZXRDaGFydChjYW52YXMpO1xyXG5cclxuICAgIGlmIChjaGFydCkge1xyXG4gICAgICBjb25zdCBlbGVtZW50cyA9IGNoYXJ0LmdldEVsZW1lbnRzQXRFdmVudEZvck1vZGUoXHJcbiAgICAgICAgZXZlbnQsXHJcbiAgICAgICAgXCJuZWFyZXN0XCIsXHJcbiAgICAgICAgeyBpbnRlcnNlY3Q6IHRydWUgfSxcclxuICAgICAgICBmYWxzZVxyXG4gICAgICApO1xyXG5cclxuICAgICAgY29uc3Qgb3ZlcmxhcHBpbmdFbGVtZW50cyA9IGVsZW1lbnRzLm1hcCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBlbGVtZW50LFxyXG4gICAgICAgICAgY29vcmRpbmF0ZXM6XHJcbiAgICAgICAgICAgIGNoYXJ0LmRhdGEuZGF0YXNldHNbZWxlbWVudC5kYXRhc2V0SW5kZXhdLmRhdGFbZWxlbWVudC5pbmRleF0sXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLmNoYXJ0Q2xpY2suZW1pdCh7IGV2ZW50LCBjaGFydCwgb3ZlcmxhcHBpbmdFbGVtZW50cyB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQGlmKGNvbXBMaWIgPT09IGNvbXBvbmVudExpYnJhcnkuUFJJTUVORykge1xyXG48cC1jaGFydFxyXG4gIFt0eXBlXT1cInR5cGVcIlxyXG4gIFtkYXRhXT1cImRhdGFcIlxyXG4gIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxyXG4gIChvbkRhdGFTZWxlY3QpPVwib25EYXRhU2VsZWN0KCRldmVudClcIlxyXG4gIChjbGljayk9XCJoYW5kbGVDaGFydENsaWNrKCRldmVudClcIlxyXG4gIChjbGljayk9XCJoYW5kbGVPbkRhdGFDbGlja2VkKCRldmVudClcIlxyXG4vPlxyXG59IEBlbHNlIHtcclxuPHA+T25seSBQcmltZU5nIGNvbXBvbmVudCBsaWJyYXJ5IGlzIHN1cHBvcnRlZDwvcD5cclxufVxyXG4iXX0=
@@ -1,8 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, Injectable, Inject, Optional, Component, Input, NgModule } from '@angular/core';
2
+ import { InjectionToken, Injectable, Inject, Optional, EventEmitter, Component, Input, Output, NgModule } from '@angular/core';
3
3
  import { BrowserModule } from '@angular/platform-browser';
4
4
  import * as i2 from 'primeng/chart';
5
5
  import { ChartModule } from 'primeng/chart';
6
+ import { Chart } from 'chart.js';
6
7
 
7
8
  const CUSTOM_CHART_OPTIONS = new InjectionToken('CUSTOM_CHART_OPTIONS');
8
9
  function transformDataToBasicDataSets(chartData) {
@@ -246,6 +247,9 @@ const COMPONENT_LIBRARY = new InjectionToken('COMPONENT_LIBRARY');
246
247
  class SmartChartComponent {
247
248
  constructor(chartOptionProvider, compLib) {
248
249
  this.chartOptionProvider = chartOptionProvider;
250
+ this.dataSelect = new EventEmitter();
251
+ this.chartClick = new EventEmitter();
252
+ this.onDataClicked = new EventEmitter(); //
249
253
  this.componentLibrary = ComponentLibrary;
250
254
  this.compLib = compLib ?? ComponentLibrary.PRIMENG;
251
255
  }
@@ -253,7 +257,7 @@ class SmartChartComponent {
253
257
  let options = undefined;
254
258
  const diagramType = !!this.diagramUiModel.Descriptor?.diagramType
255
259
  ? this.diagramUiModel.Descriptor.diagramType
256
- : '';
260
+ : "";
257
261
  const factory = this.chartOptionProvider.getFactory(diagramType);
258
262
  this.type = factory.chartJsType;
259
263
  options = factory.createOptions(this.diagramUiModel.DiagramData);
@@ -284,7 +288,8 @@ class SmartChartComponent {
284
288
  },
285
289
  scales: {},
286
290
  };
287
- if (descriptor.diagramMinX !== undefined && descriptor.diagramMaxX !== undefined) {
291
+ if (descriptor.diagramMinX !== undefined &&
292
+ descriptor.diagramMaxX !== undefined) {
288
293
  options.scales.x = {
289
294
  ticks: {
290
295
  display: descriptor.showLabelsForXAxis ?? true,
@@ -300,7 +305,8 @@ class SmartChartComponent {
300
305
  },
301
306
  };
302
307
  }
303
- if (descriptor.diagramMinY !== undefined && descriptor.diagramMaxY !== undefined) {
308
+ if (descriptor.diagramMinY !== undefined &&
309
+ descriptor.diagramMaxY !== undefined) {
304
310
  options.scales.y = {
305
311
  ticks: {
306
312
  display: descriptor.showLabelsForYAxis ?? true,
@@ -318,12 +324,32 @@ class SmartChartComponent {
318
324
  }
319
325
  return options;
320
326
  }
327
+ onDataSelect(event) {
328
+ this.dataSelect.emit(event);
329
+ }
330
+ handleChartClick(event) {
331
+ this.chartClick.emit(event);
332
+ }
333
+ handleOnDataClicked(event) {
334
+ const canvas = event.target;
335
+ const chart = Chart.getChart(canvas);
336
+ if (chart) {
337
+ const elements = chart.getElementsAtEventForMode(event, "nearest", { intersect: true }, false);
338
+ const overlappingElements = elements.map((element) => {
339
+ return {
340
+ element,
341
+ coordinates: chart.data.datasets[element.datasetIndex].data[element.index],
342
+ };
343
+ });
344
+ this.chartClick.emit({ event, chart, overlappingElements });
345
+ }
346
+ }
321
347
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartChartComponent, deps: [{ token: DefaultChartOptionsProvider }, { token: COMPONENT_LIBRARY, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
322
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: SmartChartComponent, selector: "smart-chart", inputs: { diagramUiModel: "diagramUiModel", options: "options" }, ngImport: i0, template: "@if(compLib === componentLibrary.PRIMENG) {\r\n<p-chart [type]=\"type\" [data]=\"data\" [options]=\"options\" />\r\n} @else {\r\n<p>Only PrimeNg component library is supported </p>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: i2.UIChart, selector: "p-chart", inputs: ["type", "plugins", "width", "height", "responsive", "ariaLabel", "ariaLabelledBy", "data", "options"], outputs: ["onDataSelect"] }] }); }
348
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: SmartChartComponent, selector: "smart-chart", inputs: { diagramUiModel: "diagramUiModel", options: "options" }, outputs: { dataSelect: "dataSelect", chartClick: "chartClick", onDataClicked: "onDataClicked" }, ngImport: i0, template: "@if(compLib === componentLibrary.PRIMENG) {\r\n<p-chart\r\n [type]=\"type\"\r\n [data]=\"data\"\r\n [options]=\"options\"\r\n (onDataSelect)=\"onDataSelect($event)\"\r\n (click)=\"handleChartClick($event)\"\r\n (click)=\"handleOnDataClicked($event)\"\r\n/>\r\n} @else {\r\n<p>Only PrimeNg component library is supported</p>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: i2.UIChart, selector: "p-chart", inputs: ["type", "plugins", "width", "height", "responsive", "ariaLabel", "ariaLabelledBy", "data", "options"], outputs: ["onDataSelect"] }] }); }
323
349
  }
324
350
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartChartComponent, decorators: [{
325
351
  type: Component,
326
- args: [{ selector: 'smart-chart', template: "@if(compLib === componentLibrary.PRIMENG) {\r\n<p-chart [type]=\"type\" [data]=\"data\" [options]=\"options\" />\r\n} @else {\r\n<p>Only PrimeNg component library is supported </p>\r\n}\r\n" }]
352
+ args: [{ selector: "smart-chart", template: "@if(compLib === componentLibrary.PRIMENG) {\r\n<p-chart\r\n [type]=\"type\"\r\n [data]=\"data\"\r\n [options]=\"options\"\r\n (onDataSelect)=\"onDataSelect($event)\"\r\n (click)=\"handleChartClick($event)\"\r\n (click)=\"handleOnDataClicked($event)\"\r\n/>\r\n} @else {\r\n<p>Only PrimeNg component library is supported</p>\r\n}\r\n" }]
327
353
  }], ctorParameters: () => [{ type: DefaultChartOptionsProvider }, { type: ComponentLibrary, decorators: [{
328
354
  type: Inject,
329
355
  args: [COMPONENT_LIBRARY]
@@ -333,6 +359,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
333
359
  type: Input
334
360
  }], options: [{
335
361
  type: Input
362
+ }], dataSelect: [{
363
+ type: Output
364
+ }], chartClick: [{
365
+ type: Output
366
+ }], onDataClicked: [{
367
+ type: Output
336
368
  }] } });
337
369
 
338
370
  const DEFAULT_PROVIDERS = [
@@ -1 +1 @@
1
- {"version":3,"file":"smartbit4all-ng-client-src-lib-smart-chart.mjs","sources":["../../../projects/smart-ng-client/src/lib/smart-chart/default-chart-options.provider.ts","../../../projects/smart-ng-client/src/lib/view-context/utility/componentLibrary.ts","../../../projects/smart-ng-client/src/lib/smart-chart/smart-chart.component.ts","../../../projects/smart-ng-client/src/lib/smart-chart/smart-chart.component.html","../../../projects/smart-ng-client/src/lib/smart-chart/smart-chart.module.ts","../../../projects/smart-ng-client/src/lib/smart-chart/api/model/chartOrientation.ts","../../../projects/smart-ng-client/src/lib/smart-chart/api/model/chartType.ts","../../../projects/smart-ng-client/src/lib/smart-chart/api/model/chartValue.ts","../../../projects/smart-ng-client/src/lib/smart-chart/api/model/diagramDataItem.ts","../../../projects/smart-ng-client/src/lib/smart-chart/api/model/diagramDataSetConstructionInstruction.ts","../../../projects/smart-ng-client/src/lib/smart-chart/api/model/diagramDescriptor.ts","../../../projects/smart-ng-client/src/lib/smart-chart/api/model/pieChartLegendPosition.ts","../../../projects/smart-ng-client/src/lib/smart-chart-projects.ts","../../../projects/smart-ng-client/src/lib/smartbit4all-ng-client-src-lib-smart-chart.ts"],"sourcesContent":["import { Injectable, InjectionToken, Optional, Inject } from '@angular/core';\r\nimport { DiagramDataContainer } from './api';\r\n\r\nexport const CUSTOM_CHART_OPTIONS = new InjectionToken<ChartJsFactory>('CUSTOM_CHART_OPTIONS');\r\n\r\nexport interface ChartJsFactory {\r\n readonly chartType: string;\r\n readonly chartJsType: string;\r\n createOptions(chartData: DiagramDataContainer): any;\r\n transformData(chartData: DiagramDataContainer): any;\r\n}\r\n\r\nexport function transformDataToBasicDataSets(chartData: DiagramDataContainer): any {\r\n return {\r\n labels: chartData.labels,\r\n datasets: chartData.items.map((dataset) => {\r\n const color = dataset.dataSetcolor || generateRandomColor();\r\n return {\r\n data: dataset.items.map((item) => item.xValue),\r\n label: dataset.label,\r\n backgroundColor: color,\r\n borderColor: color,\r\n };\r\n }),\r\n };\r\n}\r\n\r\nexport function transformDataToBarLikeDataSet(chartData: DiagramDataContainer): any {\r\n return {\r\n labels: chartData.labels,\r\n datasets: chartData.items.map((dataset) => {\r\n return {\r\n data: dataset.items.map((item) => item.xValue),\r\n label: dataset.label,\r\n backgroundColor: dataset.items.map((item) => item.itemColor || generateRandomColor()),\r\n borderColor: dataset.items.map((item) => item.itemColor || generateRandomColor()),\r\n };\r\n }),\r\n };\r\n}\r\n\r\nexport function transformDataToScatter(chartData: DiagramDataContainer): any {\r\n return {\r\n datasets: chartData.items.map((dataset) => {\r\n const color = dataset.dataSetcolor || generateRandomColor();\r\n return {\r\n label: dataset.label,\r\n data: dataset.items.map((item) => ({\r\n x: item.xValue,\r\n y: item.yValue,\r\n })),\r\n backgroundColor: color,\r\n borderColor: color,\r\n };\r\n }),\r\n };\r\n}\r\n\r\nexport function transformDataToBubble(chartData: DiagramDataContainer): any {\r\n return {\r\n datasets: chartData.items.map((dataset) => {\r\n const color = dataset.dataSetcolor || generateRandomColor();\r\n return {\r\n label: dataset.label,\r\n data: dataset.items.map((item) => ({\r\n x: item.xValue,\r\n y: item.yValue,\r\n r: item.rValue ?? 5,\r\n })),\r\n backgroundColor: color,\r\n borderColor: color,\r\n };\r\n }),\r\n };\r\n}\r\n\r\nexport const barChart: ChartJsFactory = {\r\n chartType: 'bar',\r\n chartJsType: 'bar',\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: transformDataToBarLikeDataSet,\r\n};\r\n\r\nexport const horizontalBarChart: ChartJsFactory = {\r\n chartType: 'horizontalBar',\r\n chartJsType: 'bar',\r\n createOptions: () => {\r\n return {\r\n indexAxis: 'y',\r\n };\r\n },\r\n transformData: transformDataToBarLikeDataSet,\r\n};\r\n\r\nexport const radarChart: ChartJsFactory = {\r\n chartType: 'radar',\r\n chartJsType: 'radar',\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: (chartData: DiagramDataContainer): any => {\r\n return {\r\n labels: chartData.labels,\r\n datasets: chartData.items.map((dataset) => ({\r\n data: dataset.items.map((item) => item.xValue),\r\n label: dataset.label,\r\n borderColor: dataset.dataSetcolor,\r\n pointBackgroundColor: dataset.dataSetcolor,\r\n pointBorderColor: dataset.dataSetcolor,\r\n pointHoverBackgroundColor: '#000000',\r\n pointHoverBorderColor: dataset.dataSetcolor,\r\n })),\r\n };\r\n },\r\n};\r\n\r\nexport const stackedBarChart: ChartJsFactory = {\r\n chartType: 'stackedBar',\r\n chartJsType: 'bar',\r\n createOptions: () => {\r\n return {\r\n scales: {\r\n x: {\r\n stacked: true,\r\n },\r\n y: {\r\n stacked: true,\r\n },\r\n },\r\n };\r\n },\r\n transformData: transformDataToBasicDataSets,\r\n};\r\n\r\nexport const pieChart: ChartJsFactory = {\r\n chartType: 'pie',\r\n chartJsType: 'pie',\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: transformDataToBarLikeDataSet,\r\n};\r\n\r\nexport const doughnutChart: ChartJsFactory = {\r\n chartType: 'doughnut',\r\n chartJsType: 'doughnut',\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: transformDataToBarLikeDataSet,\r\n};\r\n\r\nexport const scatterChart: ChartJsFactory = {\r\n chartType: 'scatter',\r\n chartJsType: 'scatter',\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: transformDataToScatter,\r\n};\r\n\r\nexport const bubbleChart: ChartJsFactory = {\r\n chartType: 'bubble',\r\n chartJsType: 'bubble',\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: transformDataToBubble,\r\n};\r\n\r\nexport const multiAxisLineChart: ChartJsFactory = {\r\n chartType: 'multiAxisLine',\r\n chartJsType: 'line',\r\n createOptions: (chartData: DiagramDataContainer): any => {\r\n const yAxes = chartData.items.map((dataset, index) => ({\r\n id: `y${index == 1 ? '' : index}`,\r\n type: 'linear',\r\n position: index % 2 === 0 ? 'left' : 'right',\r\n }));\r\n return {\r\n scales: {\r\n ...yAxes.reduce((acc: any, axis) => {\r\n acc[axis.id] = axis;\r\n return acc;\r\n }, {}),\r\n },\r\n };\r\n },\r\n transformData: (chartData: DiagramDataContainer): any => {\r\n return {\r\n labels: chartData.labels,\r\n datasets: chartData.items.map((dataset, index) => ({\r\n data: dataset.items.map((item) => item.xValue),\r\n label: dataset.label,\r\n yAxisID: `y${index == 1 ? '' : index}`,\r\n backgroundColor: dataset.dataSetcolor,\r\n borderColor: dataset.dataSetcolor,\r\n })),\r\n };\r\n },\r\n};\r\n\r\nexport const polarAreaChart: ChartJsFactory = {\r\n chartType: 'polarArea',\r\n chartJsType: 'polarArea',\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: (chartData: DiagramDataContainer): any => {\r\n return {\r\n labels: chartData.labels,\r\n datasets: chartData.items.map((dataset) => ({\r\n data: dataset.items.map((item) => item.xValue),\r\n label: dataset.label,\r\n borderColor: dataset.items.map((item) => item.itemColor),\r\n backgroundColor: dataset.items.map((item) => item.itemColor),\r\n })),\r\n };\r\n },\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DefaultChartOptionsProvider {\r\n private readonly factoriesByType: Map<string, ChartJsFactory>;\r\n constructor(@Inject(CUSTOM_CHART_OPTIONS) @Optional() factories: ChartJsFactory[] | undefined) {\r\n this.factoriesByType = new Map(factories?.map((f) => [f.chartType, f]) ?? []);\r\n }\r\n\r\n getFactory(chartType: string): ChartJsFactory {\r\n return (\r\n this.factoriesByType.get(chartType) ?? {\r\n chartType: chartType,\r\n chartJsType: chartType,\r\n transformData: transformDataToBasicDataSets,\r\n createOptions: () => {\r\n return {};\r\n },\r\n }\r\n );\r\n }\r\n}\r\n\r\nfunction generateRandomColor(): string {\r\n const random = Math.floor(Math.random() * 16777215).toString(16);\r\n return `#${'000000'.substring(0, 6 - random.length) + random}`;\r\n}\r\n","// lib/view-context/utility/componentLibrary.ts\r\nimport { InjectionToken } from '@angular/core';\r\n\r\nexport enum ComponentLibrary {\r\n MATERIAL = 'material',\r\n PRIMENG = 'primeng',\r\n}\r\n\r\nexport const COMPONENT_LIBRARY = new InjectionToken<ComponentLibrary>('COMPONENT_LIBRARY');\r\n","import { Component, Inject, Input, Optional } from '@angular/core';\r\nimport { DefaultChartOptionsProvider } from './default-chart-options.provider';\r\nimport { DiagramDescriptor, DiagramUiModel } from './api';\r\nimport { COMPONENT_LIBRARY, ComponentLibrary } from '../view-context/utility/componentLibrary';\r\n\r\n@Component({\r\n selector: 'smart-chart',\r\n templateUrl: './smart-chart.component.html',\r\n styleUrls: ['./smart-chart.component.css'],\r\n})\r\nexport class SmartChartComponent {\r\n @Input() diagramUiModel!: DiagramUiModel;\r\n @Input() options?: any;\r\n data: any;\r\n type: any;\r\n\r\n compLib: ComponentLibrary;\r\n componentLibrary = ComponentLibrary;\r\n\r\n constructor(\r\n private chartOptionProvider: DefaultChartOptionsProvider,\r\n @Inject(COMPONENT_LIBRARY) @Optional() compLib?: ComponentLibrary\r\n ) {\r\n this.compLib = compLib ?? ComponentLibrary.PRIMENG;\r\n }\r\n ngOnInit() {\r\n let options = undefined;\r\n const diagramType = !!this.diagramUiModel.Descriptor?.diagramType\r\n ? this.diagramUiModel.Descriptor.diagramType\r\n : '';\r\n\r\n const factory = this.chartOptionProvider.getFactory(diagramType);\r\n this.type = factory.chartJsType;\r\n options = factory.createOptions(this.diagramUiModel.DiagramData!);\r\n if (this.diagramUiModel.Descriptor) {\r\n options = this.deepMerge(this.convertBackendOptions(this.diagramUiModel.Descriptor), options);\r\n }\r\n if (this.options) {\r\n options = this.deepMerge(this.options, options);\r\n }\r\n\r\n this.options = options;\r\n this.data = factory.transformData(this.diagramUiModel.DiagramData!);\r\n }\r\n\r\n private deepMerge(target: any, source: any): any {\r\n for (const key of Object.keys(source)) {\r\n if (source[key] instanceof Object && target[key]) {\r\n Object.assign(source[key], this.deepMerge(target[key], source[key]));\r\n }\r\n }\r\n Object.assign(target || {}, source);\r\n return target;\r\n }\r\n\r\n private convertBackendOptions(descriptor: DiagramDescriptor) {\r\n const options: any = {\r\n plugins: {\r\n legend: {\r\n display: descriptor.showLegendForChart ?? true,\r\n },\r\n },\r\n scales: {} as any,\r\n };\r\n if (descriptor.diagramMinX !== undefined && descriptor.diagramMaxX !== undefined) {\r\n options.scales.x = {\r\n ticks: {\r\n display: descriptor.showLabelsForXAxis ?? true,\r\n },\r\n min: descriptor.diagramMinX,\r\n max: descriptor.diagramMaxX,\r\n };\r\n } else {\r\n options.scales.x = {\r\n ticks: {\r\n display: descriptor.showLabelsForXAxis ?? true,\r\n },\r\n };\r\n }\r\n if (descriptor.diagramMinY !== undefined && descriptor.diagramMaxY !== undefined) {\r\n options.scales.y = {\r\n ticks: {\r\n display: descriptor.showLabelsForYAxis ?? true,\r\n },\r\n min: descriptor.diagramMinY,\r\n max: descriptor.diagramMaxY,\r\n };\r\n } else {\r\n options.scales.y = {\r\n ticks: {\r\n display: descriptor.showLabelsForYAxis ?? true,\r\n },\r\n };\r\n }\r\n return options;\r\n }\r\n}\r\n","@if(compLib === componentLibrary.PRIMENG) {\r\n<p-chart [type]=\"type\" [data]=\"data\" [options]=\"options\" />\r\n} @else {\r\n<p>Only PrimeNg component library is supported </p>\r\n}\r\n","import { ModuleWithProviders, NgModule, Provider } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { ChartModule } from 'primeng/chart';\r\nimport {\r\n barChart,\r\n bubbleChart,\r\n CUSTOM_CHART_OPTIONS,\r\n DefaultChartOptionsProvider,\r\n doughnutChart,\r\n horizontalBarChart,\r\n multiAxisLineChart,\r\n pieChart,\r\n polarAreaChart,\r\n radarChart,\r\n scatterChart,\r\n stackedBarChart,\r\n} from './default-chart-options.provider';\r\nimport { SmartChartComponent } from './smart-chart.component';\r\n\r\nconst DEFAULT_PROVIDERS: Provider[] = [\r\n DefaultChartOptionsProvider,\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: barChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: scatterChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: bubbleChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: horizontalBarChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: stackedBarChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: multiAxisLineChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: polarAreaChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: radarChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: doughnutChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: pieChart, multi: true },\r\n];\r\n\r\n@NgModule({\r\n declarations: [SmartChartComponent],\r\n imports: [BrowserModule, ChartModule],\r\n exports: [SmartChartComponent],\r\n})\r\nexport class SmartChartModule {\r\n static forRoot(providers: Provider[]): ModuleWithProviders<SmartChartModule> {\r\n return {\r\n ngModule: SmartChartModule,\r\n providers: [...DEFAULT_PROVIDERS, ...providers],\r\n };\r\n }\r\n}\r\n","/**\r\n * Chart API\r\n * API for consume charts.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport type ChartOrientation = 'Horizontal' | 'Vertical';\r\n\r\nexport const ChartOrientation = {\r\n Horizontal: 'Horizontal' as ChartOrientation,\r\n Vertical: 'Vertical' as ChartOrientation\r\n};\r\n\r\n","/**\r\n * Chart API\r\n * API for consume charts.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport type ChartType = 'BarChart' | 'GroupedBarChart' | 'StackedBarChart' | 'NormalizedBarChart' | 'PieChart' | 'AdvancedPieChart' | 'PieGrid';\r\n\r\nexport const ChartType = {\r\n BarChart: 'BarChart' as ChartType,\r\n GroupedBarChart: 'GroupedBarChart' as ChartType,\r\n StackedBarChart: 'StackedBarChart' as ChartType,\r\n NormalizedBarChart: 'NormalizedBarChart' as ChartType,\r\n PieChart: 'PieChart' as ChartType,\r\n AdvancedPieChart: 'AdvancedPieChart' as ChartType,\r\n PieGrid: 'PieGrid' as ChartType\r\n};\r\n\r\n","/**\r\n * Chart API\r\n * API for consume charts.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport interface ChartValue { \r\n name: string;\r\n value?: object;\r\n series: Array<ChartValue>;\r\n}\r\n\r\n","/**\r\n * Chart API\r\n * API for consume charts.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\n/**\r\n * Contains an items data, based on the type of the diagram.\r\n */\r\nexport interface DiagramDataItem { \r\n label?: string;\r\n xValue?: number;\r\n yValue?: number;\r\n /**\r\n * This property specifies the radius of each bubble in a bubble chart. It is used to determine the size of the bubbles relative to their data values.\r\n */\r\n rValue?: number;\r\n itemColor?: string;\r\n}\r\n\r\n","/**\r\n * Chart API\r\n * API for consume charts.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport interface DiagramDataSetConstructionInstruction { \r\n xValuePath?: Array<string>;\r\n yValuePath?: Array<string>;\r\n rValuePath?: Array<string>;\r\n labelValuePath?: Array<string>;\r\n colorValuePath?: Array<string>;\r\n loadLatest?: boolean;\r\n dataSetLabel?: string;\r\n dataSetType?: string;\r\n}\r\n\r\n","/**\r\n * Chart API\r\n * API for consume charts.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\n/**\r\n * A descriptor for the diagram.\r\n */\r\nexport interface DiagramDescriptor { \r\n uri?: string;\r\n /**\r\n * The type of the diagram.\r\n */\r\n diagramType?: string;\r\n /**\r\n * Specifies the starting point for rendering the chart\\'s X-axis. For example, if the minimum X value in the dataset is -30 and this property is set to -35, an extra \\\"padding\\\" of 5 units will be added below the lowest data point.\r\n */\r\n diagramMinX?: number;\r\n /**\r\n * Specifies the ending point for rendering the chart\\'s X-axis. For instance, if the maximum X value in the dataset is 30 and this property is set to 35, an additional \\\"padding\\\" of 5 units will be added above the highest data point.\r\n */\r\n diagramMaxX?: number;\r\n /**\r\n * Specifies the starting point for rendering the chart\\'s Y-axis. For example, if the minimum Y value in the dataset is -30 and this property is set to -35, an extra \\\"padding\\\" of 5 units will be added below the lowest data point.\r\n */\r\n diagramMinY?: number;\r\n /**\r\n * Specifies the ending point for rendering the chart\\'s Y-axis. For instance, if the maximum Y value in the dataset is 30 and this property is set to 35, an additional \\\"padding\\\" of 5 units will be added above the highest data point.\r\n */\r\n diagramMaxY?: number;\r\n /**\r\n * Determines whether the labels on the X-Axis are displayed on the chart. Set to `true` to show the labels, or `false` to hide them.\r\n */\r\n showLabelsForXAxis?: boolean;\r\n /**\r\n * Determines whether the labels on the Y-Axis are displayed on the chart. Set to `true` to show the labels, or `false` to hide them.\r\n */\r\n showLabelsForYAxis?: boolean;\r\n /**\r\n * Determines whether the legend for the chart is displayed. Set to `true` to show the legend, or `false` to hide it.\r\n */\r\n showLegendForChart?: boolean;\r\n}\r\n\r\n","/**\r\n * Chart API\r\n * API for consume charts.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport type PieChartLegendPosition = 'right' | 'below';\r\n\r\nexport const PieChartLegendPosition = {\r\n Right: 'right' as PieChartLegendPosition,\r\n Below: 'below' as PieChartLegendPosition\r\n};\r\n\r\n","/*\r\n * Public API Surface of smart-chart\r\n */\r\n\r\nexport * from './smart-chart/smart-chart.module';\r\nexport * from './smart-chart/smart-chart.component';\r\nexport * from './smart-chart/api/model/models';\r\nexport * from './smart-chart/default-chart-options.provider';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './smart-chart-projects';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smartbit4all-ng-client-src-lib-smart-chart.mjs","sources":["../../../projects/smart-ng-client/src/lib/smart-chart/default-chart-options.provider.ts","../../../projects/smart-ng-client/src/lib/view-context/utility/componentLibrary.ts","../../../projects/smart-ng-client/src/lib/smart-chart/smart-chart.component.ts","../../../projects/smart-ng-client/src/lib/smart-chart/smart-chart.component.html","../../../projects/smart-ng-client/src/lib/smart-chart/smart-chart.module.ts","../../../projects/smart-ng-client/src/lib/smart-chart/api/model/chartOrientation.ts","../../../projects/smart-ng-client/src/lib/smart-chart/api/model/chartType.ts","../../../projects/smart-ng-client/src/lib/smart-chart/api/model/chartValue.ts","../../../projects/smart-ng-client/src/lib/smart-chart/api/model/diagramDataItem.ts","../../../projects/smart-ng-client/src/lib/smart-chart/api/model/diagramDataSetConstructionInstruction.ts","../../../projects/smart-ng-client/src/lib/smart-chart/api/model/diagramDescriptor.ts","../../../projects/smart-ng-client/src/lib/smart-chart/api/model/pieChartLegendPosition.ts","../../../projects/smart-ng-client/src/lib/smart-chart-projects.ts","../../../projects/smart-ng-client/src/lib/smartbit4all-ng-client-src-lib-smart-chart.ts"],"sourcesContent":["import { Injectable, InjectionToken, Optional, Inject } from '@angular/core';\r\nimport { DiagramDataContainer } from './api';\r\n\r\nexport const CUSTOM_CHART_OPTIONS = new InjectionToken<ChartJsFactory>('CUSTOM_CHART_OPTIONS');\r\n\r\nexport interface ChartJsFactory {\r\n readonly chartType: string;\r\n readonly chartJsType: string;\r\n createOptions(chartData: DiagramDataContainer): any;\r\n transformData(chartData: DiagramDataContainer): any;\r\n}\r\n\r\nexport function transformDataToBasicDataSets(chartData: DiagramDataContainer): any {\r\n return {\r\n labels: chartData.labels,\r\n datasets: chartData.items.map((dataset) => {\r\n const color = dataset.dataSetcolor || generateRandomColor();\r\n return {\r\n data: dataset.items.map((item) => item.xValue),\r\n label: dataset.label,\r\n backgroundColor: color,\r\n borderColor: color,\r\n };\r\n }),\r\n };\r\n}\r\n\r\nexport function transformDataToBarLikeDataSet(chartData: DiagramDataContainer): any {\r\n return {\r\n labels: chartData.labels,\r\n datasets: chartData.items.map((dataset) => {\r\n return {\r\n data: dataset.items.map((item) => item.xValue),\r\n label: dataset.label,\r\n backgroundColor: dataset.items.map((item) => item.itemColor || generateRandomColor()),\r\n borderColor: dataset.items.map((item) => item.itemColor || generateRandomColor()),\r\n };\r\n }),\r\n };\r\n}\r\n\r\nexport function transformDataToScatter(chartData: DiagramDataContainer): any {\r\n return {\r\n datasets: chartData.items.map((dataset) => {\r\n const color = dataset.dataSetcolor || generateRandomColor();\r\n return {\r\n label: dataset.label,\r\n data: dataset.items.map((item) => ({\r\n x: item.xValue,\r\n y: item.yValue,\r\n })),\r\n backgroundColor: color,\r\n borderColor: color,\r\n };\r\n }),\r\n };\r\n}\r\n\r\nexport function transformDataToBubble(chartData: DiagramDataContainer): any {\r\n return {\r\n datasets: chartData.items.map((dataset) => {\r\n const color = dataset.dataSetcolor || generateRandomColor();\r\n return {\r\n label: dataset.label,\r\n data: dataset.items.map((item) => ({\r\n x: item.xValue,\r\n y: item.yValue,\r\n r: item.rValue ?? 5,\r\n })),\r\n backgroundColor: color,\r\n borderColor: color,\r\n };\r\n }),\r\n };\r\n}\r\n\r\nexport const barChart: ChartJsFactory = {\r\n chartType: 'bar',\r\n chartJsType: 'bar',\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: transformDataToBarLikeDataSet,\r\n};\r\n\r\nexport const horizontalBarChart: ChartJsFactory = {\r\n chartType: 'horizontalBar',\r\n chartJsType: 'bar',\r\n createOptions: () => {\r\n return {\r\n indexAxis: 'y',\r\n };\r\n },\r\n transformData: transformDataToBarLikeDataSet,\r\n};\r\n\r\nexport const radarChart: ChartJsFactory = {\r\n chartType: 'radar',\r\n chartJsType: 'radar',\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: (chartData: DiagramDataContainer): any => {\r\n return {\r\n labels: chartData.labels,\r\n datasets: chartData.items.map((dataset) => ({\r\n data: dataset.items.map((item) => item.xValue),\r\n label: dataset.label,\r\n borderColor: dataset.dataSetcolor,\r\n pointBackgroundColor: dataset.dataSetcolor,\r\n pointBorderColor: dataset.dataSetcolor,\r\n pointHoverBackgroundColor: '#000000',\r\n pointHoverBorderColor: dataset.dataSetcolor,\r\n })),\r\n };\r\n },\r\n};\r\n\r\nexport const stackedBarChart: ChartJsFactory = {\r\n chartType: 'stackedBar',\r\n chartJsType: 'bar',\r\n createOptions: () => {\r\n return {\r\n scales: {\r\n x: {\r\n stacked: true,\r\n },\r\n y: {\r\n stacked: true,\r\n },\r\n },\r\n };\r\n },\r\n transformData: transformDataToBasicDataSets,\r\n};\r\n\r\nexport const pieChart: ChartJsFactory = {\r\n chartType: 'pie',\r\n chartJsType: 'pie',\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: transformDataToBarLikeDataSet,\r\n};\r\n\r\nexport const doughnutChart: ChartJsFactory = {\r\n chartType: 'doughnut',\r\n chartJsType: 'doughnut',\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: transformDataToBarLikeDataSet,\r\n};\r\n\r\nexport const scatterChart: ChartJsFactory = {\r\n chartType: 'scatter',\r\n chartJsType: 'scatter',\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: transformDataToScatter,\r\n};\r\n\r\nexport const bubbleChart: ChartJsFactory = {\r\n chartType: 'bubble',\r\n chartJsType: 'bubble',\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: transformDataToBubble,\r\n};\r\n\r\nexport const multiAxisLineChart: ChartJsFactory = {\r\n chartType: 'multiAxisLine',\r\n chartJsType: 'line',\r\n createOptions: (chartData: DiagramDataContainer): any => {\r\n const yAxes = chartData.items.map((dataset, index) => ({\r\n id: `y${index == 1 ? '' : index}`,\r\n type: 'linear',\r\n position: index % 2 === 0 ? 'left' : 'right',\r\n }));\r\n return {\r\n scales: {\r\n ...yAxes.reduce((acc: any, axis) => {\r\n acc[axis.id] = axis;\r\n return acc;\r\n }, {}),\r\n },\r\n };\r\n },\r\n transformData: (chartData: DiagramDataContainer): any => {\r\n return {\r\n labels: chartData.labels,\r\n datasets: chartData.items.map((dataset, index) => ({\r\n data: dataset.items.map((item) => item.xValue),\r\n label: dataset.label,\r\n yAxisID: `y${index == 1 ? '' : index}`,\r\n backgroundColor: dataset.dataSetcolor,\r\n borderColor: dataset.dataSetcolor,\r\n })),\r\n };\r\n },\r\n};\r\n\r\nexport const polarAreaChart: ChartJsFactory = {\r\n chartType: 'polarArea',\r\n chartJsType: 'polarArea',\r\n createOptions: () => {\r\n return {};\r\n },\r\n transformData: (chartData: DiagramDataContainer): any => {\r\n return {\r\n labels: chartData.labels,\r\n datasets: chartData.items.map((dataset) => ({\r\n data: dataset.items.map((item) => item.xValue),\r\n label: dataset.label,\r\n borderColor: dataset.items.map((item) => item.itemColor),\r\n backgroundColor: dataset.items.map((item) => item.itemColor),\r\n })),\r\n };\r\n },\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DefaultChartOptionsProvider {\r\n private readonly factoriesByType: Map<string, ChartJsFactory>;\r\n constructor(@Inject(CUSTOM_CHART_OPTIONS) @Optional() factories: ChartJsFactory[] | undefined) {\r\n this.factoriesByType = new Map(factories?.map((f) => [f.chartType, f]) ?? []);\r\n }\r\n\r\n getFactory(chartType: string): ChartJsFactory {\r\n return (\r\n this.factoriesByType.get(chartType) ?? {\r\n chartType: chartType,\r\n chartJsType: chartType,\r\n transformData: transformDataToBasicDataSets,\r\n createOptions: () => {\r\n return {};\r\n },\r\n }\r\n );\r\n }\r\n}\r\n\r\nfunction generateRandomColor(): string {\r\n const random = Math.floor(Math.random() * 16777215).toString(16);\r\n return `#${'000000'.substring(0, 6 - random.length) + random}`;\r\n}\r\n","// lib/view-context/utility/componentLibrary.ts\r\nimport { InjectionToken } from '@angular/core';\r\n\r\nexport enum ComponentLibrary {\r\n MATERIAL = 'material',\r\n PRIMENG = 'primeng',\r\n}\r\n\r\nexport const COMPONENT_LIBRARY = new InjectionToken<ComponentLibrary>('COMPONENT_LIBRARY');\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n Optional,\r\n Output,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { DefaultChartOptionsProvider } from \"./default-chart-options.provider\";\r\nimport { DiagramDescriptor, DiagramUiModel } from \"./api\";\r\nimport {\r\n COMPONENT_LIBRARY,\r\n ComponentLibrary,\r\n} from \"../view-context/utility/componentLibrary\";\r\nimport { Chart } from \"chart.js\";\r\nimport { UIChart } from \"primeng/chart\";\r\n\r\n@Component({\r\n selector: \"smart-chart\",\r\n templateUrl: \"./smart-chart.component.html\",\r\n styleUrls: [\"./smart-chart.component.css\"],\r\n})\r\nexport class SmartChartComponent {\r\n @Input() diagramUiModel!: DiagramUiModel;\r\n @Input() options?: any;\r\n\r\n @Output() dataSelect = new EventEmitter<any>();\r\n @Output() chartClick = new EventEmitter<any>();\r\n @Output() onDataClicked = new EventEmitter<any>(); //\r\n\r\n data: any;\r\n type: any;\r\n\r\n compLib: ComponentLibrary;\r\n componentLibrary = ComponentLibrary;\r\n\r\n constructor(\r\n private chartOptionProvider: DefaultChartOptionsProvider,\r\n @Inject(COMPONENT_LIBRARY) @Optional() compLib?: ComponentLibrary\r\n ) {\r\n this.compLib = compLib ?? ComponentLibrary.PRIMENG;\r\n }\r\n ngOnInit() {\r\n let options = undefined;\r\n const diagramType = !!this.diagramUiModel.Descriptor?.diagramType\r\n ? this.diagramUiModel.Descriptor.diagramType\r\n : \"\";\r\n\r\n const factory = this.chartOptionProvider.getFactory(diagramType);\r\n this.type = factory.chartJsType;\r\n options = factory.createOptions(this.diagramUiModel.DiagramData!);\r\n if (this.diagramUiModel.Descriptor) {\r\n options = this.deepMerge(\r\n this.convertBackendOptions(this.diagramUiModel.Descriptor),\r\n options\r\n );\r\n }\r\n if (this.options) {\r\n options = this.deepMerge(this.options, options);\r\n }\r\n\r\n this.options = options;\r\n this.data = factory.transformData(this.diagramUiModel.DiagramData!);\r\n }\r\n\r\n private deepMerge(target: any, source: any): any {\r\n for (const key of Object.keys(source)) {\r\n if (source[key] instanceof Object && target[key]) {\r\n Object.assign(source[key], this.deepMerge(target[key], source[key]));\r\n }\r\n }\r\n Object.assign(target || {}, source);\r\n return target;\r\n }\r\n\r\n private convertBackendOptions(descriptor: DiagramDescriptor) {\r\n const options: any = {\r\n plugins: {\r\n legend: {\r\n display: descriptor.showLegendForChart ?? true,\r\n },\r\n },\r\n scales: {} as any,\r\n };\r\n if (\r\n descriptor.diagramMinX !== undefined &&\r\n descriptor.diagramMaxX !== undefined\r\n ) {\r\n options.scales.x = {\r\n ticks: {\r\n display: descriptor.showLabelsForXAxis ?? true,\r\n },\r\n min: descriptor.diagramMinX,\r\n max: descriptor.diagramMaxX,\r\n };\r\n } else {\r\n options.scales.x = {\r\n ticks: {\r\n display: descriptor.showLabelsForXAxis ?? true,\r\n },\r\n };\r\n }\r\n if (\r\n descriptor.diagramMinY !== undefined &&\r\n descriptor.diagramMaxY !== undefined\r\n ) {\r\n options.scales.y = {\r\n ticks: {\r\n display: descriptor.showLabelsForYAxis ?? true,\r\n },\r\n min: descriptor.diagramMinY,\r\n max: descriptor.diagramMaxY,\r\n };\r\n } else {\r\n options.scales.y = {\r\n ticks: {\r\n display: descriptor.showLabelsForYAxis ?? true,\r\n },\r\n };\r\n }\r\n return options;\r\n }\r\n\r\n onDataSelect(event: any) {\r\n this.dataSelect.emit(event);\r\n }\r\n\r\n handleChartClick(event: any): void {\r\n this.chartClick.emit(event);\r\n }\r\n\r\n handleOnDataClicked(event: any): void {\r\n const canvas = event.target as HTMLCanvasElement;\r\n const chart = Chart.getChart(canvas);\r\n\r\n if (chart) {\r\n const elements = chart.getElementsAtEventForMode(\r\n event,\r\n \"nearest\",\r\n { intersect: true },\r\n false\r\n );\r\n\r\n const overlappingElements = elements.map((element) => {\r\n return {\r\n element,\r\n coordinates:\r\n chart.data.datasets[element.datasetIndex].data[element.index],\r\n };\r\n });\r\n\r\n this.chartClick.emit({ event, chart, overlappingElements });\r\n }\r\n }\r\n}\r\n","@if(compLib === componentLibrary.PRIMENG) {\r\n<p-chart\r\n [type]=\"type\"\r\n [data]=\"data\"\r\n [options]=\"options\"\r\n (onDataSelect)=\"onDataSelect($event)\"\r\n (click)=\"handleChartClick($event)\"\r\n (click)=\"handleOnDataClicked($event)\"\r\n/>\r\n} @else {\r\n<p>Only PrimeNg component library is supported</p>\r\n}\r\n","import { ModuleWithProviders, NgModule, Provider } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { ChartModule } from 'primeng/chart';\r\nimport {\r\n barChart,\r\n bubbleChart,\r\n CUSTOM_CHART_OPTIONS,\r\n DefaultChartOptionsProvider,\r\n doughnutChart,\r\n horizontalBarChart,\r\n multiAxisLineChart,\r\n pieChart,\r\n polarAreaChart,\r\n radarChart,\r\n scatterChart,\r\n stackedBarChart,\r\n} from './default-chart-options.provider';\r\nimport { SmartChartComponent } from './smart-chart.component';\r\n\r\nconst DEFAULT_PROVIDERS: Provider[] = [\r\n DefaultChartOptionsProvider,\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: barChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: scatterChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: bubbleChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: horizontalBarChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: stackedBarChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: multiAxisLineChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: polarAreaChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: radarChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: doughnutChart, multi: true },\r\n { provide: CUSTOM_CHART_OPTIONS, useValue: pieChart, multi: true },\r\n];\r\n\r\n@NgModule({\r\n declarations: [SmartChartComponent],\r\n imports: [BrowserModule, ChartModule],\r\n exports: [SmartChartComponent],\r\n})\r\nexport class SmartChartModule {\r\n static forRoot(providers: Provider[]): ModuleWithProviders<SmartChartModule> {\r\n return {\r\n ngModule: SmartChartModule,\r\n providers: [...DEFAULT_PROVIDERS, ...providers],\r\n };\r\n }\r\n}\r\n","/**\r\n * Chart API\r\n * API for consume charts.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport type ChartOrientation = 'Horizontal' | 'Vertical';\r\n\r\nexport const ChartOrientation = {\r\n Horizontal: 'Horizontal' as ChartOrientation,\r\n Vertical: 'Vertical' as ChartOrientation\r\n};\r\n\r\n","/**\r\n * Chart API\r\n * API for consume charts.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport type ChartType = 'BarChart' | 'GroupedBarChart' | 'StackedBarChart' | 'NormalizedBarChart' | 'PieChart' | 'AdvancedPieChart' | 'PieGrid';\r\n\r\nexport const ChartType = {\r\n BarChart: 'BarChart' as ChartType,\r\n GroupedBarChart: 'GroupedBarChart' as ChartType,\r\n StackedBarChart: 'StackedBarChart' as ChartType,\r\n NormalizedBarChart: 'NormalizedBarChart' as ChartType,\r\n PieChart: 'PieChart' as ChartType,\r\n AdvancedPieChart: 'AdvancedPieChart' as ChartType,\r\n PieGrid: 'PieGrid' as ChartType\r\n};\r\n\r\n","/**\r\n * Chart API\r\n * API for consume charts.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport interface ChartValue { \r\n name: string;\r\n value?: object;\r\n series: Array<ChartValue>;\r\n}\r\n\r\n","/**\r\n * Chart API\r\n * API for consume charts.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\n/**\r\n * Contains an items data, based on the type of the diagram.\r\n */\r\nexport interface DiagramDataItem { \r\n uri?: string;\r\n label?: string;\r\n xValue?: number;\r\n yValue?: number;\r\n /**\r\n * This property specifies the radius of each bubble in a bubble chart. It is used to determine the size of the bubbles relative to their data values.\r\n */\r\n rValue?: number;\r\n itemColor?: string;\r\n}\r\n\r\n","/**\r\n * Chart API\r\n * API for consume charts.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport interface DiagramDataSetConstructionInstruction { \r\n xValuePath?: Array<string>;\r\n yValuePath?: Array<string>;\r\n rValuePath?: Array<string>;\r\n labelValuePath?: Array<string>;\r\n colorValuePath?: Array<string>;\r\n loadLatest?: boolean;\r\n dataSetLabel?: string;\r\n dataSetType?: string;\r\n}\r\n\r\n","/**\r\n * Chart API\r\n * API for consume charts.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\n/**\r\n * A descriptor for the diagram.\r\n */\r\nexport interface DiagramDescriptor { \r\n uri?: string;\r\n /**\r\n * The type of the diagram.\r\n */\r\n diagramType?: string;\r\n /**\r\n * Specifies the starting point for rendering the chart\\'s X-axis. For example, if the minimum X value in the dataset is -30 and this property is set to -35, an extra \\\"padding\\\" of 5 units will be added below the lowest data point.\r\n */\r\n diagramMinX?: number;\r\n /**\r\n * Specifies the ending point for rendering the chart\\'s X-axis. For instance, if the maximum X value in the dataset is 30 and this property is set to 35, an additional \\\"padding\\\" of 5 units will be added above the highest data point.\r\n */\r\n diagramMaxX?: number;\r\n /**\r\n * Specifies the starting point for rendering the chart\\'s Y-axis. For example, if the minimum Y value in the dataset is -30 and this property is set to -35, an extra \\\"padding\\\" of 5 units will be added below the lowest data point.\r\n */\r\n diagramMinY?: number;\r\n /**\r\n * Specifies the ending point for rendering the chart\\'s Y-axis. For instance, if the maximum Y value in the dataset is 30 and this property is set to 35, an additional \\\"padding\\\" of 5 units will be added above the highest data point.\r\n */\r\n diagramMaxY?: number;\r\n /**\r\n * Determines whether the labels on the X-Axis are displayed on the chart. Set to `true` to show the labels, or `false` to hide them.\r\n */\r\n showLabelsForXAxis?: boolean;\r\n /**\r\n * Determines whether the labels on the Y-Axis are displayed on the chart. Set to `true` to show the labels, or `false` to hide them.\r\n */\r\n showLabelsForYAxis?: boolean;\r\n /**\r\n * Determines whether the legend for the chart is displayed. Set to `true` to show the legend, or `false` to hide it.\r\n */\r\n showLegendForChart?: boolean;\r\n}\r\n\r\n","/**\r\n * Chart API\r\n * API for consume charts.\r\n *\r\n * The version of the OpenAPI document: 1.0.0\r\n * Contact: info@it4all.hu\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport type PieChartLegendPosition = 'right' | 'below';\r\n\r\nexport const PieChartLegendPosition = {\r\n Right: 'right' as PieChartLegendPosition,\r\n Below: 'below' as PieChartLegendPosition\r\n};\r\n\r\n","/*\r\n * Public API Surface of smart-chart\r\n */\r\n\r\nexport * from './smart-chart/smart-chart.module';\r\nexport * from './smart-chart/smart-chart.component';\r\nexport * from './smart-chart/api/model/models';\r\nexport * from './smart-chart/default-chart-options.provider';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './smart-chart-projects';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smartbit4all/ng-client",
3
- "version": "4.2.13",
3
+ "version": "4.2.15",
4
4
  "peerDependencies": {
5
5
  "@angular/animations": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0",
6
6
  "@angular/common": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0",
@@ -13,6 +13,7 @@
13
13
  * Contains an items data, based on the type of the diagram.
14
14
  */
15
15
  export interface DiagramDataItem {
16
+ uri?: string;
16
17
  label?: string;
17
18
  xValue?: number;
18
19
  yValue?: number;
@@ -17,5 +17,6 @@ export interface DiagramDataSet {
17
17
  dataSetType?: string;
18
18
  label?: string;
19
19
  dataSetcolor?: string;
20
+ pointStyle?: string;
20
21
  items: Array<DiagramDataItem>;
21
22
  }
@@ -1,11 +1,15 @@
1
- import { DefaultChartOptionsProvider } from './default-chart-options.provider';
2
- import { DiagramUiModel } from './api';
3
- import { ComponentLibrary } from '../view-context/utility/componentLibrary';
1
+ import { EventEmitter } from "@angular/core";
2
+ import { DefaultChartOptionsProvider } from "./default-chart-options.provider";
3
+ import { DiagramUiModel } from "./api";
4
+ import { ComponentLibrary } from "../view-context/utility/componentLibrary";
4
5
  import * as i0 from "@angular/core";
5
6
  export declare class SmartChartComponent {
6
7
  private chartOptionProvider;
7
8
  diagramUiModel: DiagramUiModel;
8
9
  options?: any;
10
+ dataSelect: EventEmitter<any>;
11
+ chartClick: EventEmitter<any>;
12
+ onDataClicked: EventEmitter<any>;
9
13
  data: any;
10
14
  type: any;
11
15
  compLib: ComponentLibrary;
@@ -14,6 +18,9 @@ export declare class SmartChartComponent {
14
18
  ngOnInit(): void;
15
19
  private deepMerge;
16
20
  private convertBackendOptions;
21
+ onDataSelect(event: any): void;
22
+ handleChartClick(event: any): void;
23
+ handleOnDataClicked(event: any): void;
17
24
  static ɵfac: i0.ɵɵFactoryDeclaration<SmartChartComponent, [null, { optional: true; }]>;
18
- static ɵcmp: i0.ɵɵComponentDeclaration<SmartChartComponent, "smart-chart", never, { "diagramUiModel": { "alias": "diagramUiModel"; "required": false; }; "options": { "alias": "options"; "required": false; }; }, {}, never, never, false, never>;
25
+ static ɵcmp: i0.ɵɵComponentDeclaration<SmartChartComponent, "smart-chart", never, { "diagramUiModel": { "alias": "diagramUiModel"; "required": false; }; "options": { "alias": "options"; "required": false; }; }, { "dataSelect": "dataSelect"; "chartClick": "chartClick"; "onDataClicked": "onDataClicked"; }, never, never, false, never>;
19
26
  }
Binary file