@eqproject/eqp-dynamic-module 2.4.12 → 2.4.13

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.
@@ -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
- console.log("RECORD ngOnInit()", this.record[this.field.Name], this.field);
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,18 @@
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';
10
16
  this.loaded = false;
11
17
  this.counter = 0;
12
18
  }
@@ -14,48 +20,92 @@ export class GraphComponent {
14
20
  var self = this;
15
21
  // Aggiustamento e scrittura dati
16
22
  if (this.data.length > 0) {
17
- var lastvalue = this.data[0];
18
- var firstvalue = this.data[this.data.length - 1];
19
- var stockChartMinimum = new Date(firstvalue.x);
20
- var stockChartMaximum = new Date(lastvalue.x);
21
- var stockChartTitleText = this.title;
22
- var stockChartdataPoints = this.data;
23
- this.stockChartOptions = {
24
- theme: 'light2',
25
- animationEnabled: true,
26
- width: 1000,
27
- height: 500,
28
- creditText: "",
29
- creditHref: "",
30
- title: {
31
- text: stockChartTitleText
32
- },
33
- charts: [{
34
- axisX: {
35
- labelFormatter: this.labelFormatterFunction,
23
+ this.loadGraph(Math.floor(window.innerWidth / 2));
24
+ }
25
+ }
26
+ loadGraph(width) {
27
+ var lastvalue = this.data[0];
28
+ var firstvalue = this.data[this.data.length - 1];
29
+ var stockChartMinimum = new Date(firstvalue.x);
30
+ var stockChartMaximum = new Date(lastvalue.x);
31
+ var stockChartTitleText = this.title;
32
+ var stockChartdataPoints = this.data;
33
+ this.linearRegression = new Array();
34
+ this.trend = "";
35
+ stockChartdataPoints.reverse();
36
+ if (stockChartdataPoints.length > 2) {
37
+ let x = [];
38
+ for (let i = 0; i < stockChartdataPoints.length; i++) {
39
+ x.push([i, stockChartdataPoints[i].y]);
40
+ }
41
+ let parameters = ss.linearRegression(x);
42
+ this.m = parameters.m;
43
+ this.q = parameters.b;
44
+ if (this.m > 0) {
45
+ this.trend += " ↗";
46
+ }
47
+ else if (this.m < 0) {
48
+ this.trend += " ↘";
49
+ }
50
+ // console.log(x);
51
+ // console.log(stockChartdataPoints);
52
+ for (let i = 0; i < stockChartdataPoints.length; i++) {
53
+ this.linearRegression.push({ x: stockChartdataPoints[i].x,
54
+ y: this.m * i + this.q,
55
+ label: stockChartdataPoints[i].label,
56
+ name: stockChartdataPoints[i].name
57
+ });
58
+ }
59
+ //this.linearRegression.reverse();
60
+ // console.log(this.linearRegression);
61
+ // console.log(this.m);
62
+ // console.log(this.q);
63
+ }
64
+ this.stockChartOptions = {
65
+ theme: 'light2',
66
+ animationEnabled: true,
67
+ width: width,
68
+ height: 500,
69
+ creditText: "",
70
+ creditHref: "",
71
+ title: {
72
+ text: stockChartTitleText
73
+ },
74
+ charts: [{
75
+ axisX: {
76
+ labelFormatter: this.labelFormatterFunction,
77
+ },
78
+ data: [{
79
+ type: "spline",
80
+ dataPoints: stockChartdataPoints
36
81
  },
37
- data: [{
38
- type: "line",
39
- dataPoints: stockChartdataPoints
40
- }],
41
- culture: "it"
42
- }],
43
- rangeSelector: {
44
- enabled: false
45
- },
46
- navigator: {
47
- slider: {
48
- minimum: stockChartMinimum,
49
- maximum: stockChartMaximum
50
- }
51
- },
52
- options: {
53
- responsive: true,
54
- maintainAspectRatio: false
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
+ culture: "it"
93
+ }],
94
+ rangeSelector: {
95
+ enabled: false
96
+ },
97
+ navigator: {
98
+ slider: {
99
+ minimum: stockChartMinimum,
100
+ maximum: stockChartMaximum
55
101
  }
56
- };
57
- this.loaded = true;
58
- }
102
+ },
103
+ options: {
104
+ responsive: true,
105
+ maintainAspectRatio: false
106
+ }
107
+ };
108
+ this.loaded = true;
59
109
  }
60
110
  labelFormatterFunction(e) {
61
111
  let label = "";
@@ -107,15 +157,18 @@ export class GraphComponent {
107
157
  }
108
158
  }
109
159
  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"] }] });
160
+ 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
161
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GraphComponent, decorators: [{
112
162
  type: Component,
113
163
  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: { data: [{
164
+ }], ctorParameters: function () { return [{ type: i1.DatePipe }]; }, propDecorators: { onResize: [{
165
+ type: HostListener,
166
+ args: ['window:resize', ['$event']]
167
+ }], data: [{
115
168
  type: Input,
116
169
  args: ["data"]
117
170
  }], title: [{
118
171
  type: Input,
119
172
  args: ["title"]
120
173
  }] } });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9wcml2YXRlL2dyYXBocy9ncmFwaC9ncmFwaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZ3JhcGhzL2dyYXBoL2dyYXBoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7O0FBU3pELE1BQU0sT0FBTyxjQUFjO0lBVXpCLFlBQ1UsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVRiLFNBQUksR0FBa0IsSUFBSSxLQUFLLEVBQVUsQ0FBQztRQUN6QyxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBSW5DLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDeEIsWUFBTyxHQUFXLENBQUMsQ0FBQztJQUlmLENBQUM7SUFFTixRQUFRO1FBRU4sSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBRWhCLGlDQUFpQztRQUNqQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBQztZQUN2QixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdCLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLENBQUM7WUFFL0MsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0MsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLElB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RyxjQUFjLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsR0FBRyxHQUFHLEdBQUcsYUFBYSxHQUFJLEdBQUcsR0FBRyxlQUFlLENBQUM7UUFFM0gsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMxQixLQUFLLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hCO1FBQ0QsS0FBSyxJQUFJLEdBQUcsQ0FBQztRQUNiLEtBQUssSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDNUIsS0FBSyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN4QjtRQUVELG9DQUFvQztRQUV0QyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OzRHQW5IVSxjQUFjO2dHQUFkLGNBQWMsdUZDVDNCLGlOQUMyRzs0RkRROUYsY0FBYztrQkFMMUIsU0FBUzsrQkFDRSxPQUFPOytGQU1GLElBQUk7c0JBQWxCLEtBQUs7dUJBQUMsTUFBTTtnQkFDRyxLQUFLO3NCQUFwQixLQUFLO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29vcmRzIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2dyYXBoLm1vZGVsJztcclxuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdncmFwaCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dyYXBoLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ncmFwaC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHcmFwaENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dChcImRhdGFcIikgZGF0YTogQXJyYXk8Q29vcmRzPiA9IG5ldyBBcnJheTxDb29yZHM+KCk7XHJcbiAgQElucHV0KFwidGl0bGVcIikgdGl0bGU6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIHN0b2NrQ2hhcnRPcHRpb25zOiBhbnk7XHJcblxyXG4gIGxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNvdW50ZXI6IG51bWJlciA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGVcclxuICAgICkge30gIFxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuXHJcbiAgICB2YXIgc2VsZiA9IHRoaXM7XHJcblxyXG4gICAgLy8gQWdnaXVzdGFtZW50byBlIHNjcml0dHVyYSBkYXRpXHJcbiAgICBpZiAodGhpcy5kYXRhLmxlbmd0aCA+IDApe1xyXG4gICAgICB2YXIgbGFzdHZhbHVlID0gdGhpcy5kYXRhWzBdO1xyXG4gICAgICB2YXIgZmlyc3R2YWx1ZSA9IHRoaXMuZGF0YVt0aGlzLmRhdGEubGVuZ3RoLTFdO1xyXG5cclxuICAgICAgdmFyIHN0b2NrQ2hhcnRNaW5pbXVtID0gbmV3IERhdGUoZmlyc3R2YWx1ZS54KTtcclxuICAgICAgdmFyIHN0b2NrQ2hhcnRNYXhpbXVtID0gbmV3IERhdGUobGFzdHZhbHVlLngpO1xyXG4gICAgICB2YXIgc3RvY2tDaGFydFRpdGxlVGV4dCA9IHRoaXMudGl0bGU7XHJcbiAgICAgIHZhciBzdG9ja0NoYXJ0ZGF0YVBvaW50cyA9IHRoaXMuZGF0YTtcclxuXHJcbiAgICAgIHRoaXMuc3RvY2tDaGFydE9wdGlvbnMgPSB7XHJcbiAgICAgICAgdGhlbWU6ICdsaWdodDInLFxyXG4gICAgICAgIGFuaW1hdGlvbkVuYWJsZWQ6IHRydWUsXHJcbiAgICAgICAgd2lkdGg6IDEwMDAsXHJcbiAgICAgICAgaGVpZ2h0OiA1MDAsXHJcbiAgICAgICAgY3JlZGl0VGV4dDogXCJcIixcclxuICAgICAgICBjcmVkaXRIcmVmOiBcIlwiLFxyXG4gICAgICAgIHRpdGxlOiB7XHJcbiAgICAgICAgICB0ZXh0OiBzdG9ja0NoYXJ0VGl0bGVUZXh0XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjaGFydHM6IFt7XHJcbiAgICAgICAgICBheGlzWDoge1xyXG4gICAgICAgICAgICBsYWJlbEZvcm1hdHRlcjogdGhpcy5sYWJlbEZvcm1hdHRlckZ1bmN0aW9uLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGRhdGE6IFt7XHJcbiAgICAgICAgICAgIHR5cGU6IFwibGluZVwiLFxyXG4gICAgICAgICAgICBkYXRhUG9pbnRzOiBzdG9ja0NoYXJ0ZGF0YVBvaW50c1xyXG4gICAgICAgICAgfV0sXHJcbiAgICAgICAgICBjdWx0dXJlOiBcIml0XCJcclxuICAgICAgICB9XSxcclxuICAgICAgICByYW5nZVNlbGVjdG9yOiB7XHJcbiAgICAgICAgICBlbmFibGVkOiBmYWxzZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbmF2aWdhdG9yOiB7XHJcbiAgICAgICAgICBzbGlkZXI6IHtcclxuICAgICAgICAgICAgbWluaW11bTogc3RvY2tDaGFydE1pbmltdW0sXHJcbiAgICAgICAgICAgIG1heGltdW06IHN0b2NrQ2hhcnRNYXhpbXVtXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICByZXNwb25zaXZlOiB0cnVlLFxyXG4gICAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2VcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcblxyXG4gICAgICB0aGlzLmxvYWRlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsYWJlbEZvcm1hdHRlckZ1bmN0aW9uKGUpIHtcclxuICAgIGxldCBsYWJlbCA9IFwiXCI7XHJcbiAgICBsZXQgZGlydHlMYWJlbDtcclxuICAgIGxldCBkYXRlID0gZS52YWx1ZTtcclxuXHJcbiAgICAgIGxldCBuZXdZZWFyOiBudW1iZXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICAgIGxldCBuZXdNb250aDogbnVtYmVyID0gZGF0ZS5nZXRNb250aCgpICsgMTtcclxuICAgICAgbGV0IG5ld01vbnRoU3RyaW5nOiBzdHJpbmc7XHJcbiAgICAgIGlmIChuZXdNb250aCA8IDEwKSB7XHJcbiAgICAgIG5ld01vbnRoU3RyaW5nID0gXCIwXCIgKyBuZXdNb250aC50b1N0cmluZygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdNb250aFN0cmluZyA9IG5ld01vbnRoLnRvU3RyaW5nKCk7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IG5ld0RheTogbnVtYmVyID0gZGF0ZS5nZXREYXRlKCk7XHJcbiAgICAgIGxldCBuZXdEYXlTdHJpbmc6IHN0cmluZztcclxuICAgICAgaWYgKG5ld0RheSA8IDEwKSB7XHJcbiAgICAgIG5ld0RheVN0cmluZyA9IFwiMFwiICsgbmV3RGF5LnRvU3RyaW5nKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgIG5ld0RheVN0cmluZyA9IG5ld0RheS50b1N0cmluZygpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBuZXdIb3VyOiBudW1iZXIgPSBkYXRlLmdldEhvdXJzKCk7XHJcbiAgICAgIGxldCBuZXdIb3VyU3RyaW5nOiBzdHJpbmc7XHJcbiAgICAgIGlmIChuZXdIb3VyIDwgMTApIHtcclxuICAgICAgbmV3SG91clN0cmluZyA9IFwiMFwiICsgbmV3SG91ci50b1N0cmluZygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdIb3VyU3RyaW5nID0gbmV3SG91ci50b1N0cmluZygpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBuZXdNaW51dGU6IG51bWJlciA9IGRhdGUuZ2V0TWludXRlcygpO1xyXG4gICAgICBsZXQgbmV3TWludXRlU3RyaW5nOiBzdHJpbmc7XHJcbiAgICAgIGlmIChuZXdNaW51dGUgPCAxMCkge1xyXG4gICAgICBuZXdNaW51dGVTdHJpbmcgPSBcIjBcIiArIG5ld01pbnV0ZS50b1N0cmluZygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdNaW51dGVTdHJpbmcgPSBuZXdNaW51dGUudG9TdHJpbmcoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZGlydHlMYWJlbCA9IG5ld0RheVN0cmluZyArIFwiL1wiICsgbmV3TW9udGhTdHJpbmcgKyBcIi9cIiArIG5ld1llYXIudG9TdHJpbmcoKSArIFwiIFwiICsgbmV3SG91clN0cmluZyAgKyBcIjpcIiArIG5ld01pbnV0ZVN0cmluZztcclxuXHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XHJcbiAgICAgICAgbGFiZWwgKz0gZGlydHlMYWJlbFtpXTtcclxuICAgICAgfVxyXG4gICAgICBsYWJlbCArPSBcIiBcIjtcclxuICAgICAgZm9yIChsZXQgaSA9IDExOyBpIDwgMTY7IGkrKykge1xyXG4gICAgICAgIGxhYmVsICs9IGRpcnR5TGFiZWxbaV07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vbGFiZWwgPSBsYWJlbC5yZXBsYWNlKFwiMDA6MDBcIixcIlwiKTtcclxuICAgIFxyXG4gICAgcmV0dXJuIGxhYmVsO1xyXG4gIH0gIFxyXG4gIFxyXG5cclxufVxyXG4iLCI8Y2FudmFzanMtc3RvY2tjaGFydCAqbmdJZj1cImxvYWRlZFwiIFtvcHRpb25zXT1cInN0b2NrQ2hhcnRPcHRpb25zXCI+PC9jYW52YXNqcy1zdG9ja2NoYXJ0PlxyXG48ZGl2IGNsYXNzPVwiZXJyb3JcIiAqbmdJZj1cIiFsb2FkZWRcIj48Yj57e3RpdGxlfX06PC9iPiBOZXNzdW4gZGF0byB0cm92YXRvIG5lbGwnaW50ZXJ2YWxsbyBzcGVjaWZpY2F0byE8L2Rpdj4iXX0=
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9wcml2YXRlL2dyYXBocy9ncmFwaC9ncmFwaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZ3JhcGhzL2dyYXBoL2dyYXBoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUd2RSxPQUFPLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBU3hDLE1BQU0sT0FBTyxjQUFjO0lBR3pCLFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFrQkQsWUFDVSxRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBakJiLFNBQUksR0FBa0IsSUFBSSxLQUFLLEVBQVUsQ0FBQztRQUN6QyxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRW5DLGVBQVUsR0FBVyxTQUFTLENBQUM7UUFVL0IsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixZQUFPLEdBQVcsQ0FBQyxDQUFDO0lBSWYsQ0FBQztJQUVOLFFBQVE7UUFFTixJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7UUFFaEIsaUNBQWlDO1FBQ2pDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFDO1lBQ3ZCLElBQUksQ0FBQyxT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RSxDQUFDLEVBQUUsRUFBRTtZQUMxQixLQUFLLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hCO1FBQ0QsS0FBSyxJQUFJLEdBQUcsQ0FBQztRQUNiLEtBQUssSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDNUIsS0FBSyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN4QjtRQUVELG9DQUFvQztRQUV0QyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OzRHQWpMVSxjQUFjO2dHQUFkLGNBQWMscUpDWjNCLGlOQUMyRzs0RkRXOUYsY0FBYztrQkFOMUIsU0FBUzsrQkFDRSxPQUFPOytGQVFqQixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU0xQixJQUFJO3NCQUFsQixLQUFLO3VCQUFDLE1BQU07Z0JBQ0csS0FBSztzQkFBcEIsS0FBSzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29vcmRzIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2dyYXBoLm1vZGVsJztcclxuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgKiBhcyBzcyBmcm9tICdzaW1wbGUtc3RhdGlzdGljcyc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdncmFwaCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dyYXBoLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ncmFwaC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgR3JhcGhDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBvblJlc2l6ZSgpIHtcclxuICAgIHRoaXMubG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmxvYWRHcmFwaChNYXRoLmZsb29yKHdpbmRvdy5pbm5lcldpZHRoLzIpKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dChcImRhdGFcIikgZGF0YTogQXJyYXk8Q29vcmRzPiA9IG5ldyBBcnJheTxDb29yZHM+KCk7XHJcbiAgQElucHV0KFwidGl0bGVcIikgdGl0bGU6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIHRyZW5kQ29sb3I6IHN0cmluZyA9ICcjRUIwMTAyJztcclxuXHJcbiAgbTogbnVtYmVyOyAvLyBtIG9mIHRoZSBsaW5lYXIgcmVncmVzc2lvblxyXG4gIHE6IG51bWJlcjsgLy8gcSBvZiB0aGUgbGluZWFyIHJlZ3Jlc3Npb25cclxuICB0cmVuZDogc3RyaW5nOyAvLyB0cmVuZCBzdHJpbmdcclxuICBsaW5lYXJSZWdyZXNzaW9uOiBBcnJheTxDb29yZHM+OyAvLyB2YXJpYWJsZSB1c2VkIHRvIHN0b3JlIHRoZSBsaW5lYXIgcmVncmVzc2lvbiBwb2ludHMgdG8gcGxvdFxyXG5cclxuXHJcbiAgc3RvY2tDaGFydE9wdGlvbnM6IGFueTtcclxuXHJcbiAgbG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY291bnRlcjogbnVtYmVyID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZVxyXG4gICAgKSB7fSAgXHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG5cclxuICAgIHZhciBzZWxmID0gdGhpcztcclxuXHJcbiAgICAvLyBBZ2dpdXN0YW1lbnRvIGUgc2NyaXR0dXJhIGRhdGlcclxuICAgIGlmICh0aGlzLmRhdGEubGVuZ3RoID4gMCl7XHJcbiAgICAgIHRoaXMubG9hZEdyYXBoKE1hdGguZmxvb3Iod2luZG93LmlubmVyV2lkdGgvMikpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbG9hZEdyYXBoKHdpZHRoOiBudW1iZXIpe1xyXG5cclxuICAgIHZhciBsYXN0dmFsdWUgPSB0aGlzLmRhdGFbMF07XHJcbiAgICB2YXIgZmlyc3R2YWx1ZSA9IHRoaXMuZGF0YVt0aGlzLmRhdGEubGVuZ3RoLTFdO1xyXG5cclxuICAgIHZhciBzdG9ja0NoYXJ0TWluaW11bSA9IG5ldyBEYXRlKGZpcnN0dmFsdWUueCk7XHJcbiAgICB2YXIgc3RvY2tDaGFydE1heGltdW0gPSBuZXcgRGF0ZShsYXN0dmFsdWUueCk7XHJcbiAgICB2YXIgc3RvY2tDaGFydFRpdGxlVGV4dCA9IHRoaXMudGl0bGU7XHJcbiAgICB2YXIgc3RvY2tDaGFydGRhdGFQb2ludHMgPSB0aGlzLmRhdGE7XHJcblxyXG4gICAgdGhpcy5saW5lYXJSZWdyZXNzaW9uID0gbmV3IEFycmF5PENvb3Jkcz4oKTtcclxuICAgIHRoaXMudHJlbmQgPSBcIlwiO1xyXG5cclxuICAgIHN0b2NrQ2hhcnRkYXRhUG9pbnRzLnJldmVyc2UoKTtcclxuICAgIGlmIChzdG9ja0NoYXJ0ZGF0YVBvaW50cy5sZW5ndGggPiAyKSB7XHJcbiAgICAgIGxldCB4ID0gW107XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpPHN0b2NrQ2hhcnRkYXRhUG9pbnRzLmxlbmd0aDsgaSArKykge1xyXG4gICAgICAgIHgucHVzaChbaSwgc3RvY2tDaGFydGRhdGFQb2ludHNbaV0ueV0pO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBwYXJhbWV0ZXJzID0gc3MubGluZWFyUmVncmVzc2lvbih4KTtcclxuICAgICAgdGhpcy5tID0gcGFyYW1ldGVycy5tO1xyXG4gICAgICB0aGlzLnEgPSBwYXJhbWV0ZXJzLmI7XHJcbiAgICAgIGlmICh0aGlzLm0gPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLnRyZW5kICs9IFwiIOKGl1wiO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5tIDwgMCkge1xyXG4gICAgICAgICAgdGhpcy50cmVuZCArPSBcIiDihphcIjtcclxuICAgICAgfVxyXG4gICAgICAvLyBjb25zb2xlLmxvZyh4KTtcclxuICAgICAgLy8gY29uc29sZS5sb2coc3RvY2tDaGFydGRhdGFQb2ludHMpO1xyXG4gICAgICBcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGk8c3RvY2tDaGFydGRhdGFQb2ludHMubGVuZ3RoOyBpICsrKSB7XHJcbiAgICAgICAgdGhpcy5saW5lYXJSZWdyZXNzaW9uLnB1c2goe3g6IHN0b2NrQ2hhcnRkYXRhUG9pbnRzW2ldLngsXHJcbiAgICAgICAgICB5OiB0aGlzLm0qaSArIHRoaXMucSxcclxuICAgICAgICAgIGxhYmVsOiBzdG9ja0NoYXJ0ZGF0YVBvaW50c1tpXS5sYWJlbCxcclxuICAgICAgICAgIG5hbWU6IHN0b2NrQ2hhcnRkYXRhUG9pbnRzW2ldLm5hbWVcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICAgIC8vdGhpcy5saW5lYXJSZWdyZXNzaW9uLnJldmVyc2UoKTtcclxuICAgICAgLy8gY29uc29sZS5sb2codGhpcy5saW5lYXJSZWdyZXNzaW9uKTtcclxuICAgICAgLy8gY29uc29sZS5sb2codGhpcy5tKTtcclxuICAgICAgLy8gY29uc29sZS5sb2codGhpcy5xKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN0b2NrQ2hhcnRPcHRpb25zID0ge1xyXG4gICAgICB0aGVtZTogJ2xpZ2h0MicsXHJcbiAgICAgIGFuaW1hdGlvbkVuYWJsZWQ6IHRydWUsXHJcbiAgICAgIHdpZHRoOiB3aWR0aCxcclxuICAgICAgaGVpZ2h0OiA1MDAsXHJcbiAgICAgIGNyZWRpdFRleHQ6IFwiXCIsXHJcbiAgICAgIGNyZWRpdEhyZWY6IFwiXCIsXHJcbiAgICAgIHRpdGxlOiB7XHJcbiAgICAgICAgdGV4dDogc3RvY2tDaGFydFRpdGxlVGV4dFxyXG4gICAgICB9LFxyXG4gICAgICBjaGFydHM6IFt7XHJcbiAgICAgICAgYXhpc1g6IHtcclxuICAgICAgICAgIGxhYmVsRm9ybWF0dGVyOiB0aGlzLmxhYmVsRm9ybWF0dGVyRnVuY3Rpb24sXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkYXRhOiBbe1xyXG4gICAgICAgICAgdHlwZTogXCJzcGxpbmVcIixcclxuICAgICAgICAgIGRhdGFQb2ludHM6IHN0b2NrQ2hhcnRkYXRhUG9pbnRzXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAvL3Rvb2xUaXBDb250ZW50OiBudWxsLFxyXG4gICAgICAgICAgdHlwZTogJ2xpbmUnLFxyXG4gICAgICAgICAgY29sb3I6IHRoaXMudHJlbmRDb2xvcixcclxuICAgICAgICAgIHNob3dJbkxlZ2VuZDogdHJ1ZSxcclxuICAgICAgICAgIGxlZ2VuZE1hcmtlclR5cGU6IFwibm9uZVwiLFxyXG4gICAgICAgICAgbWFya2VyVHlwZTogXCJub25lXCIsXHJcbiAgICAgICAgICBsZWdlbmRUZXh0OiBcIlRyZW5kXCIgKyB0aGlzLnRyZW5kLFxyXG4gICAgICAgICAgZGF0YVBvaW50czogdGhpcy5saW5lYXJSZWdyZXNzaW9uXHJcbiAgICAgICAgfV0sXHJcbiAgICAgICAgY3VsdHVyZTogXCJpdFwiXHJcbiAgICAgIH1dLFxyXG4gICAgICByYW5nZVNlbGVjdG9yOiB7XHJcbiAgICAgICAgZW5hYmxlZDogZmFsc2VcclxuICAgICAgfSxcclxuICAgICAgbmF2aWdhdG9yOiB7XHJcbiAgICAgICAgc2xpZGVyOiB7XHJcbiAgICAgICAgICBtaW5pbXVtOiBzdG9ja0NoYXJ0TWluaW11bSxcclxuICAgICAgICAgIG1heGltdW06IHN0b2NrQ2hhcnRNYXhpbXVtXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcclxuICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiBmYWxzZVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMubG9hZGVkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGxhYmVsRm9ybWF0dGVyRnVuY3Rpb24oZSkge1xyXG4gICAgbGV0IGxhYmVsID0gXCJcIjtcclxuICAgIGxldCBkaXJ0eUxhYmVsO1xyXG4gICAgbGV0IGRhdGUgPSBlLnZhbHVlO1xyXG5cclxuICAgICAgbGV0IG5ld1llYXI6IG51bWJlciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgICAgbGV0IG5ld01vbnRoOiBudW1iZXIgPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xyXG4gICAgICBsZXQgbmV3TW9udGhTdHJpbmc6IHN0cmluZztcclxuICAgICAgaWYgKG5ld01vbnRoIDwgMTApIHtcclxuICAgICAgbmV3TW9udGhTdHJpbmcgPSBcIjBcIiArIG5ld01vbnRoLnRvU3RyaW5nKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgIG5ld01vbnRoU3RyaW5nID0gbmV3TW9udGgudG9TdHJpbmcoKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgbmV3RGF5OiBudW1iZXIgPSBkYXRlLmdldERhdGUoKTtcclxuICAgICAgbGV0IG5ld0RheVN0cmluZzogc3RyaW5nO1xyXG4gICAgICBpZiAobmV3RGF5IDwgMTApIHtcclxuICAgICAgbmV3RGF5U3RyaW5nID0gXCIwXCIgKyBuZXdEYXkudG9TdHJpbmcoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgbmV3RGF5U3RyaW5nID0gbmV3RGF5LnRvU3RyaW5nKCk7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IG5ld0hvdXI6IG51bWJlciA9IGRhdGUuZ2V0SG91cnMoKTtcclxuICAgICAgbGV0IG5ld0hvdXJTdHJpbmc6IHN0cmluZztcclxuICAgICAgaWYgKG5ld0hvdXIgPCAxMCkge1xyXG4gICAgICBuZXdIb3VyU3RyaW5nID0gXCIwXCIgKyBuZXdIb3VyLnRvU3RyaW5nKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgIG5ld0hvdXJTdHJpbmcgPSBuZXdIb3VyLnRvU3RyaW5nKCk7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IG5ld01pbnV0ZTogbnVtYmVyID0gZGF0ZS5nZXRNaW51dGVzKCk7XHJcbiAgICAgIGxldCBuZXdNaW51dGVTdHJpbmc6IHN0cmluZztcclxuICAgICAgaWYgKG5ld01pbnV0ZSA8IDEwKSB7XHJcbiAgICAgIG5ld01pbnV0ZVN0cmluZyA9IFwiMFwiICsgbmV3TWludXRlLnRvU3RyaW5nKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgIG5ld01pbnV0ZVN0cmluZyA9IG5ld01pbnV0ZS50b1N0cmluZygpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBkaXJ0eUxhYmVsID0gbmV3RGF5U3RyaW5nICsgXCIvXCIgKyBuZXdNb250aFN0cmluZyArIFwiL1wiICsgbmV3WWVhci50b1N0cmluZygpICsgXCIgXCIgKyBuZXdIb3VyU3RyaW5nICArIFwiOlwiICsgbmV3TWludXRlU3RyaW5nO1xyXG5cclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1OyBpKyspIHtcclxuICAgICAgICBsYWJlbCArPSBkaXJ0eUxhYmVsW2ldO1xyXG4gICAgICB9XHJcbiAgICAgIGxhYmVsICs9IFwiIFwiO1xyXG4gICAgICBmb3IgKGxldCBpID0gMTE7IGkgPCAxNjsgaSsrKSB7XHJcbiAgICAgICAgbGFiZWwgKz0gZGlydHlMYWJlbFtpXTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy9sYWJlbCA9IGxhYmVsLnJlcGxhY2UoXCIwMDowMFwiLFwiXCIpO1xyXG4gICAgXHJcbiAgICByZXR1cm4gbGFiZWw7XHJcbiAgfSAgXHJcbiAgXHJcblxyXG59XHJcbiIsIjxjYW52YXNqcy1zdG9ja2NoYXJ0ICpuZ0lmPVwibG9hZGVkXCIgW29wdGlvbnNdPVwic3RvY2tDaGFydE9wdGlvbnNcIj48L2NhbnZhc2pzLXN0b2NrY2hhcnQ+XHJcbjxkaXYgY2xhc3M9XCJlcnJvclwiICpuZ0lmPVwiIWxvYWRlZFwiPjxiPnt7dGl0bGV9fTo8L2I+IE5lc3N1biBkYXRvIHRyb3ZhdG8gbmVsbCdpbnRlcnZhbGxvIHNwZWNpZmljYXRvITwvZGl2PiJdfQ==
@@ -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
- console.log("RECORD ngOnInit()", this.record[this.field.Name], this.field);
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,15 @@ 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';
4795
4802
  this.loaded = false;
4796
4803
  this.counter = 0;
4797
4804
  }
@@ -4799,48 +4806,92 @@ class GraphComponent {
4799
4806
  var self = this;
4800
4807
  // Aggiustamento e scrittura dati
4801
4808
  if (this.data.length > 0) {
4802
- var lastvalue = this.data[0];
4803
- var firstvalue = this.data[this.data.length - 1];
4804
- var stockChartMinimum = new Date(firstvalue.x);
4805
- var stockChartMaximum = new Date(lastvalue.x);
4806
- var stockChartTitleText = this.title;
4807
- var stockChartdataPoints = this.data;
4808
- this.stockChartOptions = {
4809
- theme: 'light2',
4810
- animationEnabled: true,
4811
- width: 1000,
4812
- height: 500,
4813
- creditText: "",
4814
- creditHref: "",
4815
- title: {
4816
- text: stockChartTitleText
4817
- },
4818
- charts: [{
4819
- axisX: {
4820
- labelFormatter: this.labelFormatterFunction,
4809
+ this.loadGraph(Math.floor(window.innerWidth / 2));
4810
+ }
4811
+ }
4812
+ loadGraph(width) {
4813
+ var lastvalue = this.data[0];
4814
+ var firstvalue = this.data[this.data.length - 1];
4815
+ var stockChartMinimum = new Date(firstvalue.x);
4816
+ var stockChartMaximum = new Date(lastvalue.x);
4817
+ var stockChartTitleText = this.title;
4818
+ var stockChartdataPoints = this.data;
4819
+ this.linearRegression = new Array();
4820
+ this.trend = "";
4821
+ stockChartdataPoints.reverse();
4822
+ if (stockChartdataPoints.length > 2) {
4823
+ let x = [];
4824
+ for (let i = 0; i < stockChartdataPoints.length; i++) {
4825
+ x.push([i, stockChartdataPoints[i].y]);
4826
+ }
4827
+ let parameters = ss.linearRegression(x);
4828
+ this.m = parameters.m;
4829
+ this.q = parameters.b;
4830
+ if (this.m > 0) {
4831
+ this.trend += " ↗";
4832
+ }
4833
+ else if (this.m < 0) {
4834
+ this.trend += " ↘";
4835
+ }
4836
+ // console.log(x);
4837
+ // console.log(stockChartdataPoints);
4838
+ for (let i = 0; i < stockChartdataPoints.length; i++) {
4839
+ this.linearRegression.push({ x: stockChartdataPoints[i].x,
4840
+ y: this.m * i + this.q,
4841
+ label: stockChartdataPoints[i].label,
4842
+ name: stockChartdataPoints[i].name
4843
+ });
4844
+ }
4845
+ //this.linearRegression.reverse();
4846
+ // console.log(this.linearRegression);
4847
+ // console.log(this.m);
4848
+ // console.log(this.q);
4849
+ }
4850
+ this.stockChartOptions = {
4851
+ theme: 'light2',
4852
+ animationEnabled: true,
4853
+ width: width,
4854
+ height: 500,
4855
+ creditText: "",
4856
+ creditHref: "",
4857
+ title: {
4858
+ text: stockChartTitleText
4859
+ },
4860
+ charts: [{
4861
+ axisX: {
4862
+ labelFormatter: this.labelFormatterFunction,
4863
+ },
4864
+ data: [{
4865
+ type: "spline",
4866
+ dataPoints: stockChartdataPoints
4821
4867
  },
4822
- data: [{
4823
- type: "line",
4824
- dataPoints: stockChartdataPoints
4825
- }],
4826
- culture: "it"
4827
- }],
4828
- rangeSelector: {
4829
- enabled: false
4830
- },
4831
- navigator: {
4832
- slider: {
4833
- minimum: stockChartMinimum,
4834
- maximum: stockChartMaximum
4835
- }
4836
- },
4837
- options: {
4838
- responsive: true,
4839
- maintainAspectRatio: false
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
4877
+ }],
4878
+ culture: "it"
4879
+ }],
4880
+ rangeSelector: {
4881
+ enabled: false
4882
+ },
4883
+ navigator: {
4884
+ slider: {
4885
+ minimum: stockChartMinimum,
4886
+ maximum: stockChartMaximum
4840
4887
  }
4841
- };
4842
- this.loaded = true;
4843
- }
4888
+ },
4889
+ options: {
4890
+ responsive: true,
4891
+ maintainAspectRatio: false
4892
+ }
4893
+ };
4894
+ this.loaded = true;
4844
4895
  }
4845
4896
  labelFormatterFunction(e) {
4846
4897
  let label = "";
@@ -4892,11 +4943,14 @@ class GraphComponent {
4892
4943
  }
4893
4944
  }
4894
4945
  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"] }] });
4946
+ 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
4947
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GraphComponent, decorators: [{
4897
4948
  type: Component,
4898
4949
  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: { data: [{
4950
+ }], ctorParameters: function () { return [{ type: i2$2.DatePipe }]; }, propDecorators: { onResize: [{
4951
+ type: HostListener,
4952
+ args: ['window:resize', ['$event']]
4953
+ }], data: [{
4900
4954
  type: Input,
4901
4955
  args: ["data"]
4902
4956
  }], title: [{