@eqproject/eqp-dynamic-module 2.4.12 → 2.4.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/private/field-templates/image-field-selector-template/image-field-selector-template.component.mjs +4 -2
- package/esm2020/lib/components/private/graphs/graph/graph.component.mjs +103 -44
- package/fesm2015/eqproject-eqp-dynamic-module.mjs +104 -44
- package/fesm2015/eqproject-eqp-dynamic-module.mjs.map +1 -1
- package/fesm2020/eqproject-eqp-dynamic-module.mjs +104 -44
- package/fesm2020/eqproject-eqp-dynamic-module.mjs.map +1 -1
- package/lib/components/private/graphs/graph/graph.component.d.ts +8 -0
- package/package.json +2 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
2
|
import { UtilityHelperService } from '../../../../services/utilityHelper.services';
|
|
3
3
|
import { DynAttachmentSelectObject } from '../../../../models/dynAttachment';
|
|
4
|
+
import { GlobalService } from '../../../../services/global.service';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
import * as i1 from "@angular/material/dialog";
|
|
6
7
|
import * as i2 from "../../../../services/utilityHelper.services";
|
|
@@ -16,7 +17,8 @@ export class ImageFieldSelectorTemplateComponent {
|
|
|
16
17
|
this.recordChange = new EventEmitter();
|
|
17
18
|
}
|
|
18
19
|
ngOnInit() {
|
|
19
|
-
|
|
20
|
+
GlobalService.debugLog("ImageFieldSelectorTemplateComponent - RECORD ngOnInit() - record", this.record[this.field.Name]);
|
|
21
|
+
GlobalService.debugLog("ImageFieldSelectorTemplateComponent - RECORD ngOnInit() - field", this.field);
|
|
20
22
|
this.initStyles();
|
|
21
23
|
this.initializeAttachments();
|
|
22
24
|
}
|
|
@@ -92,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
92
94
|
}], recordChange: [{
|
|
93
95
|
type: Output
|
|
94
96
|
}] } });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZmllbGQtc2VsZWN0b3ItdGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9wcml2YXRlL2ZpZWxkLXRlbXBsYXRlcy9pbWFnZS1maWVsZC1zZWxlY3Rvci10ZW1wbGF0ZS9pbWFnZS1maWVsZC1zZWxlY3Rvci10ZW1wbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2ltYWdlLWZpZWxkLXNlbGVjdG9yLXRlbXBsYXRlL2ltYWdlLWZpZWxkLXNlbGVjdG9yLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBSXRGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ25GLE9BQU8sRUFBaUIseUJBQXlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7O0FBTzVGLE1BQU0sT0FBTyxtQ0FBbUM7SUFVOUMsWUFDVSxNQUFpQixFQUNsQixjQUFvQztRQURuQyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2xCLG1CQUFjLEdBQWQsY0FBYyxDQUFzQjtRQVJuQyxpQkFBWSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO0lBU3RFLENBQUM7SUFFTCxRQUFRO1FBRU4sT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxDQUFDLEtBQUss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TUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3JlY29yZC5tb2RlbCc7XHJcbmltcG9ydCB7IEltYWdlU2VsZWN0b3JGaWVsZCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9maWVsZHMvaW1hZ2VTZWxlY3RvckZpZWxkLm1vZGVsJztcclxuaW1wb3J0IHsgVXRpbGl0eUhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy91dGlsaXR5SGVscGVyLnNlcnZpY2VzJztcclxuaW1wb3J0IHsgRHluQXR0YWNobWVudCwgRHluQXR0YWNobWVudFNlbGVjdE9iamVjdCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9keW5BdHRhY2htZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaW1hZ2UtZmllbGQtc2VsZWN0b3ItdGVtcGxhdGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1maWVsZC1zZWxlY3Rvci10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW1hZ2UtZmllbGQtc2VsZWN0b3ItdGVtcGxhdGUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW1hZ2VGaWVsZFNlbGVjdG9yVGVtcGxhdGVDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKSByZWNvcmQ6IFJlY29yZDtcclxuICBASW5wdXQoKSBmaWVsZDogSW1hZ2VTZWxlY3RvckZpZWxkO1xyXG4gIEBPdXRwdXQoKSByZWNvcmRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxSZWNvcmQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNvcmQ+KCk7XHJcblxyXG4gIEZpZWxkc3R5bGVPYmo6IGFueTtcclxuICBMYWJlbHN0eWxlT2JqOiBhbnk7XHJcbiAgdHJhbnNmb3JtZWRSZWNvcmQ6IGFueTtcclxuIFxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eUhlbHBlclNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhcIlJFQ09SRCBuZ09uSW5pdCgpXCIsIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0sdGhpcy5maWVsZCk7XHJcblxyXG4gICAgdGhpcy5pbml0U3R5bGVzKCk7XHJcbiAgICB0aGlzLmluaXRpYWxpemVBdHRhY2htZW50cygpO1xyXG4gICAgXHJcbiAgfVxyXG5cclxuICBpbml0U3R5bGVzKCkge1xyXG4gICAgLy9GdW56aW9uZSBwZXIgcGFyc2FyZSBpbCBjYW1wbyBzdHlsZWNzcyBkZWxsJ29nZ2V0dG8gZmllbGQgZWQgYXBwbGljYXJsbyBhbGwnaHRtbFxyXG4gIGlmKHRoaXMuZmllbGQuRmllbGRzdHlsZUNTUyAhPSBudWxsIHx8IHRoaXMuZmllbGQuRmllbGRzdHlsZUNTUyAhPSB1bmRlZmluZWQpICAgXHJcbiAgICB0aGlzLkZpZWxkc3R5bGVPYmo9IFV0aWxpdHlIZWxwZXJTZXJ2aWNlLmluaXRTdHlsZXModGhpcy5maWVsZC5GaWVsZHN0eWxlQ1NTKTtcclxuICBpZih0aGlzLmZpZWxkLkZpZWxkc3R5bGVDU1MgIT0gbnVsbCB8fCB0aGlzLmZpZWxkLkZpZWxkc3R5bGVDU1MgIT0gdW5kZWZpbmVkKSAgIFxyXG4gICAgdGhpcy5MYWJlbHN0eWxlT2JqID0gVXRpbGl0eUhlbHBlclNlcnZpY2UuaW5pdFN0eWxlcyh0aGlzLmZpZWxkLkxhYmVsc3R5bGVDU1MpO1xyXG59ICBcclxuXHJcbiAgVG9Mb3dlckNhc2UoZWw6c3RyaW5nKXtcclxuICAgIHJldHVybiBlbC50b0xvd2VyQ2FzZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgLy8gU2UgdmllbmUgbW9kaWZpY2F0byBpbCB2YWxvcmUgZGkgXCJuZ01vZGVsSW5wdXRcIiBhbGxvcmEgYWdnaW9ybmEgbCdpbnB1dFxyXG4gICAgaWYgKGNoYW5nZXNbJ3JlY29yZCddICE9IHVuZGVmaW5lZCAmJiBjaGFuZ2VzWydyZWNvcmQnXS5maXJzdENoYW5nZSA9PSBmYWxzZSAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzWydyZWNvcmQnXS5jdXJyZW50VmFsdWUpICE9IEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ3JlY29yZCddLnByZXZpb3VzVmFsdWUpKSB7XHJcbiAgICAgIHRoaXMucmVjb3JkID0gY2hhbmdlc1sncmVjb3JkJ10uY3VycmVudFZhbHVlO1xyXG4gICAgICB0aGlzLnVwZGF0ZUZpZWxkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIGFnZ2lvcm5hcmUgaWwgdmFsb3JlIGRlbCBjYW1wbyBxdWFuZG8gcXVlc3RvIMOoIHJhcHByZXNlbnRhdG8gZGEgdW5hIGZvcm11bGEuXHJcbiAgICovXHJcbiAgdXBkYXRlRmllbGQoKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZUF0dGFjaG1lbnRzKCl7XHJcbiAgICB0aGlzLmZpZWxkLkF0dGFjaG1lbnRMaXN0LmZvckVhY2goKGF0dGFjaG1lbnQpID0+IHtcclxuICAgICAgYXR0YWNobWVudC5vYmplY3RUb1NlbGVjdCA9IG5ldyBEeW5BdHRhY2htZW50U2VsZWN0T2JqZWN0KCk7XHJcbiAgICAgIGF0dGFjaG1lbnQub2JqZWN0VG9TZWxlY3QuSUQgPSBhdHRhY2htZW50LklEO1xyXG4gICAgICBhdHRhY2htZW50Lm9iamVjdFRvU2VsZWN0LkJ1dHRvbktleSA9IGF0dGFjaG1lbnQuQnV0dG9uS2V5O1xyXG4gICAgICBhdHRhY2htZW50Lm9iamVjdFRvU2VsZWN0LkJ1dHRvblZhbHVlID0gYXR0YWNobWVudC5CdXR0b25WYWx1ZTtcclxuICAgIH0pO1xyXG5cclxuICAgIGlmICh0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdICE9IG51bGwpe1xyXG4gICAgICBpZiAoIXRoaXMuZmllbGQuSXNNdWx0aUNob2ljaGUpe1xyXG4gICAgICAgIHRoaXMudHJhbnNmb3JtZWRSZWNvcmQgPSB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdLklEO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgICh0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdIGFzIEFycmF5PER5bkF0dGFjaG1lbnQ+KS5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRyYW5zZm9ybWVkUmVjb3JkLnB1c2goTnVtYmVyKGVsZW1lbnQuSUQpKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgICAvKipcclxuICAgKiBNZXRvZG8gcGVyIGVtZXR0ZXJlIGwnZXZlbnRvIGNoZSBpbCB2YWxvcmUgZGVsIHJlY29yZCDDqCBjYW1iaWF0by5cclxuICAgKi9cclxuICAgIG9uUmVjb3JkVmFsdWVDaGFuZ2UoZXZlbnQ6IG51bWJlcikge1xyXG5cclxuICAgICAgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSA9IG5ldyBBcnJheTxEeW5BdHRhY2htZW50PigpO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLmZpZWxkLklzTXVsdGlDaG9pY2hlKXtcclxuXHJcbiAgICAgICAgdmFyIGR5bkF0dGFjaG1lbnQ6IER5bkF0dGFjaG1lbnQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZmllbGQuQXR0YWNobWVudExpc3QuZmluZCh4ID0+IHguSUQgPT0gZXZlbnQpKSk7XHJcbiAgICAgICAgZHluQXR0YWNobWVudC5GaWxlRGF0YUJhc2U2NCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSA9IGR5bkF0dGFjaG1lbnQ7XHJcblxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudHJhbnNmb3JtZWRSZWNvcmQuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgICAgdmFyIGR5bkF0dGFjaG1lbnQ6IER5bkF0dGFjaG1lbnQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZmllbGQuQXR0YWNobWVudExpc3QuZmluZCh4ID0+IHguSUQgPT0gZWxlbWVudCkpKTtcclxuICAgICAgICAgIGR5bkF0dGFjaG1lbnQuRmlsZURhdGFCYXNlNjQgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXS5wdXNoKGR5bkF0dGFjaG1lbnQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnJlY29yZENoYW5nZS5lbWl0KHRoaXMucmVjb3JkKTtcclxuICAgIH1cclxufVxyXG4iLCI8bWF0LWZvcm0tZmllbGQgW2Zvcm1Hcm91cF09XCJmaWVsZC5Gb3JtRm9ybUdyb3VwXCI+XHJcbiAgPG1hdC1sYWJlbCBjbGFzcz1cInB0LTEgcHMtM1wiIFtuZ1N0eWxlXT1cIkxhYmVsc3R5bGVPYmpcIj57e2ZpZWxkLkRlc2NyaXB0aW9ufX08L21hdC1sYWJlbD5cclxuXHJcbiAgPCEtLSBNYXQtU2VsZWN0IFNJTkdPTEEgLS0+XHJcbiAgPG1hdC1zZWxlY3QgKm5nSWY9XCIhZmllbGQuSXNNdWx0aUNob2ljaGVcIiBjbGFzcz1cImltYWdlRmllbGRTZWxlY3RvckltYWdlc1wiIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQuTmFtZVwiXHJcbiAgW3JlcXVpcmVkXT1cImZpZWxkLlJlcXVpcmVkXCIgWyhuZ01vZGVsKV09XCJ0cmFuc2Zvcm1lZFJlY29yZFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uUmVjb3JkVmFsdWVDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGF0dGFjaG1lbnQgb2YgZmllbGQuQXR0YWNobWVudExpc3RcIiBbdmFsdWVdPVwiYXR0YWNobWVudC5JRFwiPlxyXG4gICAgICA8aW1nIHNyYz0nZGF0YTppbWFnZS97e1RvTG93ZXJDYXNlKGF0dGFjaG1lbnQuRmlsZUV4dGVuc2lvbil9fTtiYXNlNjQse3thdHRhY2htZW50LkZpbGVEYXRhQmFzZTY0fX0nIFtoZWlnaHRdPVwiYXR0YWNobWVudC5SZXNpemVkSW1hZ2VIZWlnaHRQeCAhPSBudWxsID8gYXR0YWNobWVudC5SZXNpemVkSW1hZ2VIZWlnaHRQeCA6IDEyOFwiPiBcclxuICAgICAgPHNwYW4+e3sgYXR0YWNobWVudC5CdXR0b25LZXkgfX08L3NwYW4+XHJcbiAgICA8L21hdC1vcHRpb24+XHJcbiAgPC9tYXQtc2VsZWN0PlxyXG5cclxuICA8IS0tIE1hdC1TZWxlY3QgTVVMVElQTEEgLS0+XHJcbiAgPG1hdC1zZWxlY3QgKm5nSWY9XCJmaWVsZC5Jc011bHRpQ2hvaWNoZVwiIGNsYXNzPVwiaW1hZ2VGaWVsZFNlbGVjdG9ySW1hZ2VzXCIgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5OYW1lXCJcclxuICBbcmVxdWlyZWRdPVwiZmllbGQuUmVxdWlyZWRcIiBbKG5nTW9kZWwpXT1cInRyYW5zZm9ybWVkUmVjb3JkXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25SZWNvcmRWYWx1ZUNoYW5nZSgkZXZlbnQpXCIgbXVsdGlwbGU+XHJcbiAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgYXR0YWNobWVudCBvZiBmaWVsZC5BdHRhY2htZW50TGlzdFwiIFt2YWx1ZV09XCJhdHRhY2htZW50LklEXCI+XHJcbiAgICAgIDxpbWcgc3JjPSdkYXRhOmltYWdlL3t7VG9Mb3dlckNhc2UoYXR0YWNobWVudC5GaWxlRXh0ZW5zaW9uKX19O2Jhc2U2NCx7e2F0dGFjaG1lbnQuRmlsZURhdGFCYXNlNjR9fScgW2hlaWdodF09XCJhdHRhY2htZW50LlJlc2l6ZWRJbWFnZUhlaWdodFB4ICE9IG51bGwgPyBhdHRhY2htZW50LlJlc2l6ZWRJbWFnZUhlaWdodFB4IDogMTI4XCI+IFxyXG4gICAgICA8c3Bhbj57eyBhdHRhY2htZW50LkJ1dHRvbktleSB9fTwvc3Bhbj5cclxuICAgIDwvbWF0LW9wdGlvbj5cclxuICA8L21hdC1zZWxlY3Q+XHJcblxyXG48L21hdC1mb3JtLWZpZWxkPiJdfQ==
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZmllbGQtc2VsZWN0b3ItdGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9wcml2YXRlL2ZpZWxkLXRlbXBsYXRlcy9pbWFnZS1maWVsZC1zZWxlY3Rvci10ZW1wbGF0ZS9pbWFnZS1maWVsZC1zZWxlY3Rvci10ZW1wbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2ltYWdlLWZpZWxkLXNlbGVjdG9yLXRlbXBsYXRlL2ltYWdlLWZpZWxkLXNlbGVjdG9yLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBSXRGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ25GLE9BQU8sRUFBaUIseUJBQXlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7OztBQU9wRSxNQUFNLE9BQU8sbUNBQW1DO0lBVTlDLFlBQ1UsTUFBaUIsRUFDbEIsY0FBb0M7UUFEbkMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNsQixtQkFBYyxHQUFkLGNBQWMsQ0FBc0I7UUFSbkMsaUJBQVksR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQVN0RSxDQUFDO0lBRUwsUUFBUTtRQUVOLGFBQWEsQ0FBQyxRQUFRLENBQUMsa0VBQWtFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENB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QUwvQyxTQUFTOytCQUNFLCtCQUErQjttSUFNaEMsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvcmVjb3JkLm1vZGVsJztcclxuaW1wb3J0IHsgSW1hZ2VTZWxlY3RvckZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2ZpZWxkcy9pbWFnZVNlbGVjdG9yRmllbGQubW9kZWwnO1xyXG5pbXBvcnQgeyBVdGlsaXR5SGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxpdHlIZWxwZXIuc2VydmljZXMnO1xyXG5pbXBvcnQgeyBEeW5BdHRhY2htZW50LCBEeW5BdHRhY2htZW50U2VsZWN0T2JqZWN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2R5bkF0dGFjaG1lbnQnO1xyXG5pbXBvcnQgeyBHbG9iYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvZ2xvYmFsLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpbWFnZS1maWVsZC1zZWxlY3Rvci10ZW1wbGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWZpZWxkLXNlbGVjdG9yLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbWFnZS1maWVsZC1zZWxlY3Rvci10ZW1wbGF0ZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbWFnZUZpZWxkU2VsZWN0b3JUZW1wbGF0ZUNvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIHJlY29yZDogUmVjb3JkO1xyXG4gIEBJbnB1dCgpIGZpZWxkOiBJbWFnZVNlbGVjdG9yRmllbGQ7XHJcbiAgQE91dHB1dCgpIHJlY29yZENoYW5nZTogRXZlbnRFbWl0dGVyPFJlY29yZD4gPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZD4oKTtcclxuXHJcbiAgRmllbGRzdHlsZU9iajogYW55O1xyXG4gIExhYmVsc3R5bGVPYmo6IGFueTtcclxuICB0cmFuc2Zvcm1lZFJlY29yZDogYW55O1xyXG4gXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHVibGljIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5SGVscGVyU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgIEdsb2JhbFNlcnZpY2UuZGVidWdMb2coXCJJbWFnZUZpZWxkU2VsZWN0b3JUZW1wbGF0ZUNvbXBvbmVudCAtIFJFQ09SRCBuZ09uSW5pdCgpIC0gcmVjb3JkXCIsIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0pO1xyXG4gICAgR2xvYmFsU2VydmljZS5kZWJ1Z0xvZyhcIkltYWdlRmllbGRTZWxlY3RvclRlbXBsYXRlQ29tcG9uZW50IC0gUkVDT1JEIG5nT25Jbml0KCkgLSBmaWVsZFwiLCB0aGlzLmZpZWxkKTtcclxuXHJcbiAgICB0aGlzLmluaXRTdHlsZXMoKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZUF0dGFjaG1lbnRzKCk7XHJcbiAgICBcclxuICB9XHJcblxyXG4gIGluaXRTdHlsZXMoKSB7XHJcbiAgICAvL0Z1bnppb25lIHBlciBwYXJzYXJlIGlsIGNhbXBvIHN0eWxlY3NzIGRlbGwnb2dnZXR0byBmaWVsZCBlZCBhcHBsaWNhcmxvIGFsbCdodG1sXHJcbiAgaWYodGhpcy5maWVsZC5GaWVsZHN0eWxlQ1NTICE9IG51bGwgfHwgdGhpcy5maWVsZC5GaWVsZHN0eWxlQ1NTICE9IHVuZGVmaW5lZCkgICBcclxuICAgIHRoaXMuRmllbGRzdHlsZU9iaj0gVXRpbGl0eUhlbHBlclNlcnZpY2UuaW5pdFN0eWxlcyh0aGlzLmZpZWxkLkZpZWxkc3R5bGVDU1MpO1xyXG4gIGlmKHRoaXMuZmllbGQuRmllbGRzdHlsZUNTUyAhPSBudWxsIHx8IHRoaXMuZmllbGQuRmllbGRzdHlsZUNTUyAhPSB1bmRlZmluZWQpICAgXHJcbiAgICB0aGlzLkxhYmVsc3R5bGVPYmogPSBVdGlsaXR5SGVscGVyU2VydmljZS5pbml0U3R5bGVzKHRoaXMuZmllbGQuTGFiZWxzdHlsZUNTUyk7XHJcbn0gIFxyXG5cclxuICBUb0xvd2VyQ2FzZShlbDpzdHJpbmcpe1xyXG4gICAgcmV0dXJuIGVsLnRvTG93ZXJDYXNlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAvLyBTZSB2aWVuZSBtb2RpZmljYXRvIGlsIHZhbG9yZSBkaSBcIm5nTW9kZWxJbnB1dFwiIGFsbG9yYSBhZ2dpb3JuYSBsJ2lucHV0XHJcbiAgICBpZiAoY2hhbmdlc1sncmVjb3JkJ10gIT0gdW5kZWZpbmVkICYmIGNoYW5nZXNbJ3JlY29yZCddLmZpcnN0Q2hhbmdlID09IGZhbHNlICYmIEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ3JlY29yZCddLmN1cnJlbnRWYWx1ZSkgIT0gSlNPTi5zdHJpbmdpZnkoY2hhbmdlc1sncmVjb3JkJ10ucHJldmlvdXNWYWx1ZSkpIHtcclxuICAgICAgdGhpcy5yZWNvcmQgPSBjaGFuZ2VzWydyZWNvcmQnXS5jdXJyZW50VmFsdWU7XHJcbiAgICAgIHRoaXMudXBkYXRlRmllbGQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgYWdnaW9ybmFyZSBpbCB2YWxvcmUgZGVsIGNhbXBvIHF1YW5kbyBxdWVzdG8gw6ggcmFwcHJlc2VudGF0byBkYSB1bmEgZm9ybXVsYS5cclxuICAgKi9cclxuICB1cGRhdGVGaWVsZCgpIHtcclxuXHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplQXR0YWNobWVudHMoKXtcclxuICAgIHRoaXMuZmllbGQuQXR0YWNobWVudExpc3QuZm9yRWFjaCgoYXR0YWNobWVudCkgPT4ge1xyXG4gICAgICBhdHRhY2htZW50Lm9iamVjdFRvU2VsZWN0ID0gbmV3IER5bkF0dGFjaG1lbnRTZWxlY3RPYmplY3QoKTtcclxuICAgICAgYXR0YWNobWVudC5vYmplY3RUb1NlbGVjdC5JRCA9IGF0dGFjaG1lbnQuSUQ7XHJcbiAgICAgIGF0dGFjaG1lbnQub2JqZWN0VG9TZWxlY3QuQnV0dG9uS2V5ID0gYXR0YWNobWVudC5CdXR0b25LZXk7XHJcbiAgICAgIGF0dGFjaG1lbnQub2JqZWN0VG9TZWxlY3QuQnV0dG9uVmFsdWUgPSBhdHRhY2htZW50LkJ1dHRvblZhbHVlO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0gIT0gbnVsbCl7XHJcbiAgICAgIGlmICghdGhpcy5maWVsZC5Jc011bHRpQ2hvaWNoZSl7XHJcbiAgICAgICAgdGhpcy50cmFuc2Zvcm1lZFJlY29yZCA9IHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0uSUQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgKHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0gYXMgQXJyYXk8RHluQXR0YWNobWVudD4pLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICAgIHRoaXMudHJhbnNmb3JtZWRSZWNvcmQucHVzaChOdW1iZXIoZWxlbWVudC5JRCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgZW1ldHRlcmUgbCdldmVudG8gY2hlIGlsIHZhbG9yZSBkZWwgcmVjb3JkIMOoIGNhbWJpYXRvLlxyXG4gICAqL1xyXG4gICAgb25SZWNvcmRWYWx1ZUNoYW5nZShldmVudDogbnVtYmVyKSB7XHJcblxyXG4gICAgICB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdID0gbmV3IEFycmF5PER5bkF0dGFjaG1lbnQ+KCk7XHJcblxyXG4gICAgICBpZiAoIXRoaXMuZmllbGQuSXNNdWx0aUNob2ljaGUpe1xyXG5cclxuICAgICAgICB2YXIgZHluQXR0YWNobWVudDogRHluQXR0YWNobWVudCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5maWVsZC5BdHRhY2htZW50TGlzdC5maW5kKHggPT4geC5JRCA9PSBldmVudCkpKTtcclxuICAgICAgICBkeW5BdHRhY2htZW50LkZpbGVEYXRhQmFzZTY0ID0gbnVsbDtcclxuICAgICAgICB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdID0gZHluQXR0YWNobWVudDtcclxuXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy50cmFuc2Zvcm1lZFJlY29yZC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICB2YXIgZHluQXR0YWNobWVudDogRHluQXR0YWNobWVudCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5maWVsZC5BdHRhY2htZW50TGlzdC5maW5kKHggPT4geC5JRCA9PSBlbGVtZW50KSkpO1xyXG4gICAgICAgICAgZHluQXR0YWNobWVudC5GaWxlRGF0YUJhc2U2NCA9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdLnB1c2goZHluQXR0YWNobWVudCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMucmVjb3JkQ2hhbmdlLmVtaXQodGhpcy5yZWNvcmQpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxtYXQtZm9ybS1maWVsZCBbZm9ybUdyb3VwXT1cImZpZWxkLkZvcm1Gb3JtR3JvdXBcIj5cclxuICA8bWF0LWxhYmVsIGNsYXNzPVwicHQtMSBwcy0zXCIgW25nU3R5bGVdPVwiTGFiZWxzdHlsZU9ialwiPnt7ZmllbGQuRGVzY3JpcHRpb259fTwvbWF0LWxhYmVsPlxyXG5cclxuICA8IS0tIE1hdC1TZWxlY3QgU0lOR09MQSAtLT5cclxuICA8bWF0LXNlbGVjdCAqbmdJZj1cIiFmaWVsZC5Jc011bHRpQ2hvaWNoZVwiIGNsYXNzPVwiaW1hZ2VGaWVsZFNlbGVjdG9ySW1hZ2VzXCIgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5OYW1lXCJcclxuICBbcmVxdWlyZWRdPVwiZmllbGQuUmVxdWlyZWRcIiBbKG5nTW9kZWwpXT1cInRyYW5zZm9ybWVkUmVjb3JkXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25SZWNvcmRWYWx1ZUNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgYXR0YWNobWVudCBvZiBmaWVsZC5BdHRhY2htZW50TGlzdFwiIFt2YWx1ZV09XCJhdHRhY2htZW50LklEXCI+XHJcbiAgICAgIDxpbWcgc3JjPSdkYXRhOmltYWdlL3t7VG9Mb3dlckNhc2UoYXR0YWNobWVudC5GaWxlRXh0ZW5zaW9uKX19O2Jhc2U2NCx7e2F0dGFjaG1lbnQuRmlsZURhdGFCYXNlNjR9fScgW2hlaWdodF09XCJhdHRhY2htZW50LlJlc2l6ZWRJbWFnZUhlaWdodFB4ICE9IG51bGwgPyBhdHRhY2htZW50LlJlc2l6ZWRJbWFnZUhlaWdodFB4IDogMTI4XCI+IFxyXG4gICAgICA8c3Bhbj57eyBhdHRhY2htZW50LkJ1dHRvbktleSB9fTwvc3Bhbj5cclxuICAgIDwvbWF0LW9wdGlvbj5cclxuICA8L21hdC1zZWxlY3Q+XHJcblxyXG4gIDwhLS0gTWF0LVNlbGVjdCBNVUxUSVBMQSAtLT5cclxuICA8bWF0LXNlbGVjdCAqbmdJZj1cImZpZWxkLklzTXVsdGlDaG9pY2hlXCIgY2xhc3M9XCJpbWFnZUZpZWxkU2VsZWN0b3JJbWFnZXNcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLk5hbWVcIlxyXG4gIFtyZXF1aXJlZF09XCJmaWVsZC5SZXF1aXJlZFwiIFsobmdNb2RlbCldPVwidHJhbnNmb3JtZWRSZWNvcmRcIiAobmdNb2RlbENoYW5nZSk9XCJvblJlY29yZFZhbHVlQ2hhbmdlKCRldmVudClcIiBtdWx0aXBsZT5cclxuICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBhdHRhY2htZW50IG9mIGZpZWxkLkF0dGFjaG1lbnRMaXN0XCIgW3ZhbHVlXT1cImF0dGFjaG1lbnQuSURcIj5cclxuICAgICAgPGltZyBzcmM9J2RhdGE6aW1hZ2Uve3tUb0xvd2VyQ2FzZShhdHRhY2htZW50LkZpbGVFeHRlbnNpb24pfX07YmFzZTY0LHt7YXR0YWNobWVudC5GaWxlRGF0YUJhc2U2NH19JyBbaGVpZ2h0XT1cImF0dGFjaG1lbnQuUmVzaXplZEltYWdlSGVpZ2h0UHggIT0gbnVsbCA/IGF0dGFjaG1lbnQuUmVzaXplZEltYWdlSGVpZ2h0UHggOiAxMjhcIj4gXHJcbiAgICAgIDxzcGFuPnt7IGF0dGFjaG1lbnQuQnV0dG9uS2V5IH19PC9zcGFuPlxyXG4gICAgPC9tYXQtb3B0aW9uPlxyXG4gIDwvbWF0LXNlbGVjdD5cclxuXHJcbjwvbWF0LWZvcm0tZmllbGQ+Il19
|
|
@@ -1,12 +1,19 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
1
|
+
import { Component, HostListener, Input } from '@angular/core';
|
|
2
|
+
import * as ss from 'simple-statistics';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
import * as i1 from "@angular/common";
|
|
4
5
|
import * as i2 from "@canvasjs/angular-stockcharts";
|
|
5
6
|
export class GraphComponent {
|
|
7
|
+
onResize() {
|
|
8
|
+
this.loaded = false;
|
|
9
|
+
this.loadGraph(Math.floor(window.innerWidth / 2));
|
|
10
|
+
}
|
|
6
11
|
constructor(datePipe) {
|
|
7
12
|
this.datePipe = datePipe;
|
|
8
13
|
this.data = new Array();
|
|
9
14
|
this.title = "";
|
|
15
|
+
this.trendColor = '#EB0102';
|
|
16
|
+
this.mainColor = '#006cad';
|
|
10
17
|
this.loaded = false;
|
|
11
18
|
this.counter = 0;
|
|
12
19
|
}
|
|
@@ -14,48 +21,97 @@ export class GraphComponent {
|
|
|
14
21
|
var self = this;
|
|
15
22
|
// Aggiustamento e scrittura dati
|
|
16
23
|
if (this.data.length > 0) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
responsive: true,
|
|
54
|
-
maintainAspectRatio: false
|
|
24
|
+
this.loadGraph(Math.floor(window.innerWidth / 2));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
loadGraph(width) {
|
|
28
|
+
var lastvalue = this.data[0];
|
|
29
|
+
var firstvalue = this.data[this.data.length - 1];
|
|
30
|
+
var stockChartMinimum = new Date(firstvalue.x);
|
|
31
|
+
var stockChartMaximum = new Date(lastvalue.x);
|
|
32
|
+
var stockChartTitleText = this.title;
|
|
33
|
+
var stockChartdataPoints = this.data;
|
|
34
|
+
this.linearRegression = new Array();
|
|
35
|
+
this.trend = "";
|
|
36
|
+
stockChartdataPoints.reverse();
|
|
37
|
+
if (stockChartdataPoints.length > 2) {
|
|
38
|
+
let x = [];
|
|
39
|
+
for (let i = 0; i < stockChartdataPoints.length; i++) {
|
|
40
|
+
x.push([i, stockChartdataPoints[i].y]);
|
|
41
|
+
}
|
|
42
|
+
let parameters = ss.linearRegression(x);
|
|
43
|
+
this.m = parameters.m;
|
|
44
|
+
this.q = parameters.b;
|
|
45
|
+
if (this.m > 0) {
|
|
46
|
+
this.trend += " ↗";
|
|
47
|
+
}
|
|
48
|
+
else if (this.m < 0) {
|
|
49
|
+
this.trend += " ↘";
|
|
50
|
+
}
|
|
51
|
+
// console.log(x);
|
|
52
|
+
// console.log(stockChartdataPoints);
|
|
53
|
+
for (let i = 0; i < stockChartdataPoints.length; i++) {
|
|
54
|
+
if (i == 0 || i == stockChartdataPoints.length - 1) {
|
|
55
|
+
this.linearRegression.push({ x: stockChartdataPoints[i].x,
|
|
56
|
+
y: this.m * i + this.q,
|
|
57
|
+
label: stockChartdataPoints[i].label,
|
|
58
|
+
name: stockChartdataPoints[i].name
|
|
59
|
+
});
|
|
55
60
|
}
|
|
56
|
-
}
|
|
57
|
-
this.
|
|
61
|
+
}
|
|
62
|
+
//this.linearRegression.reverse();
|
|
63
|
+
// console.log(this.linearRegression);
|
|
64
|
+
// console.log(this.m);
|
|
65
|
+
// console.log(this.q);
|
|
58
66
|
}
|
|
67
|
+
this.stockChartOptions = {
|
|
68
|
+
theme: 'light2',
|
|
69
|
+
animationEnabled: true,
|
|
70
|
+
width: width,
|
|
71
|
+
height: 500,
|
|
72
|
+
creditText: "",
|
|
73
|
+
creditHref: "",
|
|
74
|
+
title: {
|
|
75
|
+
text: stockChartTitleText
|
|
76
|
+
},
|
|
77
|
+
charts: [{
|
|
78
|
+
axisX: {
|
|
79
|
+
labelFormatter: this.labelFormatterFunction,
|
|
80
|
+
},
|
|
81
|
+
data: [
|
|
82
|
+
{
|
|
83
|
+
toolTipContent: null,
|
|
84
|
+
type: 'line',
|
|
85
|
+
color: this.trendColor,
|
|
86
|
+
showInLegend: true,
|
|
87
|
+
legendMarkerType: "none",
|
|
88
|
+
markerType: "none",
|
|
89
|
+
legendText: "Trend" + this.trend,
|
|
90
|
+
dataPoints: this.linearRegression
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
type: "spline",
|
|
94
|
+
dataPoints: stockChartdataPoints,
|
|
95
|
+
color: this.mainColor,
|
|
96
|
+
}
|
|
97
|
+
],
|
|
98
|
+
culture: "it"
|
|
99
|
+
}],
|
|
100
|
+
rangeSelector: {
|
|
101
|
+
enabled: false
|
|
102
|
+
},
|
|
103
|
+
navigator: {
|
|
104
|
+
slider: {
|
|
105
|
+
minimum: stockChartMinimum,
|
|
106
|
+
maximum: stockChartMaximum
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
options: {
|
|
110
|
+
responsive: true,
|
|
111
|
+
maintainAspectRatio: false
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
this.loaded = true;
|
|
59
115
|
}
|
|
60
116
|
labelFormatterFunction(e) {
|
|
61
117
|
let label = "";
|
|
@@ -107,15 +163,18 @@ export class GraphComponent {
|
|
|
107
163
|
}
|
|
108
164
|
}
|
|
109
165
|
GraphComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GraphComponent, deps: [{ token: i1.DatePipe }], target: i0.ɵɵFactoryTarget.Component });
|
|
110
|
-
GraphComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GraphComponent, selector: "graph", inputs: { data: "data", title: "title" }, ngImport: i0, template: "<canvasjs-stockchart *ngIf=\"loaded\" [options]=\"stockChartOptions\"></canvasjs-stockchart>\r\n<div class=\"error\" *ngIf=\"!loaded\"><b>{{title}}:</b> Nessun dato trovato nell'intervallo specificato!</div>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CanvasJSStockChart, selector: "canvasjs-stockchart", inputs: ["options", "styles"], outputs: ["stockChartInstance"] }] });
|
|
166
|
+
GraphComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GraphComponent, selector: "graph", inputs: { data: "data", title: "title" }, host: { listeners: { "window:resize": "onResize($event)" } }, ngImport: i0, template: "<canvasjs-stockchart *ngIf=\"loaded\" [options]=\"stockChartOptions\"></canvasjs-stockchart>\r\n<div class=\"error\" *ngIf=\"!loaded\"><b>{{title}}:</b> Nessun dato trovato nell'intervallo specificato!</div>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CanvasJSStockChart, selector: "canvasjs-stockchart", inputs: ["options", "styles"], outputs: ["stockChartInstance"] }] });
|
|
111
167
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GraphComponent, decorators: [{
|
|
112
168
|
type: Component,
|
|
113
169
|
args: [{ selector: 'graph', template: "<canvasjs-stockchart *ngIf=\"loaded\" [options]=\"stockChartOptions\"></canvasjs-stockchart>\r\n<div class=\"error\" *ngIf=\"!loaded\"><b>{{title}}:</b> Nessun dato trovato nell'intervallo specificato!</div>" }]
|
|
114
|
-
}], ctorParameters: function () { return [{ type: i1.DatePipe }]; }, propDecorators: {
|
|
170
|
+
}], ctorParameters: function () { return [{ type: i1.DatePipe }]; }, propDecorators: { onResize: [{
|
|
171
|
+
type: HostListener,
|
|
172
|
+
args: ['window:resize', ['$event']]
|
|
173
|
+
}], data: [{
|
|
115
174
|
type: Input,
|
|
116
175
|
args: ["data"]
|
|
117
176
|
}], title: [{
|
|
118
177
|
type: Input,
|
|
119
178
|
args: ["title"]
|
|
120
179
|
}] } });
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9wcml2YXRlL2dyYXBocy9ncmFwaC9ncmFwaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZ3JhcGhzL2dyYXBoL2dyYXBoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7O0FBU3pELE1BQU0sT0FBTyxjQUFjO0lBVXpCLFlBQ1UsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVRiLFNBQUksR0FBa0IsSUFBSSxLQUFLLEVBQVUsQ0FBQztRQUN6QyxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBSW5DLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDeEIsWUFBTyxHQUFXLENBQUMsQ0FBQztJQUlmLENBQUM7SUFFTixRQUFRO1FBRU4sSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBRWhCLGlDQUFpQztRQUNqQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBQztZQUN2QixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdCLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLENBQUM7WUFFL0MsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0MsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLElB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RyxjQUFjLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsR0FBRyxHQUFHLEdBQUcsYUFBYSxHQUFJLEdBQUcsR0FBRyxlQUFlLENBQUM7UUFFM0gsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMxQixLQUFLLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hCO1FBQ0QsS0FBSyxJQUFJLEdBQUcsQ0FBQztRQUNiLEtBQUssSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDNUIsS0FBSyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN4QjtRQUVELG9DQUFvQztRQUV0QyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OzRHQW5IVSxjQUFjO2dHQUFkLGNBQWMsdUZDVDNCLGlOQUMyRzs0RkRROUYsY0FBYztrQkFMMUIsU0FBUzsrQkFDRSxPQUFPOytGQU1GLElBQUk7c0JBQWxCLEtBQUs7dUJBQUMsTUFBTTtnQkFDRyxLQUFLO3NCQUFwQixLQUFLO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29vcmRzIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2dyYXBoLm1vZGVsJztcclxuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdncmFwaCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dyYXBoLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ncmFwaC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHcmFwaENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dChcImRhdGFcIikgZGF0YTogQXJyYXk8Q29vcmRzPiA9IG5ldyBBcnJheTxDb29yZHM+KCk7XHJcbiAgQElucHV0KFwidGl0bGVcIikgdGl0bGU6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIHN0b2NrQ2hhcnRPcHRpb25zOiBhbnk7XHJcblxyXG4gIGxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNvdW50ZXI6IG51bWJlciA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGVcclxuICAgICkge30gIFxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuXHJcbiAgICB2YXIgc2VsZiA9IHRoaXM7XHJcblxyXG4gICAgLy8gQWdnaXVzdGFtZW50byBlIHNjcml0dHVyYSBkYXRpXHJcbiAgICBpZiAodGhpcy5kYXRhLmxlbmd0aCA+IDApe1xyXG4gICAgICB2YXIgbGFzdHZhbHVlID0gdGhpcy5kYXRhWzBdO1xyXG4gICAgICB2YXIgZmlyc3R2YWx1ZSA9IHRoaXMuZGF0YVt0aGlzLmRhdGEubGVuZ3RoLTFdO1xyXG5cclxuICAgICAgdmFyIHN0b2NrQ2hhcnRNaW5pbXVtID0gbmV3IERhdGUoZmlyc3R2YWx1ZS54KTtcclxuICAgICAgdmFyIHN0b2NrQ2hhcnRNYXhpbXVtID0gbmV3IERhdGUobGFzdHZhbHVlLngpO1xyXG4gICAgICB2YXIgc3RvY2tDaGFydFRpdGxlVGV4dCA9IHRoaXMudGl0bGU7XHJcbiAgICAgIHZhciBzdG9ja0NoYXJ0ZGF0YVBvaW50cyA9IHRoaXMuZGF0YTtcclxuXHJcbiAgICAgIHRoaXMuc3RvY2tDaGFydE9wdGlvbnMgPSB7XHJcbiAgICAgICAgdGhlbWU6ICdsaWdodDInLFxyXG4gICAgICAgIGFuaW1hdGlvbkVuYWJsZWQ6IHRydWUsXHJcbiAgICAgICAgd2lkdGg6IDEwMDAsXHJcbiAgICAgICAgaGVpZ2h0OiA1MDAsXHJcbiAgICAgICAgY3JlZGl0VGV4dDogXCJcIixcclxuICAgICAgICBjcmVkaXRIcmVmOiBcIlwiLFxyXG4gICAgICAgIHRpdGxlOiB7XHJcbiAgICAgICAgICB0ZXh0OiBzdG9ja0NoYXJ0VGl0bGVUZXh0XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjaGFydHM6IFt7XHJcbiAgICAgICAgICBheGlzWDoge1xyXG4gICAgICAgICAgICBsYWJlbEZvcm1hdHRlcjogdGhpcy5sYWJlbEZvcm1hdHRlckZ1bmN0aW9uLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGRhdGE6IFt7XHJcbiAgICAgICAgICAgIHR5cGU6IFwibGluZVwiLFxyXG4gICAgICAgICAgICBkYXRhUG9pbnRzOiBzdG9ja0NoYXJ0ZGF0YVBvaW50c1xyXG4gICAgICAgICAgfV0sXHJcbiAgICAgICAgICBjdWx0dXJlOiBcIml0XCJcclxuICAgICAgICB9XSxcclxuICAgICAgICByYW5nZVNlbGVjdG9yOiB7XHJcbiAgICAgICAgICBlbmFibGVkOiBmYWxzZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbmF2aWdhdG9yOiB7XHJcbiAgICAgICAgICBzbGlkZXI6IHtcclxuICAgICAgICAgICAgbWluaW11bTogc3RvY2tDaGFydE1pbmltdW0sXHJcbiAgICAgICAgICAgIG1heGltdW06IHN0b2NrQ2hhcnRNYXhpbXVtXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICByZXNwb25zaXZlOiB0cnVlLFxyXG4gICAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2VcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcblxyXG4gICAgICB0aGlzLmxvYWRlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsYWJlbEZvcm1hdHRlckZ1bmN0aW9uKGUpIHtcclxuICAgIGxldCBsYWJlbCA9IFwiXCI7XHJcbiAgICBsZXQgZGlydHlMYWJlbDtcclxuICAgIGxldCBkYXRlID0gZS52YWx1ZTtcclxuXHJcbiAgICAgIGxldCBuZXdZZWFyOiBudW1iZXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICAgIGxldCBuZXdNb250aDogbnVtYmVyID0gZGF0ZS5nZXRNb250aCgpICsgMTtcclxuICAgICAgbGV0IG5ld01vbnRoU3RyaW5nOiBzdHJpbmc7XHJcbiAgICAgIGlmIChuZXdNb250aCA8IDEwKSB7XHJcbiAgICAgIG5ld01vbnRoU3RyaW5nID0gXCIwXCIgKyBuZXdNb250aC50b1N0cmluZygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdNb250aFN0cmluZyA9IG5ld01vbnRoLnRvU3RyaW5nKCk7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IG5ld0RheTogbnVtYmVyID0gZGF0ZS5nZXREYXRlKCk7XHJcbiAgICAgIGxldCBuZXdEYXlTdHJpbmc6IHN0cmluZztcclxuICAgICAgaWYgKG5ld0RheSA8IDEwKSB7XHJcbiAgICAgIG5ld0RheVN0cmluZyA9IFwiMFwiICsgbmV3RGF5LnRvU3RyaW5nKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgIG5ld0RheVN0cmluZyA9IG5ld0RheS50b1N0cmluZygpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBuZXdIb3VyOiBudW1iZXIgPSBkYXRlLmdldEhvdXJzKCk7XHJcbiAgICAgIGxldCBuZXdIb3VyU3RyaW5nOiBzdHJpbmc7XHJcbiAgICAgIGlmIChuZXdIb3VyIDwgMTApIHtcclxuICAgICAgbmV3SG91clN0cmluZyA9IFwiMFwiICsgbmV3SG91ci50b1N0cmluZygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdIb3VyU3RyaW5nID0gbmV3SG91ci50b1N0cmluZygpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBuZXdNaW51dGU6IG51bWJlciA9IGRhdGUuZ2V0TWludXRlcygpO1xyXG4gICAgICBsZXQgbmV3TWludXRlU3RyaW5nOiBzdHJpbmc7XHJcbiAgICAgIGlmIChuZXdNaW51dGUgPCAxMCkge1xyXG4gICAgICBuZXdNaW51dGVTdHJpbmcgPSBcIjBcIiArIG5ld01pbnV0ZS50b1N0cmluZygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdNaW51dGVTdHJpbmcgPSBuZXdNaW51dGUudG9TdHJpbmcoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZGlydHlMYWJlbCA9IG5ld0RheVN0cmluZyArIFwiL1wiICsgbmV3TW9udGhTdHJpbmcgKyBcIi9cIiArIG5ld1llYXIudG9TdHJpbmcoKSArIFwiIFwiICsgbmV3SG91clN0cmluZyAgKyBcIjpcIiArIG5ld01pbnV0ZVN0cmluZztcclxuXHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XHJcbiAgICAgICAgbGFiZWwgKz0gZGlydHlMYWJlbFtpXTtcclxuICAgICAgfVxyXG4gICAgICBsYWJlbCArPSBcIiBcIjtcclxuICAgICAgZm9yIChsZXQgaSA9IDExOyBpIDwgMTY7IGkrKykge1xyXG4gICAgICAgIGxhYmVsICs9IGRpcnR5TGFiZWxbaV07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vbGFiZWwgPSBsYWJlbC5yZXBsYWNlKFwiMDA6MDBcIixcIlwiKTtcclxuICAgIFxyXG4gICAgcmV0dXJuIGxhYmVsO1xyXG4gIH0gIFxyXG4gIFxyXG5cclxufVxyXG4iLCI8Y2FudmFzanMtc3RvY2tjaGFydCAqbmdJZj1cImxvYWRlZFwiIFtvcHRpb25zXT1cInN0b2NrQ2hhcnRPcHRpb25zXCI+PC9jYW52YXNqcy1zdG9ja2NoYXJ0PlxyXG48ZGl2IGNsYXNzPVwiZXJyb3JcIiAqbmdJZj1cIiFsb2FkZWRcIj48Yj57e3RpdGxlfX06PC9iPiBOZXNzdW4gZGF0byB0cm92YXRvIG5lbGwnaW50ZXJ2YWxsbyBzcGVjaWZpY2F0byE8L2Rpdj4iXX0=
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9wcml2YXRlL2dyYXBocy9ncmFwaC9ncmFwaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZ3JhcGhzL2dyYXBoL2dyYXBoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUd2RSxPQUFPLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBU3hDLE1BQU0sT0FBTyxjQUFjO0lBR3pCLFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFvQkQsWUFDVSxRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBbkJiLFNBQUksR0FBa0IsSUFBSSxLQUFLLEVBQVUsQ0FBQztRQUN6QyxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRW5DLGVBQVUsR0FBVyxTQUFTLENBQUM7UUFDL0IsY0FBUyxHQUFXLFNBQVMsQ0FBQztRQVc5QixXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ3hCLFlBQU8sR0FBVyxDQUFDLENBQUM7SUFJZixDQUFDO0lBRU4sUUFBUTtRQUVOLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztRQUVoQixpQ0FBaUM7UUFDakMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxD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QUFHLEdBQUcsY0FBYyxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLEdBQUcsR0FBRyxHQUFHLGFBQWEsR0FBSSxHQUFHLEdBQUcsZUFBZSxDQUFDO1FBRTNILEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDMUIsS0FBSyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN4QjtRQUNELEtBQUssSUFBSSxHQUFHLENBQUM7UUFDYixLQUFLLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzVCLEtBQUssSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDeEI7UUFFRCxvQ0FBb0M7UUFFdEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs0R0F4TFUsY0FBYztnR0FBZCxjQUFjLHFKQ1ozQixpTkFDMkc7NEZEVzlGLGNBQWM7a0JBTjFCLFNBQVM7K0JBQ0UsT0FBTzsrRkFRakIsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNMUIsSUFBSTtzQkFBbEIsS0FBSzt1QkFBQyxNQUFNO2dCQUNHLEtBQUs7c0JBQXBCLEtBQUs7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvb3JkcyB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9ncmFwaC5tb2RlbCc7XHJcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0ICogYXMgc3MgZnJvbSAnc2ltcGxlLXN0YXRpc3RpY3MnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZ3JhcGgnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmFwaC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ3JhcGguY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEdyYXBoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXHJcbiAgb25SZXNpemUoKSB7XHJcbiAgICB0aGlzLmxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5sb2FkR3JhcGgoTWF0aC5mbG9vcih3aW5kb3cuaW5uZXJXaWR0aC8yKSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoXCJkYXRhXCIpIGRhdGE6IEFycmF5PENvb3Jkcz4gPSBuZXcgQXJyYXk8Q29vcmRzPigpO1xyXG4gIEBJbnB1dChcInRpdGxlXCIpIHRpdGxlOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICB0cmVuZENvbG9yOiBzdHJpbmcgPSAnI0VCMDEwMic7XHJcbiAgbWFpbkNvbG9yOiBzdHJpbmcgPSAnIzAwNmNhZCc7XHJcblxyXG4gIG06IG51bWJlcjsgLy8gbSBvZiB0aGUgbGluZWFyIHJlZ3Jlc3Npb25cclxuICBxOiBudW1iZXI7IC8vIHEgb2YgdGhlIGxpbmVhciByZWdyZXNzaW9uXHJcbiAgdHJlbmQ6IHN0cmluZzsgLy8gdHJlbmQgc3RyaW5nXHJcbiAgbGluZWFyUmVncmVzc2lvbjogQXJyYXk8Q29vcmRzPjsgLy8gdmFyaWFibGUgdXNlZCB0byBzdG9yZSB0aGUgbGluZWFyIHJlZ3Jlc3Npb24gcG9pbnRzIHRvIHBsb3RcclxuXHJcblxyXG5cclxuICBzdG9ja0NoYXJ0T3B0aW9uczogYW55O1xyXG5cclxuICBsb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjb3VudGVyOiBudW1iZXIgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlXHJcbiAgICApIHt9ICBcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcblxyXG4gICAgdmFyIHNlbGYgPSB0aGlzO1xyXG5cclxuICAgIC8vIEFnZ2l1c3RhbWVudG8gZSBzY3JpdHR1cmEgZGF0aVxyXG4gICAgaWYgKHRoaXMuZGF0YS5sZW5ndGggPiAwKXtcclxuICAgICAgdGhpcy5sb2FkR3JhcGgoTWF0aC5mbG9vcih3aW5kb3cuaW5uZXJXaWR0aC8yKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsb2FkR3JhcGgod2lkdGg6IG51bWJlcil7XHJcblxyXG4gICAgdmFyIGxhc3R2YWx1ZSA9IHRoaXMuZGF0YVswXTtcclxuICAgIHZhciBmaXJzdHZhbHVlID0gdGhpcy5kYXRhW3RoaXMuZGF0YS5sZW5ndGgtMV07XHJcblxyXG4gICAgdmFyIHN0b2NrQ2hhcnRNaW5pbXVtID0gbmV3IERhdGUoZmlyc3R2YWx1ZS54KTtcclxuICAgIHZhciBzdG9ja0NoYXJ0TWF4aW11bSA9IG5ldyBEYXRlKGxhc3R2YWx1ZS54KTtcclxuICAgIHZhciBzdG9ja0NoYXJ0VGl0bGVUZXh0ID0gdGhpcy50aXRsZTtcclxuICAgIHZhciBzdG9ja0NoYXJ0ZGF0YVBvaW50cyA9IHRoaXMuZGF0YTtcclxuXHJcbiAgICB0aGlzLmxpbmVhclJlZ3Jlc3Npb24gPSBuZXcgQXJyYXk8Q29vcmRzPigpO1xyXG4gICAgdGhpcy50cmVuZCA9IFwiXCI7XHJcblxyXG4gICAgc3RvY2tDaGFydGRhdGFQb2ludHMucmV2ZXJzZSgpO1xyXG4gICAgaWYgKHN0b2NrQ2hhcnRkYXRhUG9pbnRzLmxlbmd0aCA+IDIpIHtcclxuICAgICAgbGV0IHggPSBbXTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGk8c3RvY2tDaGFydGRhdGFQb2ludHMubGVuZ3RoOyBpICsrKSB7XHJcbiAgICAgICAgeC5wdXNoKFtpLCBzdG9ja0NoYXJ0ZGF0YVBvaW50c1tpXS55XSk7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IHBhcmFtZXRlcnMgPSBzcy5saW5lYXJSZWdyZXNzaW9uKHgpO1xyXG4gICAgICB0aGlzLm0gPSBwYXJhbWV0ZXJzLm07XHJcbiAgICAgIHRoaXMucSA9IHBhcmFtZXRlcnMuYjtcclxuICAgICAgaWYgKHRoaXMubSA+IDApIHtcclxuICAgICAgICAgIHRoaXMudHJlbmQgKz0gXCIg4oaXXCI7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm0gPCAwKSB7XHJcbiAgICAgICAgICB0aGlzLnRyZW5kICs9IFwiIOKGmFwiO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKHgpO1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhzdG9ja0NoYXJ0ZGF0YVBvaW50cyk7XHJcbiAgICAgIFxyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaTxzdG9ja0NoYXJ0ZGF0YVBvaW50cy5sZW5ndGg7IGkgKyspIHtcclxuICAgICAgICBpZiAoaSA9PSAwIHx8IGkgPT0gc3RvY2tDaGFydGRhdGFQb2ludHMubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgICAgdGhpcy5saW5lYXJSZWdyZXNzaW9uLnB1c2goe3g6IHN0b2NrQ2hhcnRkYXRhUG9pbnRzW2ldLngsXHJcbiAgICAgICAgICAgIHk6IHRoaXMubSppICsgdGhpcy5xLFxyXG4gICAgICAgICAgICBsYWJlbDogc3RvY2tDaGFydGRhdGFQb2ludHNbaV0ubGFiZWwsXHJcbiAgICAgICAgICAgIG5hbWU6IHN0b2NrQ2hhcnRkYXRhUG9pbnRzW2ldLm5hbWVcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC8vdGhpcy5saW5lYXJSZWdyZXNzaW9uLnJldmVyc2UoKTtcclxuICAgICAgLy8gY29uc29sZS5sb2codGhpcy5saW5lYXJSZWdyZXNzaW9uKTtcclxuICAgICAgLy8gY29uc29sZS5sb2codGhpcy5tKTtcclxuICAgICAgLy8gY29uc29sZS5sb2codGhpcy5xKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN0b2NrQ2hhcnRPcHRpb25zID0ge1xyXG4gICAgICB0aGVtZTogJ2xpZ2h0MicsXHJcbiAgICAgIGFuaW1hdGlvbkVuYWJsZWQ6IHRydWUsXHJcbiAgICAgIHdpZHRoOiB3aWR0aCxcclxuICAgICAgaGVpZ2h0OiA1MDAsXHJcbiAgICAgIGNyZWRpdFRleHQ6IFwiXCIsXHJcbiAgICAgIGNyZWRpdEhyZWY6IFwiXCIsXHJcbiAgICAgIHRpdGxlOiB7XHJcbiAgICAgICAgdGV4dDogc3RvY2tDaGFydFRpdGxlVGV4dFxyXG4gICAgICB9LFxyXG4gICAgICBjaGFydHM6IFt7XHJcbiAgICAgICAgYXhpc1g6IHtcclxuICAgICAgICAgIGxhYmVsRm9ybWF0dGVyOiB0aGlzLmxhYmVsRm9ybWF0dGVyRnVuY3Rpb24sXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkYXRhOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRvb2xUaXBDb250ZW50OiBudWxsLFxyXG4gICAgICAgICAgICB0eXBlOiAnbGluZScsXHJcbiAgICAgICAgICAgIGNvbG9yOiB0aGlzLnRyZW5kQ29sb3IsXHJcbiAgICAgICAgICAgIHNob3dJbkxlZ2VuZDogdHJ1ZSxcclxuICAgICAgICAgICAgbGVnZW5kTWFya2VyVHlwZTogXCJub25lXCIsXHJcbiAgICAgICAgICAgIG1hcmtlclR5cGU6IFwibm9uZVwiLFxyXG4gICAgICAgICAgICBsZWdlbmRUZXh0OiBcIlRyZW5kXCIgKyB0aGlzLnRyZW5kLFxyXG4gICAgICAgICAgICBkYXRhUG9pbnRzOiB0aGlzLmxpbmVhclJlZ3Jlc3Npb25cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHR5cGU6IFwic3BsaW5lXCIsXHJcbiAgICAgICAgICAgIGRhdGFQb2ludHM6IHN0b2NrQ2hhcnRkYXRhUG9pbnRzLFxyXG4gICAgICAgICAgICBjb2xvcjogdGhpcy5tYWluQ29sb3IsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgXSxcclxuICAgICAgICBjdWx0dXJlOiBcIml0XCJcclxuICAgICAgfV0sXHJcbiAgICAgIHJhbmdlU2VsZWN0b3I6IHtcclxuICAgICAgICBlbmFibGVkOiBmYWxzZVxyXG4gICAgICB9LFxyXG4gICAgICBuYXZpZ2F0b3I6IHtcclxuICAgICAgICBzbGlkZXI6IHtcclxuICAgICAgICAgIG1pbmltdW06IHN0b2NrQ2hhcnRNaW5pbXVtLFxyXG4gICAgICAgICAgbWF4aW11bTogc3RvY2tDaGFydE1heGltdW1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICByZXNwb25zaXZlOiB0cnVlLFxyXG4gICAgICAgIG1haW50YWluQXNwZWN0UmF0aW86IGZhbHNlXHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5sb2FkZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgbGFiZWxGb3JtYXR0ZXJGdW5jdGlvbihlKSB7XHJcbiAgICBsZXQgbGFiZWwgPSBcIlwiO1xyXG4gICAgbGV0IGRpcnR5TGFiZWw7XHJcbiAgICBsZXQgZGF0ZSA9IGUudmFsdWU7XHJcblxyXG4gICAgICBsZXQgbmV3WWVhcjogbnVtYmVyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgICBsZXQgbmV3TW9udGg6IG51bWJlciA9IGRhdGUuZ2V0TW9udGgoKSArIDE7XHJcbiAgICAgIGxldCBuZXdNb250aFN0cmluZzogc3RyaW5nO1xyXG4gICAgICBpZiAobmV3TW9udGggPCAxMCkge1xyXG4gICAgICBuZXdNb250aFN0cmluZyA9IFwiMFwiICsgbmV3TW9udGgudG9TdHJpbmcoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgbmV3TW9udGhTdHJpbmcgPSBuZXdNb250aC50b1N0cmluZygpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBuZXdEYXk6IG51bWJlciA9IGRhdGUuZ2V0RGF0ZSgpO1xyXG4gICAgICBsZXQgbmV3RGF5U3RyaW5nOiBzdHJpbmc7XHJcbiAgICAgIGlmIChuZXdEYXkgPCAxMCkge1xyXG4gICAgICBuZXdEYXlTdHJpbmcgPSBcIjBcIiArIG5ld0RheS50b1N0cmluZygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdEYXlTdHJpbmcgPSBuZXdEYXkudG9TdHJpbmcoKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgbmV3SG91cjogbnVtYmVyID0gZGF0ZS5nZXRIb3VycygpO1xyXG4gICAgICBsZXQgbmV3SG91clN0cmluZzogc3RyaW5nO1xyXG4gICAgICBpZiAobmV3SG91ciA8IDEwKSB7XHJcbiAgICAgIG5ld0hvdXJTdHJpbmcgPSBcIjBcIiArIG5ld0hvdXIudG9TdHJpbmcoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgbmV3SG91clN0cmluZyA9IG5ld0hvdXIudG9TdHJpbmcoKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgbmV3TWludXRlOiBudW1iZXIgPSBkYXRlLmdldE1pbnV0ZXMoKTtcclxuICAgICAgbGV0IG5ld01pbnV0ZVN0cmluZzogc3RyaW5nO1xyXG4gICAgICBpZiAobmV3TWludXRlIDwgMTApIHtcclxuICAgICAgbmV3TWludXRlU3RyaW5nID0gXCIwXCIgKyBuZXdNaW51dGUudG9TdHJpbmcoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgbmV3TWludXRlU3RyaW5nID0gbmV3TWludXRlLnRvU3RyaW5nKCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGRpcnR5TGFiZWwgPSBuZXdEYXlTdHJpbmcgKyBcIi9cIiArIG5ld01vbnRoU3RyaW5nICsgXCIvXCIgKyBuZXdZZWFyLnRvU3RyaW5nKCkgKyBcIiBcIiArIG5ld0hvdXJTdHJpbmcgICsgXCI6XCIgKyBuZXdNaW51dGVTdHJpbmc7XHJcblxyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xyXG4gICAgICAgIGxhYmVsICs9IGRpcnR5TGFiZWxbaV07XHJcbiAgICAgIH1cclxuICAgICAgbGFiZWwgKz0gXCIgXCI7XHJcbiAgICAgIGZvciAobGV0IGkgPSAxMTsgaSA8IDE2OyBpKyspIHtcclxuICAgICAgICBsYWJlbCArPSBkaXJ0eUxhYmVsW2ldO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvL2xhYmVsID0gbGFiZWwucmVwbGFjZShcIjAwOjAwXCIsXCJcIik7XHJcbiAgICBcclxuICAgIHJldHVybiBsYWJlbDtcclxuICB9ICBcclxuICBcclxuXHJcbn1cclxuIiwiPGNhbnZhc2pzLXN0b2NrY2hhcnQgKm5nSWY9XCJsb2FkZWRcIiBbb3B0aW9uc109XCJzdG9ja0NoYXJ0T3B0aW9uc1wiPjwvY2FudmFzanMtc3RvY2tjaGFydD5cclxuPGRpdiBjbGFzcz1cImVycm9yXCIgKm5nSWY9XCIhbG9hZGVkXCI+PGI+e3t0aXRsZX19OjwvYj4gTmVzc3VuIGRhdG8gdHJvdmF0byBuZWxsJ2ludGVydmFsbG8gc3BlY2lmaWNhdG8hPC9kaXY+Il19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i2$2 from '@angular/common';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { Injectable, EventEmitter, Component, Input, ViewChild, Output, ViewChildren, NgModule, Inject } from '@angular/core';
|
|
4
|
+
import { Injectable, EventEmitter, Component, Input, ViewChild, Output, ViewChildren, HostListener, NgModule, Inject } from '@angular/core';
|
|
5
5
|
import * as i5 from '@angular/forms';
|
|
6
6
|
import { Validators, UntypedFormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
7
7
|
import { __awaiter } from 'tslib';
|
|
@@ -52,6 +52,7 @@ import { MatNativeDateModule } from '@angular/material/core';
|
|
|
52
52
|
import * as i5$3 from '@angular/material/select';
|
|
53
53
|
import { MatSelectModule } from '@angular/material/select';
|
|
54
54
|
import * as i2$5 from '@angular/platform-browser';
|
|
55
|
+
import * as ss from 'simple-statistics';
|
|
55
56
|
import * as i2$6 from '@canvasjs/angular-stockcharts';
|
|
56
57
|
import { CanvasJSAngularStockChartsModule, CanvasJSChart, CanvasJSStockChart } from '@canvasjs/angular-stockcharts';
|
|
57
58
|
import * as i8 from '@angular/material/autocomplete';
|
|
@@ -3188,7 +3189,8 @@ class ImageFieldSelectorTemplateComponent {
|
|
|
3188
3189
|
this.recordChange = new EventEmitter();
|
|
3189
3190
|
}
|
|
3190
3191
|
ngOnInit() {
|
|
3191
|
-
|
|
3192
|
+
GlobalService.debugLog("ImageFieldSelectorTemplateComponent - RECORD ngOnInit() - record", this.record[this.field.Name]);
|
|
3193
|
+
GlobalService.debugLog("ImageFieldSelectorTemplateComponent - RECORD ngOnInit() - field", this.field);
|
|
3192
3194
|
this.initStyles();
|
|
3193
3195
|
this.initializeAttachments();
|
|
3194
3196
|
}
|
|
@@ -4788,10 +4790,16 @@ class Coords {
|
|
|
4788
4790
|
}
|
|
4789
4791
|
|
|
4790
4792
|
class GraphComponent {
|
|
4793
|
+
onResize() {
|
|
4794
|
+
this.loaded = false;
|
|
4795
|
+
this.loadGraph(Math.floor(window.innerWidth / 2));
|
|
4796
|
+
}
|
|
4791
4797
|
constructor(datePipe) {
|
|
4792
4798
|
this.datePipe = datePipe;
|
|
4793
4799
|
this.data = new Array();
|
|
4794
4800
|
this.title = "";
|
|
4801
|
+
this.trendColor = '#EB0102';
|
|
4802
|
+
this.mainColor = '#006cad';
|
|
4795
4803
|
this.loaded = false;
|
|
4796
4804
|
this.counter = 0;
|
|
4797
4805
|
}
|
|
@@ -4799,48 +4807,97 @@ class GraphComponent {
|
|
|
4799
4807
|
var self = this;
|
|
4800
4808
|
// Aggiustamento e scrittura dati
|
|
4801
4809
|
if (this.data.length > 0) {
|
|
4802
|
-
|
|
4803
|
-
|
|
4804
|
-
|
|
4805
|
-
|
|
4806
|
-
|
|
4807
|
-
|
|
4808
|
-
|
|
4809
|
-
|
|
4810
|
-
|
|
4811
|
-
|
|
4812
|
-
|
|
4813
|
-
|
|
4814
|
-
|
|
4815
|
-
|
|
4816
|
-
|
|
4817
|
-
|
|
4818
|
-
|
|
4819
|
-
|
|
4820
|
-
|
|
4810
|
+
this.loadGraph(Math.floor(window.innerWidth / 2));
|
|
4811
|
+
}
|
|
4812
|
+
}
|
|
4813
|
+
loadGraph(width) {
|
|
4814
|
+
var lastvalue = this.data[0];
|
|
4815
|
+
var firstvalue = this.data[this.data.length - 1];
|
|
4816
|
+
var stockChartMinimum = new Date(firstvalue.x);
|
|
4817
|
+
var stockChartMaximum = new Date(lastvalue.x);
|
|
4818
|
+
var stockChartTitleText = this.title;
|
|
4819
|
+
var stockChartdataPoints = this.data;
|
|
4820
|
+
this.linearRegression = new Array();
|
|
4821
|
+
this.trend = "";
|
|
4822
|
+
stockChartdataPoints.reverse();
|
|
4823
|
+
if (stockChartdataPoints.length > 2) {
|
|
4824
|
+
let x = [];
|
|
4825
|
+
for (let i = 0; i < stockChartdataPoints.length; i++) {
|
|
4826
|
+
x.push([i, stockChartdataPoints[i].y]);
|
|
4827
|
+
}
|
|
4828
|
+
let parameters = ss.linearRegression(x);
|
|
4829
|
+
this.m = parameters.m;
|
|
4830
|
+
this.q = parameters.b;
|
|
4831
|
+
if (this.m > 0) {
|
|
4832
|
+
this.trend += " ↗";
|
|
4833
|
+
}
|
|
4834
|
+
else if (this.m < 0) {
|
|
4835
|
+
this.trend += " ↘";
|
|
4836
|
+
}
|
|
4837
|
+
// console.log(x);
|
|
4838
|
+
// console.log(stockChartdataPoints);
|
|
4839
|
+
for (let i = 0; i < stockChartdataPoints.length; i++) {
|
|
4840
|
+
if (i == 0 || i == stockChartdataPoints.length - 1) {
|
|
4841
|
+
this.linearRegression.push({ x: stockChartdataPoints[i].x,
|
|
4842
|
+
y: this.m * i + this.q,
|
|
4843
|
+
label: stockChartdataPoints[i].label,
|
|
4844
|
+
name: stockChartdataPoints[i].name
|
|
4845
|
+
});
|
|
4846
|
+
}
|
|
4847
|
+
}
|
|
4848
|
+
//this.linearRegression.reverse();
|
|
4849
|
+
// console.log(this.linearRegression);
|
|
4850
|
+
// console.log(this.m);
|
|
4851
|
+
// console.log(this.q);
|
|
4852
|
+
}
|
|
4853
|
+
this.stockChartOptions = {
|
|
4854
|
+
theme: 'light2',
|
|
4855
|
+
animationEnabled: true,
|
|
4856
|
+
width: width,
|
|
4857
|
+
height: 500,
|
|
4858
|
+
creditText: "",
|
|
4859
|
+
creditHref: "",
|
|
4860
|
+
title: {
|
|
4861
|
+
text: stockChartTitleText
|
|
4862
|
+
},
|
|
4863
|
+
charts: [{
|
|
4864
|
+
axisX: {
|
|
4865
|
+
labelFormatter: this.labelFormatterFunction,
|
|
4866
|
+
},
|
|
4867
|
+
data: [
|
|
4868
|
+
{
|
|
4869
|
+
toolTipContent: null,
|
|
4870
|
+
type: 'line',
|
|
4871
|
+
color: this.trendColor,
|
|
4872
|
+
showInLegend: true,
|
|
4873
|
+
legendMarkerType: "none",
|
|
4874
|
+
markerType: "none",
|
|
4875
|
+
legendText: "Trend" + this.trend,
|
|
4876
|
+
dataPoints: this.linearRegression
|
|
4821
4877
|
},
|
|
4822
|
-
|
|
4823
|
-
|
|
4824
|
-
|
|
4825
|
-
|
|
4826
|
-
|
|
4827
|
-
|
|
4828
|
-
|
|
4829
|
-
|
|
4830
|
-
|
|
4831
|
-
|
|
4832
|
-
|
|
4833
|
-
|
|
4834
|
-
|
|
4835
|
-
|
|
4836
|
-
|
|
4837
|
-
options: {
|
|
4838
|
-
responsive: true,
|
|
4839
|
-
maintainAspectRatio: false
|
|
4878
|
+
{
|
|
4879
|
+
type: "spline",
|
|
4880
|
+
dataPoints: stockChartdataPoints,
|
|
4881
|
+
color: this.mainColor,
|
|
4882
|
+
}
|
|
4883
|
+
],
|
|
4884
|
+
culture: "it"
|
|
4885
|
+
}],
|
|
4886
|
+
rangeSelector: {
|
|
4887
|
+
enabled: false
|
|
4888
|
+
},
|
|
4889
|
+
navigator: {
|
|
4890
|
+
slider: {
|
|
4891
|
+
minimum: stockChartMinimum,
|
|
4892
|
+
maximum: stockChartMaximum
|
|
4840
4893
|
}
|
|
4841
|
-
}
|
|
4842
|
-
|
|
4843
|
-
|
|
4894
|
+
},
|
|
4895
|
+
options: {
|
|
4896
|
+
responsive: true,
|
|
4897
|
+
maintainAspectRatio: false
|
|
4898
|
+
}
|
|
4899
|
+
};
|
|
4900
|
+
this.loaded = true;
|
|
4844
4901
|
}
|
|
4845
4902
|
labelFormatterFunction(e) {
|
|
4846
4903
|
let label = "";
|
|
@@ -4892,11 +4949,14 @@ class GraphComponent {
|
|
|
4892
4949
|
}
|
|
4893
4950
|
}
|
|
4894
4951
|
GraphComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GraphComponent, deps: [{ token: i2$2.DatePipe }], target: i0.ɵɵFactoryTarget.Component });
|
|
4895
|
-
GraphComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GraphComponent, selector: "graph", inputs: { data: "data", title: "title" }, ngImport: i0, template: "<canvasjs-stockchart *ngIf=\"loaded\" [options]=\"stockChartOptions\"></canvasjs-stockchart>\r\n<div class=\"error\" *ngIf=\"!loaded\"><b>{{title}}:</b> Nessun dato trovato nell'intervallo specificato!</div>", styles: [""], dependencies: [{ kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$6.CanvasJSStockChart, selector: "canvasjs-stockchart", inputs: ["options", "styles"], outputs: ["stockChartInstance"] }] });
|
|
4952
|
+
GraphComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GraphComponent, selector: "graph", inputs: { data: "data", title: "title" }, host: { listeners: { "window:resize": "onResize($event)" } }, ngImport: i0, template: "<canvasjs-stockchart *ngIf=\"loaded\" [options]=\"stockChartOptions\"></canvasjs-stockchart>\r\n<div class=\"error\" *ngIf=\"!loaded\"><b>{{title}}:</b> Nessun dato trovato nell'intervallo specificato!</div>", styles: [""], dependencies: [{ kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$6.CanvasJSStockChart, selector: "canvasjs-stockchart", inputs: ["options", "styles"], outputs: ["stockChartInstance"] }] });
|
|
4896
4953
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GraphComponent, decorators: [{
|
|
4897
4954
|
type: Component,
|
|
4898
4955
|
args: [{ selector: 'graph', template: "<canvasjs-stockchart *ngIf=\"loaded\" [options]=\"stockChartOptions\"></canvasjs-stockchart>\r\n<div class=\"error\" *ngIf=\"!loaded\"><b>{{title}}:</b> Nessun dato trovato nell'intervallo specificato!</div>" }]
|
|
4899
|
-
}], ctorParameters: function () { return [{ type: i2$2.DatePipe }]; }, propDecorators: {
|
|
4956
|
+
}], ctorParameters: function () { return [{ type: i2$2.DatePipe }]; }, propDecorators: { onResize: [{
|
|
4957
|
+
type: HostListener,
|
|
4958
|
+
args: ['window:resize', ['$event']]
|
|
4959
|
+
}], data: [{
|
|
4900
4960
|
type: Input,
|
|
4901
4961
|
args: ["data"]
|
|
4902
4962
|
}], title: [{
|