raain-app 1.4.1 → 1.4.4

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.
@@ -28,7 +28,7 @@ export class RaainConfigurationComponent {
28
28
  async reset(count = 4) {
29
29
  const points = [];
30
30
  for (let c = 0; c < count; c++) {
31
- points.push(new XYType((c + 1) * 10, (c + 1) * 10));
31
+ points.push(new XYType((c + 1) * 10, (c + 1) * 0.1));
32
32
  }
33
33
  this.points = points;
34
34
  await this.delete();
@@ -44,36 +44,37 @@ export class RaainConfigurationComponent {
44
44
  this.created = true;
45
45
  let inputs = new ConfigurationElementInput(this.points, this.minPoint, this.maxPoint, false, [], this.onDrag);
46
46
  if (this.logStyle) {
47
+ const trans = 0.4;
47
48
  inputs = new ConfigurationElementInput(this.points, this.minPoint, this.maxPoint, true, [
48
49
  {
49
- color: Tools.getTransparency(ChartScaleColors['0.4'], 0.8),
50
+ color: Tools.getTransparency(ChartScaleColors['0.4'], trans),
50
51
  yStart: Math.log10(0.1),
51
52
  yEnd: Math.log10(0.4)
52
53
  },
53
- { color: Tools.getTransparency(ChartScaleColors['1'], 0.8), yStart: Math.log10(0.4), yEnd: Math.log10(1) },
54
- { color: Tools.getTransparency(ChartScaleColors['3'], 0.8), yStart: Math.log10(1), yEnd: Math.log10(3) },
55
- { color: Tools.getTransparency(ChartScaleColors['10'], 0.8), yStart: Math.log10(3), yEnd: Math.log10(10) },
56
- { color: Tools.getTransparency(ChartScaleColors['20'], 0.8), yStart: Math.log10(10), yEnd: Math.log10(20) },
57
- { color: Tools.getTransparency(ChartScaleColors['30'], 0.8), yStart: Math.log10(20), yEnd: Math.log10(30) },
58
- { color: Tools.getTransparency(ChartScaleColors['50'], 0.8), yStart: Math.log10(30), yEnd: Math.log10(50) },
59
- { color: Tools.getTransparency(ChartScaleColors['100'], 0.8), yStart: Math.log10(50), yEnd: Math.log10(100) },
54
+ { color: Tools.getTransparency(ChartScaleColors['1'], trans), yStart: Math.log10(0.4), yEnd: Math.log10(1) },
55
+ { color: Tools.getTransparency(ChartScaleColors['3'], trans), yStart: Math.log10(1), yEnd: Math.log10(3) },
56
+ { color: Tools.getTransparency(ChartScaleColors['10'], trans), yStart: Math.log10(3), yEnd: Math.log10(10) },
57
+ { color: Tools.getTransparency(ChartScaleColors['20'], trans), yStart: Math.log10(10), yEnd: Math.log10(20) },
58
+ { color: Tools.getTransparency(ChartScaleColors['30'], trans), yStart: Math.log10(20), yEnd: Math.log10(30) },
59
+ { color: Tools.getTransparency(ChartScaleColors['50'], trans), yStart: Math.log10(30), yEnd: Math.log10(50) },
60
+ { color: Tools.getTransparency(ChartScaleColors['100'], trans), yStart: Math.log10(50), yEnd: Math.log10(100) },
60
61
  {
61
- color: Tools.getTransparency(ChartScaleColors['150'], 0.8),
62
+ color: Tools.getTransparency(ChartScaleColors['150'], trans),
62
63
  yStart: Math.log10(100),
63
64
  yEnd: Math.log10(150)
64
65
  },
65
66
  {
66
- color: Tools.getTransparency(ChartScaleColors['200'], 0.8),
67
+ color: Tools.getTransparency(ChartScaleColors['200'], trans),
67
68
  yStart: Math.log10(150),
68
69
  yEnd: Math.log10(200)
69
70
  },
70
71
  {
71
- color: Tools.getTransparency(ChartScaleColors['250'], 0.8),
72
+ color: Tools.getTransparency(ChartScaleColors['250'], trans),
72
73
  yStart: Math.log10(200),
73
74
  yEnd: Math.log10(250)
74
75
  },
75
76
  {
76
- color: Tools.getTransparency(ChartScaleColors['300'], 0.8),
77
+ color: Tools.getTransparency(ChartScaleColors['300'], trans),
77
78
  yStart: Math.log10(250),
78
79
  yEnd: Math.log10(300)
79
80
  },
@@ -87,7 +88,7 @@ export class RaainConfigurationComponent {
87
88
  });
88
89
  }
89
90
  async delete() {
90
- await this.configurationElement?.chart?.destroy();
91
+ this.configurationElement?.chart?.destroy();
91
92
  this.created = false;
92
93
  }
93
94
  async change(changes) {
@@ -111,10 +112,10 @@ export class RaainConfigurationComponent {
111
112
  }
112
113
  }
113
114
  RaainConfigurationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RaainConfigurationComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
114
- RaainConfigurationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RaainConfigurationComponent, selector: "raain-configuration", inputs: { points: "points", currentHeight: "currentHeight", currentWidth: "currentWidth", minPoint: "minPoint", maxPoint: "maxPoint", logStyle: "logStyle" }, outputs: { changedPoints: "changedPoints" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "canvasElement", first: true, predicate: ["canvasElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ion-grid>\n <ion-row>\n <ion-col id=\"col-container\">\n <div [style.height.px]=\"currentHeight\" [style.width.px]=\"currentWidth\" id=\"canvas-container\">\n <canvas #canvasElement></canvas>\n </div>\n <ion-button (click)=\"reset(2)\" size=\"small\">reset 2</ion-button>\n <ion-button (click)=\"reset(4)\" size=\"small\">reset 4</ion-button>\n <ion-button (click)=\"reset(6)\" size=\"small\">reset 6</ion-button>\n </ion-col>\n </ion-row>\n</ion-grid>\n", styles: ["#canvas-container{position:relative;width:100%;height:100%}\n"], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i1.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i1.IonRow, selector: "ion-row" }] });
115
+ RaainConfigurationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RaainConfigurationComponent, selector: "raain-configuration", inputs: { points: "points", currentHeight: "currentHeight", currentWidth: "currentWidth", minPoint: "minPoint", maxPoint: "maxPoint", logStyle: "logStyle" }, outputs: { changedPoints: "changedPoints" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "canvasElement", first: true, predicate: ["canvasElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ion-grid>\n <ion-row>\n <ion-col id=\"col-container\" size-xs=\"10\">\n <div [style.height.px]=\"currentHeight\" id=\"canvas-container\">\n <canvas #canvasElement></canvas>\n </div>\n </ion-col>\n <ion-col size-xs=\"2\">\n <ion-button (click)=\"reset(2)\" color=\"light\" shape=\"round\" size=\"small\">2</ion-button>\n <br>\n <ion-button (click)=\"reset(4)\" color=\"light\" shape=\"round\" size=\"small\">4</ion-button>\n <br>\n <ion-button (click)=\"reset(6)\" color=\"light\" shape=\"round\" size=\"small\">6</ion-button>\n <br>\n </ion-col>\n </ion-row>\n</ion-grid>\n", styles: ["#canvas-container{position:relative;width:100%;height:100%}\n"], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i1.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i1.IonRow, selector: "ion-row" }] });
115
116
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RaainConfigurationComponent, decorators: [{
116
117
  type: Component,
117
- args: [{ selector: 'raain-configuration', template: "<ion-grid>\n <ion-row>\n <ion-col id=\"col-container\">\n <div [style.height.px]=\"currentHeight\" [style.width.px]=\"currentWidth\" id=\"canvas-container\">\n <canvas #canvasElement></canvas>\n </div>\n <ion-button (click)=\"reset(2)\" size=\"small\">reset 2</ion-button>\n <ion-button (click)=\"reset(4)\" size=\"small\">reset 4</ion-button>\n <ion-button (click)=\"reset(6)\" size=\"small\">reset 6</ion-button>\n </ion-col>\n </ion-row>\n</ion-grid>\n", styles: ["#canvas-container{position:relative;width:100%;height:100%}\n"] }]
118
+ args: [{ selector: 'raain-configuration', template: "<ion-grid>\n <ion-row>\n <ion-col id=\"col-container\" size-xs=\"10\">\n <div [style.height.px]=\"currentHeight\" id=\"canvas-container\">\n <canvas #canvasElement></canvas>\n </div>\n </ion-col>\n <ion-col size-xs=\"2\">\n <ion-button (click)=\"reset(2)\" color=\"light\" shape=\"round\" size=\"small\">2</ion-button>\n <br>\n <ion-button (click)=\"reset(4)\" color=\"light\" shape=\"round\" size=\"small\">4</ion-button>\n <br>\n <ion-button (click)=\"reset(6)\" color=\"light\" shape=\"round\" size=\"small\">6</ion-button>\n <br>\n </ion-col>\n </ion-row>\n</ion-grid>\n", styles: ["#canvas-container{position:relative;width:100%;height:100%}\n"] }]
118
119
  }], ctorParameters: function () { return [{ type: i0.NgZone }]; }, propDecorators: { points: [{
119
120
  type: Input
120
121
  }], changedPoints: [{
@@ -136,4 +137,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
136
137
  type: HostListener,
137
138
  args: ['window:resize', ['$event']]
138
139
  }] } });
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFhaW4tY29uZmlndXJhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9yYWFpbi1jb25maWd1cmF0aW9uL3JhYWluLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvcmFhaW4tY29uZmlndXJhdGlvbi9yYWFpbi1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZ0JBQWdCLEVBQXdCLHlCQUF5QixFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDbkgsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLFdBQVcsQ0FBQzs7O0FBT2pDLE1BQU0sT0FBTywyQkFBMkI7SUErQnRDLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBekIzQixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFZLENBQUM7UUFTN0MsYUFBUSxHQUFXLEVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUM7UUFHaEMsYUFBUSxHQUFXLEVBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFDLENBQUM7UUFHcEMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQVd0QixJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsRUFBRTtRQUMxQixDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZD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SUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBQztnQkFDekcsRUFBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBQztnQkFDekcsRUFBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBQztnQkFDekcsRUFBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBQztnQkFDM0c7b0JBQ0UsS0FBSyxFQUFFLEtBQUssQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDO29CQUMxRCxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7b0JBQ3ZCLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztpQkFDdEI7Z0JBQ0Q7b0JBQ0UsS0FBSyxFQUFFLEtBQUssQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDO29CQUMxRCxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxH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RGQsS0FBSztnQkFJSSxhQUFhO3NCQUR0QixTQUFTO3VCQUFDLGVBQWU7Z0JBd0NsQixRQUFRO3NCQURmLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDaGFydFNjYWxlQ29sb3JzLCBDb25maWd1cmF0aW9uRWxlbWVudCwgQ29uZmlndXJhdGlvbkVsZW1lbnRJbnB1dCwgRWxlbWVudHNGYWN0b3J5LCBUb29sc30gZnJvbSAncmFhaW4tdWknO1xuaW1wb3J0IHtYWVR5cGV9IGZyb20gJy4uL3h5dHlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JhYWluLWNvbmZpZ3VyYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcmFhaW4tY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JhYWluLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUmFhaW5Db25maWd1cmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwb2ludHM6IFhZVHlwZVtdO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY2hhbmdlZFBvaW50cyA9IG5ldyBFdmVudEVtaXR0ZXI8WFlUeXBlW10+KCk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGN1cnJlbnRIZWlnaHQ6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY3VycmVudFdpZHRoOiBudW1iZXI7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG1pblBvaW50OiBYWVR5cGUgPSB7eDogMCwgeTogMH07XG5cbiAgQElucHV0KClcbiAgcHVibGljIG1heFBvaW50OiBYWVR5cGUgPSB7eDogMzAwLCB5OiAxMDB9O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsb2dTdHlsZSA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ2NhbnZhc0VsZW1lbnQnKVxuICBwcm90ZWN0ZWQgY2FudmFzRWxlbWVudDogRWxlbWVudFJlZjtcblxuICBwcml2YXRlIGNvbmZpZ3VyYXRpb25FbGVtZW50OiBDb25maWd1cmF0aW9uRWxlbWVudDtcbiAgcHJpdmF0ZSBvbkRyYWc7XG4gIHByaXZhdGUgb25TaXplQ2hhbmdlZDtcbiAgcHJpdmF0ZSBjcmVhdGVkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdab25lOiBOZ1pvbmUpIHtcbiAgICB0aGlzLm9uU2l6ZUNoYW5nZWQgPSAoKSA9PiB7XG4gICAgfTtcbiAgICB0aGlzLm9uRHJhZyA9IChlOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuY2hhbmdlZFBvaW50cy5lbWl0KHRoaXMucG9pbnRzKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuY3JlYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlKGNoYW5nZXMpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVsZXRlKCk7XG4gIH1cblxuICBhc3luYyByZXNldChjb3VudCA9IDQpIHtcbiAgICBjb25zdCBwb2ludHMgPSBbXTtcbiAgICBmb3IgKGxldCBjID0gMDsgYyA8IGNvdW50OyBjKyspIHtcbiAgICAgIHBvaW50cy5wdXNoKG5ldyBYWVR5cGUoKGMgKyAxKSAqIDEwLCAoYyArIDEpICogMTApKTtcbiAgICB9XG4gICAgdGhpcy5wb2ludHMgPSBwb2ludHM7XG5cbiAgICBhd2FpdCB0aGlzLmRlbGV0ZSgpO1xuICAgIHRoaXMuY3JlYXRlKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgcHJpdmF0ZSBvblJlc2l6ZShldmVudDogYW55KTogdm9pZCB7XG4gICAgLy8gdGhpcy51cGRhdGVNYXBTaXplKCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZSgpIHtcbiAgICBpZiAodGhpcy5jcmVhdGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY3JlYXRlZCA9IHRydWU7XG5cbiAgICBsZXQgaW5wdXRzID0gbmV3IENvbmZpZ3VyYXRpb25FbGVtZW50SW5wdXQodGhpcy5wb2ludHMsXG4gICAgICB0aGlzLm1pblBvaW50LFxuICAgICAgdGhpcy5tYXhQb2ludCxcbiAgICAgIGZhbHNlLCBbXSxcbiAgICAgIHRoaXMub25EcmFnKTtcbiAgICBpZiAodGhpcy5sb2dTdHlsZSkge1xuICAgICAgaW5wdXRzID0gbmV3IENvbmZpZ3VyYXRpb25FbGVtZW50SW5wdXQodGhpcy5wb2ludHMsXG4gICAgICAgIHRoaXMubWluUG9pbnQsXG4gICAgICAgIHRoaXMubWF4UG9pbnQsXG4gICAgICAgIHRydWUsXG4gICAgICAgIFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb2xvcjogVG9vbHMuZ2V0VHJhbnNwYXJlbmN5KENoYXJ0U2NhbGVDb2xvcnNbJzAuNCddLCAwLjgpLFxuICAgICAgICAgICAgeVN0YXJ0OiBNYXRoLmxvZzEwKDAuMSksXG4gICAgICAgICAgICB5RW5kOiBNYXRoLmxvZzEwKDAuNClcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtjb2xvcjogVG9vbHMuZ2V0VHJhbnNwYXJlbmN5KENoYXJ0U2NhbGVDb2xvcnNbJzEnXSwgMC44KSwgeVN0YXJ0OiBNYXRoLmxvZzEwKDAuNCksIHlFbmQ6IE1hdGgubG9nMTAoMSl9LFxuICAgICAgICAgIHtjb2xvcjogVG9vbHMuZ2V0VHJhbnNwYXJlbmN5KENoYXJ0U2NhbGVDb2xvcnNbJzMnXSwgMC44KSwgeVN0YXJ0OiBNYXRoLmxvZzEwKDEpLCB5RW5kOiBNYXRoLmxvZzEwKDMpfSxcbiAgICAgICAgICB7Y29sb3I6IFRvb2xzLmdldFRyYW5zcGFyZW5jeShDaGFydFNjYWxlQ29sb3JzWycxMCddLCAwLjgpLCB5U3RhcnQ6IE1hdGgubG9nMTAoMyksIHlFbmQ6IE1hdGgubG9nMTAoMTApfSxcbiAgICAgICAgICB7Y29sb3I6IFRvb2xzLmdldFRyYW5zcGFyZW5jeShDaGFydFNjYWxlQ29sb3JzWycyMCddLCAwLjgpLCB5U3RhcnQ6IE1hdGgubG9nMTAoMTApLCB5RW5kOiBNYXRoLmxvZzEwKDIwKX0sXG4gICAgICAgICAge2NvbG9yOiBUb29scy5nZXRUcmFuc3BhcmVuY3koQ2hhcnRTY2FsZUNvbG9yc1snMzAnXSwgMC44KSwgeVN0YXJ0OiBNYXRoLmxvZzEwKDIwKSwgeUVuZDogTWF0aC5sb2cxMCgzMCl9LFxuICAgICAgICAgIHtjb2xvcjogVG9vbHMuZ2V0VHJhbnNwYXJlbmN5KENoYXJ0U2NhbGVDb2xvcnNbJzUwJ10sIDAuOCksIHlTdGFydDogTWF0aC5sb2cxMCgzMCksIHlFbmQ6IE1hdGgubG9nMTAoNTApfSxcbiAgICAgICAgICB7Y29sb3I6IFRvb2xzLmdldFRyYW5zcGFyZW5jeShDaGFydFNjYWxlQ29sb3JzWycxMDAnXSwgMC44KSwgeVN0YXJ0OiBNYXRoLmxvZzEwKDUwKSwgeUVuZDogTWF0aC5sb2cxMCgxMDApfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb2xvcjogVG9vbHMuZ2V0VHJhbnNwYXJlbmN5KENoYXJ0U2NhbGVDb2xvcnNbJzE1MCddLCAwLjgpLFxuICAgICAgICAgICAgeVN0YXJ0OiBNYXRoLmxvZzEwKDEwMCksXG4gICAgICAgICAgICB5RW5kOiBNYXRoLmxvZzEwKDE1MClcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbG9yOiBUb29scy5nZXRUcmFuc3BhcmVuY3koQ2hhcnRTY2FsZUNvbG9yc1snMjAwJ10sIDAuOCksXG4gICAgICAgICAgICB5U3RhcnQ6IE1hdGgubG9nMTAoMTUwKSxcbiAgICAgICAgICAgIHlFbmQ6IE1hdGgubG9nMTAoMjAwKVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29sb3I6IFRvb2xzLmdldFRyYW5zcGFyZW5jeShDaGFydFNjYWxlQ29sb3JzWycyNTAnXSwgMC44KSxcbiAgICAgICAgICAgIHlTdGFydDogTWF0aC5sb2cxMCgyMDApLFxuICAgICAgICAgICAgeUVuZDogTWF0aC5sb2cxMCgyNTApXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb2xvcjogVG9vbHMuZ2V0VHJhbnNwYXJlbmN5KENoYXJ0U2NhbGVDb2xvcnNbJzMwMCddLCAwLjgpLFxuICAgICAgICAgICAgeVN0YXJ0OiBNYXRoLmxvZzEwKDI1MCksXG4gICAgICAgICAgICB5RW5kOiBNYXRoLmxvZzEwKDMwMClcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICB0aGlzLm9uRHJhZyk7XG4gICAgfVxuXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGZhY3RvcnkgPSBuZXcgRWxlbWVudHNGYWN0b3J5KCk7XG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbkVsZW1lbnQgPSBmYWN0b3J5LmNyZWF0ZUNvbmZpZ3VyYXRpb24odGhpcy5jYW52YXNFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIGlucHV0cyk7XG4gICAgICB9LCAxMCk7XG4gICAgfSk7XG5cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZGVsZXRlKCkge1xuICAgIGF3YWl0IHRoaXMuY29uZmlndXJhdGlvbkVsZW1lbnQ/LmNoYXJ0Py5kZXN0cm95KCk7XG4gICAgdGhpcy5jcmVhdGVkID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNoYW5nZShjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgLy8gY29uc29sZS5sb2coJ2NoYW5nZWQnLCBjaGFuZ2VzKTtcbiAgICBhd2FpdCB0aGlzLmRlbGV0ZSgpO1xuICAgIHRoaXMuY3JlYXRlKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZU1hcFNpemUoKTogdm9pZCB7XG5cbiAgICBjb25zdCBtYXBEaXZXaWR0aCA9IHRoaXMuY2FudmFzRWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGU/LnBhcmVudE5vZGVbJ2NsaWVudFdpZHRoJ107XG4gICAgY29uc3QgcGFkZGluZyA9IDIwO1xuICAgIGxldCBjdXJyZW50V2lkdGggPSBtYXBEaXZXaWR0aCB8fFxuICAgICAgKHdpbmRvdy5pbm5lcldpZHRoIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCB8fCBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoKTtcbiAgICBjb25zdCBjdXJyZW50SGVpZ2h0ID0gdGhpcy5jdXJyZW50SGVpZ2h0IHx8XG4gICAgICAod2luZG93LmlubmVySGVpZ2h0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgfHwgZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQpO1xuICAgIGN1cnJlbnRXaWR0aCAtPSBwYWRkaW5nO1xuICAgIHRoaXMuY3VycmVudFdpZHRoID0gY3VycmVudFdpZHRoO1xuICAgIHRoaXMuY3VycmVudEhlaWdodCA9IGN1cnJlbnRIZWlnaHQ7XG5cbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy5vblNpemVDaGFuZ2VkKCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxpb24tZ3JpZD5cbiAgPGlvbi1yb3c+XG4gICAgPGlvbi1jb2wgaWQ9XCJjb2wtY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IFtzdHlsZS5oZWlnaHQucHhdPVwiY3VycmVudEhlaWdodFwiIFtzdHlsZS53aWR0aC5weF09XCJjdXJyZW50V2lkdGhcIiBpZD1cImNhbnZhcy1jb250YWluZXJcIj5cbiAgICAgICAgPGNhbnZhcyAjY2FudmFzRWxlbWVudD48L2NhbnZhcz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cInJlc2V0KDIpXCIgc2l6ZT1cInNtYWxsXCI+cmVzZXQgMjwvaW9uLWJ1dHRvbj5cbiAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJyZXNldCg0KVwiIHNpemU9XCJzbWFsbFwiPnJlc2V0IDQ8L2lvbi1idXR0b24+XG4gICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwicmVzZXQoNilcIiBzaXplPVwic21hbGxcIj5yZXNldCA2PC9pb24tYnV0dG9uPlxuICAgIDwvaW9uLWNvbD5cbiAgPC9pb24tcm93PlxuPC9pb24tZ3JpZD5cbiJdfQ==
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFhaW4tY29uZmlndXJhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9yYWFpbi1jb25maWd1cmF0aW9uL3JhYWluLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvcmFhaW4tY29uZmlndXJhdGlvbi9yYWFpbi1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZ0JBQWdCLEVBQXdCLHlCQUF5QixFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDbkgsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLFdBQVcsQ0FBQzs7O0FBT2pDLE1BQU0sT0FBTywyQkFBMkI7SUErQnRDLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBekIzQixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFZLENBQUM7UUFTN0MsYUFBUSxHQUFXLEVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUM7UUFHaEMsYUFBUSxHQUFXLEVBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFDLENBQUM7UUFHcEMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQVd0QixJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsRUFBRTtRQUMxQixDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZD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LEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUM7Z0JBQzNHLEVBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUM7Z0JBQzNHLEVBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUM7Z0JBQzNHLEVBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUM7Z0JBQzdHO29CQUNFLEtBQUssRUFBRSxLQUFLLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQztvQkFDNUQsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO29CQUN2QixJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7aUJBQ3RCO2dCQUNEO29CQUNFLEtBQUssRUFBRSxLQUFLLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQztvQkFDNUQsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO29CQUN2QixJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7aUJBQ3RCO2dCQUNEO29CQUNFLEtBQUssRUFBRSxLQUFLLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQztvQkFDNUQsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO29CQUN2QixJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7aUJBQ3RCO2dCQUNEO29CQUNFLEtBQUssRUFBRSxLQUFLLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQztvQkFDNUQsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO29CQUN2QixJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7aUJBQ3RCO2FBQ0YsRUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDaEI7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNqQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLE1BQU0sT0FBTyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDcEcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ1QsQ0FBQyxDQUFDLENBQUM7SUFFTCxDQUFDO0lBRU8sS0FBSyxDQUFDLE1BQU07UUFDbEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUM1QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFzQjtRQUN6QyxtQ0FBbUM7UUFDbkMsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxhQUFhO1FBRW5CLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0YsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksWUFBWSxHQUFHLFdBQVc7WUFDNUIsQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0YsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWE7WUFDdEMsQ0FBQyxNQUFNLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDOUYsWUFBWSxJQUFJLE9BQU8sQ0FBQztRQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUVuQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7eUhBM0pVLDJCQUEyQjs2R0FBM0IsMkJBQTJCLHljQ3RCeEMsNm5CQWlCQTs0RkRLYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UscUJBQXFCOzZGQU94QixNQUFNO3NCQURaLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsTUFBTTtnQkFJQSxhQUFhO3NCQURuQixLQUFLO2dCQUlDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBSUMsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUksYUFBYTtzQkFEdEIsU0FBUzt1QkFBQyxlQUFlO2dCQXVDbEIsUUFBUTtzQkFEZixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q2hhcnRTY2FsZUNvbG9ycywgQ29uZmlndXJhdGlvbkVsZW1lbnQsIENvbmZpZ3VyYXRpb25FbGVtZW50SW5wdXQsIEVsZW1lbnRzRmFjdG9yeSwgVG9vbHN9IGZyb20gJ3JhYWluLXVpJztcbmltcG9ydCB7WFlUeXBlfSBmcm9tICcuLi94eXR5cGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyYWFpbi1jb25maWd1cmF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JhYWluLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yYWFpbi1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFJhYWluQ29uZmlndXJhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0NoZWNrZWQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcG9pbnRzOiBYWVR5cGVbXTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNoYW5nZWRQb2ludHMgPSBuZXcgRXZlbnRFbWl0dGVyPFhZVHlwZVtdPigpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjdXJyZW50SGVpZ2h0OiBudW1iZXI7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGN1cnJlbnRXaWR0aDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtaW5Qb2ludDogWFlUeXBlID0ge3g6IDAsIHk6IDB9O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXhQb2ludDogWFlUeXBlID0ge3g6IDMwMCwgeTogMTAwfTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbG9nU3R5bGUgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdjYW52YXNFbGVtZW50JylcbiAgcHJvdGVjdGVkIGNhbnZhc0VsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgcHJpdmF0ZSBjb25maWd1cmF0aW9uRWxlbWVudDogQ29uZmlndXJhdGlvbkVsZW1lbnQ7XG4gIHByaXZhdGUgb25EcmFnO1xuICBwcml2YXRlIG9uU2l6ZUNoYW5nZWQ7XG4gIHByaXZhdGUgY3JlYXRlZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5nWm9uZTogTmdab25lKSB7XG4gICAgdGhpcy5vblNpemVDaGFuZ2VkID0gKCkgPT4ge1xuICAgIH07XG4gICAgdGhpcy5vbkRyYWcgPSAoZTogYW55KSA9PiB7XG4gICAgICB0aGlzLmNoYW5nZWRQb2ludHMuZW1pdCh0aGlzLnBvaW50cyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNyZWF0ZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZShjaGFuZ2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlbGV0ZSgpO1xuICB9XG5cbiAgYXN5bmMgcmVzZXQoY291bnQgPSA0KSB7XG4gICAgY29uc3QgcG9pbnRzID0gW107XG4gICAgZm9yIChsZXQgYyA9IDA7IGMgPCBjb3VudDsgYysrKSB7XG4gICAgICBwb2ludHMucHVzaChuZXcgWFlUeXBlKChjICsgMSkgKiAxMCwgKGMgKyAxKSAqIDAuMSkpO1xuICAgIH1cbiAgICB0aGlzLnBvaW50cyA9IHBvaW50cztcbiAgICBhd2FpdCB0aGlzLmRlbGV0ZSgpO1xuICAgIHRoaXMuY3JlYXRlKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgcHJpdmF0ZSBvblJlc2l6ZShldmVudDogYW55KTogdm9pZCB7XG4gICAgLy8gdGhpcy51cGRhdGVNYXBTaXplKCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZSgpIHtcbiAgICBpZiAodGhpcy5jcmVhdGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY3JlYXRlZCA9IHRydWU7XG5cbiAgICBsZXQgaW5wdXRzID0gbmV3IENvbmZpZ3VyYXRpb25FbGVtZW50SW5wdXQodGhpcy5wb2ludHMsXG4gICAgICB0aGlzLm1pblBvaW50LFxuICAgICAgdGhpcy5tYXhQb2ludCxcbiAgICAgIGZhbHNlLCBbXSxcbiAgICAgIHRoaXMub25EcmFnKTtcbiAgICBpZiAodGhpcy5sb2dTdHlsZSkge1xuICAgICAgY29uc3QgdHJhbnMgPSAwLjQ7XG4gICAgICBpbnB1dHMgPSBuZXcgQ29uZmlndXJhdGlvbkVsZW1lbnRJbnB1dCh0aGlzLnBvaW50cyxcbiAgICAgICAgdGhpcy5taW5Qb2ludCxcbiAgICAgICAgdGhpcy5tYXhQb2ludCxcbiAgICAgICAgdHJ1ZSxcbiAgICAgICAgW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbG9yOiBUb29scy5nZXRUcmFuc3BhcmVuY3koQ2hhcnRTY2FsZUNvbG9yc1snMC40J10sIHRyYW5zKSxcbiAgICAgICAgICAgIHlTdGFydDogTWF0aC5sb2cxMCgwLjEpLFxuICAgICAgICAgICAgeUVuZDogTWF0aC5sb2cxMCgwLjQpXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7Y29sb3I6IFRvb2xzLmdldFRyYW5zcGFyZW5jeShDaGFydFNjYWxlQ29sb3JzWycxJ10sIHRyYW5zKSwgeVN0YXJ0OiBNYXRoLmxvZzEwKDAuNCksIHlFbmQ6IE1hdGgubG9nMTAoMSl9LFxuICAgICAgICAgIHtjb2xvcjogVG9vbHMuZ2V0VHJhbnNwYXJlbmN5KENoYXJ0U2NhbGVDb2xvcnNbJzMnXSwgdHJhbnMpLCB5U3RhcnQ6IE1hdGgubG9nMTAoMSksIHlFbmQ6IE1hdGgubG9nMTAoMyl9LFxuICAgICAgICAgIHtjb2xvcjogVG9vbHMuZ2V0VHJhbnNwYXJlbmN5KENoYXJ0U2NhbGVDb2xvcnNbJzEwJ10sIHRyYW5zKSwgeVN0YXJ0OiBNYXRoLmxvZzEwKDMpLCB5RW5kOiBNYXRoLmxvZzEwKDEwKX0sXG4gICAgICAgICAge2NvbG9yOiBUb29scy5nZXRUcmFuc3BhcmVuY3koQ2hhcnRTY2FsZUNvbG9yc1snMjAnXSwgdHJhbnMpLCB5U3RhcnQ6IE1hdGgubG9nMTAoMTApLCB5RW5kOiBNYXRoLmxvZzEwKDIwKX0sXG4gICAgICAgICAge2NvbG9yOiBUb29scy5nZXRUcmFuc3BhcmVuY3koQ2hhcnRTY2FsZUNvbG9yc1snMzAnXSwgdHJhbnMpLCB5U3RhcnQ6IE1hdGgubG9nMTAoMjApLCB5RW5kOiBNYXRoLmxvZzEwKDMwKX0sXG4gICAgICAgICAge2NvbG9yOiBUb29scy5nZXRUcmFuc3BhcmVuY3koQ2hhcnRTY2FsZUNvbG9yc1snNTAnXSwgdHJhbnMpLCB5U3RhcnQ6IE1hdGgubG9nMTAoMzApLCB5RW5kOiBNYXRoLmxvZzEwKDUwKX0sXG4gICAgICAgICAge2NvbG9yOiBUb29scy5nZXRUcmFuc3BhcmVuY3koQ2hhcnRTY2FsZUNvbG9yc1snMTAwJ10sIHRyYW5zKSwgeVN0YXJ0OiBNYXRoLmxvZzEwKDUwKSwgeUVuZDogTWF0aC5sb2cxMCgxMDApfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb2xvcjogVG9vbHMuZ2V0VHJhbnNwYXJlbmN5KENoYXJ0U2NhbGVDb2xvcnNbJzE1MCddLCB0cmFucyksXG4gICAgICAgICAgICB5U3RhcnQ6IE1hdGgubG9nMTAoMTAwKSxcbiAgICAgICAgICAgIHlFbmQ6IE1hdGgubG9nMTAoMTUwKVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29sb3I6IFRvb2xzLmdldFRyYW5zcGFyZW5jeShDaGFydFNjYWxlQ29sb3JzWycyMDAnXSwgdHJhbnMpLFxuICAgICAgICAgICAgeVN0YXJ0OiBNYXRoLmxvZzEwKDE1MCksXG4gICAgICAgICAgICB5RW5kOiBNYXRoLmxvZzEwKDIwMClcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbG9yOiBUb29scy5nZXRUcmFuc3BhcmVuY3koQ2hhcnRTY2FsZUNvbG9yc1snMjUwJ10sIHRyYW5zKSxcbiAgICAgICAgICAgIHlTdGFydDogTWF0aC5sb2cxMCgyMDApLFxuICAgICAgICAgICAgeUVuZDogTWF0aC5sb2cxMCgyNTApXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb2xvcjogVG9vbHMuZ2V0VHJhbnNwYXJlbmN5KENoYXJ0U2NhbGVDb2xvcnNbJzMwMCddLCB0cmFucyksXG4gICAgICAgICAgICB5U3RhcnQ6IE1hdGgubG9nMTAoMjUwKSxcbiAgICAgICAgICAgIHlFbmQ6IE1hdGgubG9nMTAoMzAwKVxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHRoaXMub25EcmFnKTtcbiAgICB9XG5cbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBFbGVtZW50c0ZhY3RvcnkoKTtcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uRWxlbWVudCA9IGZhY3RvcnkuY3JlYXRlQ29uZmlndXJhdGlvbih0aGlzLmNhbnZhc0VsZW1lbnQubmF0aXZlRWxlbWVudCwgaW5wdXRzKTtcbiAgICAgIH0sIDEwKTtcbiAgICB9KTtcblxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBkZWxldGUoKSB7XG4gICAgdGhpcy5jb25maWd1cmF0aW9uRWxlbWVudD8uY2hhcnQ/LmRlc3Ryb3koKTtcbiAgICB0aGlzLmNyZWF0ZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2hhbmdlKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAvLyBjb25zb2xlLmxvZygnY2hhbmdlZCcsIGNoYW5nZXMpO1xuICAgIGF3YWl0IHRoaXMuZGVsZXRlKCk7XG4gICAgdGhpcy5jcmVhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlTWFwU2l6ZSgpOiB2b2lkIHtcblxuICAgIGNvbnN0IG1hcERpdldpZHRoID0gdGhpcy5jYW52YXNFbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50Tm9kZT8ucGFyZW50Tm9kZVsnY2xpZW50V2lkdGgnXTtcbiAgICBjb25zdCBwYWRkaW5nID0gMjA7XG4gICAgbGV0IGN1cnJlbnRXaWR0aCA9IG1hcERpdldpZHRoIHx8XG4gICAgICAod2luZG93LmlubmVyV2lkdGggfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIHx8IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGgpO1xuICAgIGNvbnN0IGN1cnJlbnRIZWlnaHQgPSB0aGlzLmN1cnJlbnRIZWlnaHQgfHxcbiAgICAgICh3aW5kb3cuaW5uZXJIZWlnaHQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCB8fCBkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodCk7XG4gICAgY3VycmVudFdpZHRoIC09IHBhZGRpbmc7XG4gICAgdGhpcy5jdXJyZW50V2lkdGggPSBjdXJyZW50V2lkdGg7XG4gICAgdGhpcy5jdXJyZW50SGVpZ2h0ID0gY3VycmVudEhlaWdodDtcblxuICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICB0aGlzLm9uU2l6ZUNoYW5nZWQoKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGlvbi1ncmlkPlxuICA8aW9uLXJvdz5cbiAgICA8aW9uLWNvbCBpZD1cImNvbC1jb250YWluZXJcIiBzaXplLXhzPVwiMTBcIj5cbiAgICAgIDxkaXYgW3N0eWxlLmhlaWdodC5weF09XCJjdXJyZW50SGVpZ2h0XCIgaWQ9XCJjYW52YXMtY29udGFpbmVyXCI+XG4gICAgICAgIDxjYW52YXMgI2NhbnZhc0VsZW1lbnQ+PC9jYW52YXM+XG4gICAgICA8L2Rpdj5cbiAgICA8L2lvbi1jb2w+XG4gICAgPGlvbi1jb2wgc2l6ZS14cz1cIjJcIj5cbiAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJyZXNldCgyKVwiIGNvbG9yPVwibGlnaHRcIiBzaGFwZT1cInJvdW5kXCIgc2l6ZT1cInNtYWxsXCI+MjwvaW9uLWJ1dHRvbj5cbiAgICAgIDxicj5cbiAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJyZXNldCg0KVwiIGNvbG9yPVwibGlnaHRcIiBzaGFwZT1cInJvdW5kXCIgc2l6ZT1cInNtYWxsXCI+NDwvaW9uLWJ1dHRvbj5cbiAgICAgIDxicj5cbiAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJyZXNldCg2KVwiIGNvbG9yPVwibGlnaHRcIiBzaGFwZT1cInJvdW5kXCIgc2l6ZT1cInNtYWxsXCI+NjwvaW9uLWJ1dHRvbj5cbiAgICAgIDxicj5cbiAgICA8L2lvbi1jb2w+XG4gIDwvaW9uLXJvdz5cbjwvaW9uLWdyaWQ+XG4iXX0=
@@ -1,10 +1,12 @@
1
- import { CartesianMeasureValue } from 'raain-model';
2
- import { CartesianMapValue, TimeframeContainers } from 'raain-ui';
1
+ import { CartesianMeasureValue, CartesianTools } from 'raain-model';
2
+ import { CartesianMapValue } from 'raain-ui';
3
3
  export class ReportManager {
4
4
  constructor(rainNode, radarService, profileService) {
5
5
  this.rainNode = rainNode;
6
6
  this.radarService = radarService;
7
7
  this.profileService = profileService;
8
+ this.cartesianTools = new CartesianTools();
9
+ this.cartesianTools.buildLatLngEarthMap();
8
10
  }
9
11
  async setDate(dateShown) {
10
12
  const { values, timeframesFromRadars } = await this.refreshTimeframesFromRadars(dateShown, dateShown);
@@ -40,18 +42,15 @@ export class ReportManager {
40
42
  return [];
41
43
  }
42
44
  let values = [];
43
- const rainNode = this.rainNode;
44
- const containers = [];
45
- const newCreatedTimeframeContainers = new TimeframeContainers(containers);
46
45
  try {
47
46
  const rainNodeCartesianMap = await this.profileService
48
- .getRainComputationCartesianMapById(rainNode.getId(), target.rainComputationId);
47
+ .getRainComputationCartesianMapById(this.rainNode.getId(), target.rainComputationId);
49
48
  if (rainNodeCartesianMap) {
50
49
  rainNodeCartesianMap.getMapData().forEach(m => {
51
50
  if (m.values) {
52
51
  m.values.forEach(v => {
53
52
  const cartesianMeasureValue = CartesianMeasureValue.From(v);
54
- values = values.concat(CartesianMapValue.From(cartesianMeasureValue.getCartesianValues(), cartesianMeasureValue.getCartesianPixelWidth()));
53
+ values = values.concat(CartesianMapValue.From(cartesianMeasureValue.getCartesianValues(), this.cartesianTools));
55
54
  });
56
55
  }
57
56
  });
@@ -63,4 +62,4 @@ export class ReportManager {
63
62
  return values;
64
63
  }
65
64
  }
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVwb3J0TWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3Rvb2xzL1JlcG9ydE1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHFCQUFxQixFQUFtQyxNQUFNLGFBQWEsQ0FBQztBQUNwRixPQUFPLEVBQUMsaUJBQWlCLEVBQXNCLG1CQUFtQixFQUFDLE1BQU0sVUFBVSxDQUFDO0FBSXBGLE1BQU0sT0FBTyxhQUFhO0lBS3hCLFlBQ1ksUUFBa0IsRUFDbEIsWUFBMEIsRUFDMUIsY0FBOEI7UUFGOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFDMUMsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBZTtRQUMzQixNQUFNLEVBQUMsTUFBTSxFQUFFLG9CQUFvQixFQUFDLEdBQUcsTUFBTSxJQUFJLENBQUMsMkJBQTJCLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3BHLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxrQkFBdUMsRUFBRSxFQUFFO1lBQ3ZELE1BQU0sU0FBUyxHQUFHLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUNuRCxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM3QixPQUFPLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDaEQsQ0FBQyxDQUFBO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7SUFDMUIsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBVyxFQUFFLEdBQVM7UUFD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QUFDLE1BQW1DLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFOzRCQUNqRCxNQUFNLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDNUQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUMzQyxxQkFBcUIsQ0FBQyxrQkFBa0IsRUFBRSxFQUMxQyxxQkFBcUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUMsQ0FBQzt3QkFDckQsQ0FBQyxDQUFDLENBQUM7cUJBQ0o7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7YUFDSjtTQUNGO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsSUFBSSxDQUFDLDhCQUE4QixFQUFFLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUMzRTtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2FydGVzaWFuTWVhc3VyZVZhbHVlLCBJQ2FydGVzaWFuTWVhc3VyZVZhbHVlLCBSYWluTm9kZX0gZnJvbSAncmFhaW4tbW9kZWwnO1xuaW1wb3J0IHtDYXJ0ZXNpYW5NYXBWYWx1ZSwgVGltZWZyYW1lQ29udGFpbmVyLCBUaW1lZnJhbWVDb250YWluZXJzfSBmcm9tICdyYWFpbi11aSc7XG5pbXBvcnQge1JhZGFyU2VydmljZX0gZnJvbSAnLi4vcmFkYXIuc2VydmljZSc7XG5pbXBvcnQge1Byb2ZpbGVTZXJ2aWNlfSBmcm9tICcuLi9wcm9maWxlLnNlcnZpY2UnO1xuXG5leHBvcnQgY2xhc3MgUmVwb3J0TWFuYWdlciB7XG5cbiAgcHVibGljIHN1bUZuOiBhbnk7XG4gIHB1YmxpYyBzdW1WYWx1ZXM6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmFpbk5vZGU6IFJhaW5Ob2RlLFxuICAgIHByb3RlY3RlZCByYWRhclNlcnZpY2U6IFJhZGFyU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcHJvZmlsZVNlcnZpY2U6IFByb2ZpbGVTZXJ2aWNlKSB7XG4gIH1cblxuICBhc3luYyBzZXREYXRlKGRhdGVTaG93bjogRGF0ZSkge1xuICAgIGNvbnN0IHt2YWx1ZXMsIHRpbWVmcmFtZXNGcm9tUmFkYXJzfSA9IGF3YWl0IHRoaXMucmVmcmVzaFRpbWVmcmFtZXNGcm9tUmFkYXJzKGRhdGVTaG93biwgZGF0ZVNob3duKTtcbiAgICB0aGlzLnN1bUZuID0gKGNhcnRlc2lhbk1hcFZhbHVlczogQ2FydGVzaWFuTWFwVmFsdWVbXSkgPT4ge1xuICAgICAgY29uc3Qgc3VtUmVzdWx0ID0gY2FydGVzaWFuTWFwVmFsdWVzLnJlZHVjZSgocCwgdikgPT5cbiAgICAgICAgcCArICh2LnZhbHVlICogNSAvIDYwKSwgMCk7XG4gICAgICByZXR1cm4gJ3c6JyArIE1hdGgucm91bmQoc3VtUmVzdWx0ICogMTApIC8gMTA7XG4gICAgfVxuICAgIHRoaXMuc3VtVmFsdWVzID0gdmFsdWVzO1xuICB9XG5cbiAgYXN5bmMgc2V0UGVyaW9kKGJlZ2luOiBEYXRlLCBlbmQ6IERhdGUpIHtcbiAgICBjb25zdCB7dmFsdWVzLCB0aW1lZnJhbWVzRnJvbVJhZGFyc30gPSBhd2FpdCB0aGlzLnJlZnJlc2hUaW1lZnJhbWVzRnJvbVJhZGFycyhiZWdpbiwgZW5kKTtcbiAgICB0aGlzLnN1bUZuID0gKGNhcnRlc2lhbk1hcFZhbHVlczogQ2FydGVzaWFuTWFwVmFsdWVbXSkgPT4ge1xuICAgICAgY29uc3Qgc3VtUmVzdWx0ID0gY2FydGVzaWFuTWFwVmFsdWVzLnJlZHVjZSgocCwgdikgPT5cbiAgICAgICAgcCArICgodi52YWx1ZSAqIDUgLyA2MCkgLyB0aW1lZnJhbWVzRnJvbVJhZGFycy5sZW5ndGgpLCAwKTtcbiAgICAgIHJldHVybiAnd3Q6JyArIE1hdGgucm91bmQoc3VtUmVzdWx0ICogMTApIC8gMTA7XG4gICAgfVxuICAgIHRoaXMuc3VtVmFsdWVzID0gdmFsdWVzO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJlZnJlc2hUaW1lZnJhbWVzRnJvbVJhZGFycyhiZWdpbjogRGF0ZSwgZW5kOiBEYXRlKSB7XG5cbiAgICB0aGlzLnJhaW5Ob2RlID0gYXdhaXQgdGhpcy5wcm9maWxlU2VydmljZS5nZXRSYWluVGltZWZyYW1lKHRoaXMucmFpbk5vZGUuZ2V0SWQoKSwgYmVnaW4sIGVuZCk7XG5cbiAgICBjb25zdCB0aW1lZnJhbWVzRnJvbVJhZGFyc0V4dGVuZGVkID0gYXdhaXQgdGhpcy5yYWRhclNlcnZpY2UuZ2V0VGltZWxpbmUodGhpcy5yYWluTm9kZSk7XG4gICAgY29uc3QgdGltZWZyYW1lc0Zyb21SYWRhcnMgPSB0aW1lZnJhbWVzRnJvbVJhZGFyc0V4dGVuZGVkXG4gICAgICAuZmlsdGVyKChmcmFtZVNldCkgPT4gYmVnaW4uZ2V0VGltZSgpIDw9IGZyYW1lU2V0LmRhdGUuZ2V0VGltZSgpICYmIGZyYW1lU2V0LmRhdGUuZ2V0VGltZSgpIDw9IGVuZC5nZXRUaW1lKCkpXG4gICAgICAuc29ydCgoYSwgYikgPT4gYS5kYXRlLmdldFRpbWUoKSAtIGIuZGF0ZS5nZXRUaW1lKCkpO1xuXG4gICAgbGV0IHZhbHVlczogQ2FydGVzaWFuTWFwVmFsdWVbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgZnJhbWVTZXQgb2YgdGltZWZyYW1lc0Zyb21SYWRhcnMpIHtcbiAgICAgIHZhbHVlcyA9IHZhbHVlcy5jb25jYXQoYXdhaXQgdGhpcy5nZXRWYWx1ZXMoZnJhbWVTZXQpKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge3ZhbHVlcywgdGltZWZyYW1lc0Zyb21SYWRhcnN9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGdldFZhbHVlcyh0YXJnZXQ6IHtcbiAgICByYWluQ29tcHV0YXRpb25JZDogc3RyaW5nXG4gIH0pOiBQcm9taXNlPENhcnRlc2lhbk1hcFZhbHVlW10+IHtcbiAgICBpZiAoIXRhcmdldCB8fCAhdGFyZ2V0LnJhaW5Db21wdXRhdGlvbklkKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1BiIHdpdGggdGFyZ2V0IGluc2lnaHRzJyk7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgbGV0IHZhbHVlczogQ2FydGVzaWFuTWFwVmFsdWVbXSA9IFtdO1xuICAgIGNvbnN0IHJhaW5Ob2RlID0gdGhpcy5yYWluTm9kZTtcbiAgICBjb25zdCBjb250YWluZXJzOiBUaW1lZnJhbWVDb250YWluZXJbXSA9IFtdO1xuICAgIGNvbnN0IG5ld0NyZWF0ZWRUaW1lZnJhbWVDb250YWluZXJzID0gbmV3IFRpbWVmcmFtZUNvbnRhaW5lcnMoY29udGFpbmVycyk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJhaW5Ob2RlQ2FydGVzaWFuTWFwID0gYXdhaXQgdGhpcy5wcm9maWxlU2VydmljZVxuICAgICAgICAuZ2V0UmFpbkNvbXB1dGF0aW9uQ2FydGVzaWFuTWFwQnlJZChyYWluTm9kZS5nZXRJZCgpLCB0YXJnZXQucmFpbkNvbXB1dGF0aW9uSWQpO1xuXG4gICAgICBpZiAocmFpbk5vZGVDYXJ0ZXNpYW5NYXApIHtcbiAgICAgICAgcmFpbk5vZGVDYXJ0ZXNpYW5NYXAuZ2V0TWFwRGF0YSgpLmZvckVhY2gobSA9PiB7XG4gICAgICAgICAgaWYgKG0udmFsdWVzKSB7XG4gICAgICAgICAgICAobS52YWx1ZXMgYXMgSUNhcnRlc2lhbk1lYXN1cmVWYWx1ZVtdKS5mb3JFYWNoKHYgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBjYXJ0ZXNpYW5NZWFzdXJlVmFsdWUgPSBDYXJ0ZXNpYW5NZWFzdXJlVmFsdWUuRnJvbSh2KTtcbiAgICAgICAgICAgICAgdmFsdWVzID0gdmFsdWVzLmNvbmNhdChDYXJ0ZXNpYW5NYXBWYWx1ZS5Gcm9tKFxuICAgICAgICAgICAgICAgIGNhcnRlc2lhbk1lYXN1cmVWYWx1ZS5nZXRDYXJ0ZXNpYW5WYWx1ZXMoKSxcbiAgICAgICAgICAgICAgICBjYXJ0ZXNpYW5NZWFzdXJlVmFsdWUuZ2V0Q2FydGVzaWFuUGl4ZWxXaWR0aCgpKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignUGIgd2l0aCBjb21wdXRhdGlvbnMgZm9yIGlkOicsIHRhcmdldC5yYWluQ29tcHV0YXRpb25JZCwgZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlcztcbiAgfVxuXG59XG4iXX0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVwb3J0TWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3Rvb2xzL1JlcG9ydE1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHFCQUFxQixFQUFFLGNBQWMsRUFBbUMsTUFBTSxhQUFhLENBQUM7QUFDcEcsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sVUFBVSxDQUFDO0FBSTNDLE1BQU0sT0FBTyxhQUFhO0lBTXhCLFlBQ1ksUUFBa0IsRUFDbEIsWUFBMEIsRUFDMUIsY0FBOEI7UUFGOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDeEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFlO1FBQzNCLE1BQU0sRUFBQyxNQUFNLEVBQUUsb0JBQW9CLEVBQUMsR0FBRyxNQUFNLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDcEcsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLGtCQUF1QyxFQUFFLEVBQUU7WUFDdkQsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQ25ELENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzdCLE9BQU8sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNoRCxDQUFDLENBQUE7UUFD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QUMsRUFBRTs0QkFDakQsTUFBTSxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7NEJBQzVELE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FDM0MscUJBQXFCLENBQUMsa0JBQWtCLEVBQUUsRUFDMUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7d0JBQzFCLENBQUMsQ0FBQyxDQUFDO3FCQUNKO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ0o7U0FDRjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxNQUFNLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDM0U7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NhcnRlc2lhbk1lYXN1cmVWYWx1ZSwgQ2FydGVzaWFuVG9vbHMsIElDYXJ0ZXNpYW5NZWFzdXJlVmFsdWUsIFJhaW5Ob2RlfSBmcm9tICdyYWFpbi1tb2RlbCc7XG5pbXBvcnQge0NhcnRlc2lhbk1hcFZhbHVlfSBmcm9tICdyYWFpbi11aSc7XG5pbXBvcnQge1JhZGFyU2VydmljZX0gZnJvbSAnLi4vcmFkYXIuc2VydmljZSc7XG5pbXBvcnQge1Byb2ZpbGVTZXJ2aWNlfSBmcm9tICcuLi9wcm9maWxlLnNlcnZpY2UnO1xuXG5leHBvcnQgY2xhc3MgUmVwb3J0TWFuYWdlciB7XG5cbiAgcHVibGljIHN1bUZuOiBhbnk7XG4gIHB1YmxpYyBzdW1WYWx1ZXM6IGFueTtcbiAgcHJvdGVjdGVkIGNhcnRlc2lhblRvb2xzOiBDYXJ0ZXNpYW5Ub29scztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmFpbk5vZGU6IFJhaW5Ob2RlLFxuICAgIHByb3RlY3RlZCByYWRhclNlcnZpY2U6IFJhZGFyU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcHJvZmlsZVNlcnZpY2U6IFByb2ZpbGVTZXJ2aWNlKSB7XG4gICAgdGhpcy5jYXJ0ZXNpYW5Ub29scyA9IG5ldyBDYXJ0ZXNpYW5Ub29scygpO1xuICAgIHRoaXMuY2FydGVzaWFuVG9vbHMuYnVpbGRMYXRMbmdFYXJ0aE1hcCgpO1xuICB9XG5cbiAgYXN5bmMgc2V0RGF0ZShkYXRlU2hvd246IERhdGUpIHtcbiAgICBjb25zdCB7dmFsdWVzLCB0aW1lZnJhbWVzRnJvbVJhZGFyc30gPSBhd2FpdCB0aGlzLnJlZnJlc2hUaW1lZnJhbWVzRnJvbVJhZGFycyhkYXRlU2hvd24sIGRhdGVTaG93bik7XG4gICAgdGhpcy5zdW1GbiA9IChjYXJ0ZXNpYW5NYXBWYWx1ZXM6IENhcnRlc2lhbk1hcFZhbHVlW10pID0+IHtcbiAgICAgIGNvbnN0IHN1bVJlc3VsdCA9IGNhcnRlc2lhbk1hcFZhbHVlcy5yZWR1Y2UoKHAsIHYpID0+XG4gICAgICAgIHAgKyAodi52YWx1ZSAqIDUgLyA2MCksIDApO1xuICAgICAgcmV0dXJuICd3OicgKyBNYXRoLnJvdW5kKHN1bVJlc3VsdCAqIDEwKSAvIDEwO1xuICAgIH1cbiAgICB0aGlzLnN1bVZhbHVlcyA9IHZhbHVlcztcbiAgfVxuXG4gIGFzeW5jIHNldFBlcmlvZChiZWdpbjogRGF0ZSwgZW5kOiBEYXRlKSB7XG4gICAgY29uc3Qge3ZhbHVlcywgdGltZWZyYW1lc0Zyb21SYWRhcnN9ID0gYXdhaXQgdGhpcy5yZWZyZXNoVGltZWZyYW1lc0Zyb21SYWRhcnMoYmVnaW4sIGVuZCk7XG4gICAgdGhpcy5zdW1GbiA9IChjYXJ0ZXNpYW5NYXBWYWx1ZXM6IENhcnRlc2lhbk1hcFZhbHVlW10pID0+IHtcbiAgICAgIGNvbnN0IHN1bVJlc3VsdCA9IGNhcnRlc2lhbk1hcFZhbHVlcy5yZWR1Y2UoKHAsIHYpID0+XG4gICAgICAgIHAgKyAoKHYudmFsdWUgKiA1IC8gNjApIC8gdGltZWZyYW1lc0Zyb21SYWRhcnMubGVuZ3RoKSwgMCk7XG4gICAgICByZXR1cm4gJ3d0OicgKyBNYXRoLnJvdW5kKHN1bVJlc3VsdCAqIDEwKSAvIDEwO1xuICAgIH1cbiAgICB0aGlzLnN1bVZhbHVlcyA9IHZhbHVlcztcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyByZWZyZXNoVGltZWZyYW1lc0Zyb21SYWRhcnMoYmVnaW46IERhdGUsIGVuZDogRGF0ZSkge1xuXG4gICAgdGhpcy5yYWluTm9kZSA9IGF3YWl0IHRoaXMucHJvZmlsZVNlcnZpY2UuZ2V0UmFpblRpbWVmcmFtZSh0aGlzLnJhaW5Ob2RlLmdldElkKCksIGJlZ2luLCBlbmQpO1xuXG4gICAgY29uc3QgdGltZWZyYW1lc0Zyb21SYWRhcnNFeHRlbmRlZCA9IGF3YWl0IHRoaXMucmFkYXJTZXJ2aWNlLmdldFRpbWVsaW5lKHRoaXMucmFpbk5vZGUpO1xuICAgIGNvbnN0IHRpbWVmcmFtZXNGcm9tUmFkYXJzID0gdGltZWZyYW1lc0Zyb21SYWRhcnNFeHRlbmRlZFxuICAgICAgLmZpbHRlcigoZnJhbWVTZXQpID0+IGJlZ2luLmdldFRpbWUoKSA8PSBmcmFtZVNldC5kYXRlLmdldFRpbWUoKSAmJiBmcmFtZVNldC5kYXRlLmdldFRpbWUoKSA8PSBlbmQuZ2V0VGltZSgpKVxuICAgICAgLnNvcnQoKGEsIGIpID0+IGEuZGF0ZS5nZXRUaW1lKCkgLSBiLmRhdGUuZ2V0VGltZSgpKTtcblxuICAgIGxldCB2YWx1ZXM6IENhcnRlc2lhbk1hcFZhbHVlW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGZyYW1lU2V0IG9mIHRpbWVmcmFtZXNGcm9tUmFkYXJzKSB7XG4gICAgICB2YWx1ZXMgPSB2YWx1ZXMuY29uY2F0KGF3YWl0IHRoaXMuZ2V0VmFsdWVzKGZyYW1lU2V0KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHt2YWx1ZXMsIHRpbWVmcmFtZXNGcm9tUmFkYXJzfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBnZXRWYWx1ZXModGFyZ2V0OiB7XG4gICAgcmFpbkNvbXB1dGF0aW9uSWQ6IHN0cmluZ1xuICB9KTogUHJvbWlzZTxDYXJ0ZXNpYW5NYXBWYWx1ZVtdPiB7XG4gICAgaWYgKCF0YXJnZXQgfHwgIXRhcmdldC5yYWluQ29tcHV0YXRpb25JZCkge1xuICAgICAgY29uc29sZS53YXJuKCdQYiB3aXRoIHRhcmdldCBpbnNpZ2h0cycpO1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGxldCB2YWx1ZXM6IENhcnRlc2lhbk1hcFZhbHVlW10gPSBbXTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmFpbk5vZGVDYXJ0ZXNpYW5NYXAgPSBhd2FpdCB0aGlzLnByb2ZpbGVTZXJ2aWNlXG4gICAgICAgIC5nZXRSYWluQ29tcHV0YXRpb25DYXJ0ZXNpYW5NYXBCeUlkKHRoaXMucmFpbk5vZGUuZ2V0SWQoKSwgdGFyZ2V0LnJhaW5Db21wdXRhdGlvbklkKTtcblxuICAgICAgaWYgKHJhaW5Ob2RlQ2FydGVzaWFuTWFwKSB7XG4gICAgICAgIHJhaW5Ob2RlQ2FydGVzaWFuTWFwLmdldE1hcERhdGEoKS5mb3JFYWNoKG0gPT4ge1xuICAgICAgICAgIGlmIChtLnZhbHVlcykge1xuICAgICAgICAgICAgKG0udmFsdWVzIGFzIElDYXJ0ZXNpYW5NZWFzdXJlVmFsdWVbXSkuZm9yRWFjaCh2ID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgY2FydGVzaWFuTWVhc3VyZVZhbHVlID0gQ2FydGVzaWFuTWVhc3VyZVZhbHVlLkZyb20odik7XG4gICAgICAgICAgICAgIHZhbHVlcyA9IHZhbHVlcy5jb25jYXQoQ2FydGVzaWFuTWFwVmFsdWUuRnJvbShcbiAgICAgICAgICAgICAgICBjYXJ0ZXNpYW5NZWFzdXJlVmFsdWUuZ2V0Q2FydGVzaWFuVmFsdWVzKCksXG4gICAgICAgICAgICAgICAgdGhpcy5jYXJ0ZXNpYW5Ub29scykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1BiIHdpdGggY29tcHV0YXRpb25zIGZvciBpZDonLCB0YXJnZXQucmFpbkNvbXB1dGF0aW9uSWQsIGUpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZXM7XG4gIH1cblxufVxuIl19
@@ -8,7 +8,7 @@ import { FormsModule } from '@angular/forms';
8
8
  import * as i2$1 from '@ionic/angular';
9
9
  import { IonicModule, IonRange } from '@ionic/angular';
10
10
  import { __awaiter } from 'tslib';
11
- import { SpeedMatrixContainer, GaugeNode, CartesianMeasureValue, Link, EventNode, TeamNode, RadarNode, RainNode, RainComputation, RainComputationMap, RainComputationQuality, GaugeMeasure } from 'raain-model';
11
+ import { SpeedMatrixContainer, GaugeNode, CartesianTools, CartesianMeasureValue, Link, EventNode, TeamNode, RadarNode, RainNode, RainComputation, RainComputationMap, RainComputationQuality, GaugeMeasure } from 'raain-model';
12
12
  import { Subject, timer, takeUntil, BehaviorSubject } from 'rxjs';
13
13
  import { switchMap } from 'rxjs/operators';
14
14
  import * as i2$2 from 'fidj-angular';
@@ -524,7 +524,7 @@ class RaainConfigurationComponent {
524
524
  return __awaiter(this, void 0, void 0, function* () {
525
525
  const points = [];
526
526
  for (let c = 0; c < count; c++) {
527
- points.push(new XYType((c + 1) * 10, (c + 1) * 10));
527
+ points.push(new XYType((c + 1) * 10, (c + 1) * 0.1));
528
528
  }
529
529
  this.points = points;
530
530
  yield this.delete();
@@ -541,36 +541,37 @@ class RaainConfigurationComponent {
541
541
  this.created = true;
542
542
  let inputs = new ConfigurationElementInput(this.points, this.minPoint, this.maxPoint, false, [], this.onDrag);
543
543
  if (this.logStyle) {
544
+ const trans = 0.4;
544
545
  inputs = new ConfigurationElementInput(this.points, this.minPoint, this.maxPoint, true, [
545
546
  {
546
- color: Tools.getTransparency(ChartScaleColors['0.4'], 0.8),
547
+ color: Tools.getTransparency(ChartScaleColors['0.4'], trans),
547
548
  yStart: Math.log10(0.1),
548
549
  yEnd: Math.log10(0.4)
549
550
  },
550
- { color: Tools.getTransparency(ChartScaleColors['1'], 0.8), yStart: Math.log10(0.4), yEnd: Math.log10(1) },
551
- { color: Tools.getTransparency(ChartScaleColors['3'], 0.8), yStart: Math.log10(1), yEnd: Math.log10(3) },
552
- { color: Tools.getTransparency(ChartScaleColors['10'], 0.8), yStart: Math.log10(3), yEnd: Math.log10(10) },
553
- { color: Tools.getTransparency(ChartScaleColors['20'], 0.8), yStart: Math.log10(10), yEnd: Math.log10(20) },
554
- { color: Tools.getTransparency(ChartScaleColors['30'], 0.8), yStart: Math.log10(20), yEnd: Math.log10(30) },
555
- { color: Tools.getTransparency(ChartScaleColors['50'], 0.8), yStart: Math.log10(30), yEnd: Math.log10(50) },
556
- { color: Tools.getTransparency(ChartScaleColors['100'], 0.8), yStart: Math.log10(50), yEnd: Math.log10(100) },
551
+ { color: Tools.getTransparency(ChartScaleColors['1'], trans), yStart: Math.log10(0.4), yEnd: Math.log10(1) },
552
+ { color: Tools.getTransparency(ChartScaleColors['3'], trans), yStart: Math.log10(1), yEnd: Math.log10(3) },
553
+ { color: Tools.getTransparency(ChartScaleColors['10'], trans), yStart: Math.log10(3), yEnd: Math.log10(10) },
554
+ { color: Tools.getTransparency(ChartScaleColors['20'], trans), yStart: Math.log10(10), yEnd: Math.log10(20) },
555
+ { color: Tools.getTransparency(ChartScaleColors['30'], trans), yStart: Math.log10(20), yEnd: Math.log10(30) },
556
+ { color: Tools.getTransparency(ChartScaleColors['50'], trans), yStart: Math.log10(30), yEnd: Math.log10(50) },
557
+ { color: Tools.getTransparency(ChartScaleColors['100'], trans), yStart: Math.log10(50), yEnd: Math.log10(100) },
557
558
  {
558
- color: Tools.getTransparency(ChartScaleColors['150'], 0.8),
559
+ color: Tools.getTransparency(ChartScaleColors['150'], trans),
559
560
  yStart: Math.log10(100),
560
561
  yEnd: Math.log10(150)
561
562
  },
562
563
  {
563
- color: Tools.getTransparency(ChartScaleColors['200'], 0.8),
564
+ color: Tools.getTransparency(ChartScaleColors['200'], trans),
564
565
  yStart: Math.log10(150),
565
566
  yEnd: Math.log10(200)
566
567
  },
567
568
  {
568
- color: Tools.getTransparency(ChartScaleColors['250'], 0.8),
569
+ color: Tools.getTransparency(ChartScaleColors['250'], trans),
569
570
  yStart: Math.log10(200),
570
571
  yEnd: Math.log10(250)
571
572
  },
572
573
  {
573
- color: Tools.getTransparency(ChartScaleColors['300'], 0.8),
574
+ color: Tools.getTransparency(ChartScaleColors['300'], trans),
574
575
  yStart: Math.log10(250),
575
576
  yEnd: Math.log10(300)
576
577
  },
@@ -586,7 +587,7 @@ class RaainConfigurationComponent {
586
587
  delete() {
587
588
  var _a, _b;
588
589
  return __awaiter(this, void 0, void 0, function* () {
589
- yield ((_b = (_a = this.configurationElement) === null || _a === void 0 ? void 0 : _a.chart) === null || _b === void 0 ? void 0 : _b.destroy());
590
+ (_b = (_a = this.configurationElement) === null || _a === void 0 ? void 0 : _a.chart) === null || _b === void 0 ? void 0 : _b.destroy();
590
591
  this.created = false;
591
592
  });
592
593
  }
@@ -614,10 +615,10 @@ class RaainConfigurationComponent {
614
615
  }
615
616
  }
616
617
  RaainConfigurationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RaainConfigurationComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
617
- RaainConfigurationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RaainConfigurationComponent, selector: "raain-configuration", inputs: { points: "points", currentHeight: "currentHeight", currentWidth: "currentWidth", minPoint: "minPoint", maxPoint: "maxPoint", logStyle: "logStyle" }, outputs: { changedPoints: "changedPoints" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "canvasElement", first: true, predicate: ["canvasElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ion-grid>\n <ion-row>\n <ion-col id=\"col-container\">\n <div [style.height.px]=\"currentHeight\" [style.width.px]=\"currentWidth\" id=\"canvas-container\">\n <canvas #canvasElement></canvas>\n </div>\n <ion-button (click)=\"reset(2)\" size=\"small\">reset 2</ion-button>\n <ion-button (click)=\"reset(4)\" size=\"small\">reset 4</ion-button>\n <ion-button (click)=\"reset(6)\" size=\"small\">reset 6</ion-button>\n </ion-col>\n </ion-row>\n</ion-grid>\n", styles: ["#canvas-container{position:relative;width:100%;height:100%}\n"], dependencies: [{ kind: "component", type: i2$1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2$1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2$1.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i2$1.IonRow, selector: "ion-row" }] });
618
+ RaainConfigurationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RaainConfigurationComponent, selector: "raain-configuration", inputs: { points: "points", currentHeight: "currentHeight", currentWidth: "currentWidth", minPoint: "minPoint", maxPoint: "maxPoint", logStyle: "logStyle" }, outputs: { changedPoints: "changedPoints" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "canvasElement", first: true, predicate: ["canvasElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ion-grid>\n <ion-row>\n <ion-col id=\"col-container\" size-xs=\"10\">\n <div [style.height.px]=\"currentHeight\" id=\"canvas-container\">\n <canvas #canvasElement></canvas>\n </div>\n </ion-col>\n <ion-col size-xs=\"2\">\n <ion-button (click)=\"reset(2)\" color=\"light\" shape=\"round\" size=\"small\">2</ion-button>\n <br>\n <ion-button (click)=\"reset(4)\" color=\"light\" shape=\"round\" size=\"small\">4</ion-button>\n <br>\n <ion-button (click)=\"reset(6)\" color=\"light\" shape=\"round\" size=\"small\">6</ion-button>\n <br>\n </ion-col>\n </ion-row>\n</ion-grid>\n", styles: ["#canvas-container{position:relative;width:100%;height:100%}\n"], dependencies: [{ kind: "component", type: i2$1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2$1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2$1.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i2$1.IonRow, selector: "ion-row" }] });
618
619
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RaainConfigurationComponent, decorators: [{
619
620
  type: Component,
620
- args: [{ selector: 'raain-configuration', template: "<ion-grid>\n <ion-row>\n <ion-col id=\"col-container\">\n <div [style.height.px]=\"currentHeight\" [style.width.px]=\"currentWidth\" id=\"canvas-container\">\n <canvas #canvasElement></canvas>\n </div>\n <ion-button (click)=\"reset(2)\" size=\"small\">reset 2</ion-button>\n <ion-button (click)=\"reset(4)\" size=\"small\">reset 4</ion-button>\n <ion-button (click)=\"reset(6)\" size=\"small\">reset 6</ion-button>\n </ion-col>\n </ion-row>\n</ion-grid>\n", styles: ["#canvas-container{position:relative;width:100%;height:100%}\n"] }]
621
+ args: [{ selector: 'raain-configuration', template: "<ion-grid>\n <ion-row>\n <ion-col id=\"col-container\" size-xs=\"10\">\n <div [style.height.px]=\"currentHeight\" id=\"canvas-container\">\n <canvas #canvasElement></canvas>\n </div>\n </ion-col>\n <ion-col size-xs=\"2\">\n <ion-button (click)=\"reset(2)\" color=\"light\" shape=\"round\" size=\"small\">2</ion-button>\n <br>\n <ion-button (click)=\"reset(4)\" color=\"light\" shape=\"round\" size=\"small\">4</ion-button>\n <br>\n <ion-button (click)=\"reset(6)\" color=\"light\" shape=\"round\" size=\"small\">6</ion-button>\n <br>\n </ion-col>\n </ion-row>\n</ion-grid>\n", styles: ["#canvas-container{position:relative;width:100%;height:100%}\n"] }]
621
622
  }], ctorParameters: function () { return [{ type: i0.NgZone }]; }, propDecorators: { points: [{
622
623
  type: Input
623
624
  }], changedPoints: [{
@@ -1335,6 +1336,8 @@ class ReportManager {
1335
1336
  this.rainNode = rainNode;
1336
1337
  this.radarService = radarService;
1337
1338
  this.profileService = profileService;
1339
+ this.cartesianTools = new CartesianTools();
1340
+ this.cartesianTools.buildLatLngEarthMap();
1338
1341
  }
1339
1342
  setDate(dateShown) {
1340
1343
  return __awaiter(this, void 0, void 0, function* () {
@@ -1377,18 +1380,15 @@ class ReportManager {
1377
1380
  return [];
1378
1381
  }
1379
1382
  let values = [];
1380
- const rainNode = this.rainNode;
1381
- const containers = [];
1382
- const newCreatedTimeframeContainers = new TimeframeContainers(containers);
1383
1383
  try {
1384
1384
  const rainNodeCartesianMap = yield this.profileService
1385
- .getRainComputationCartesianMapById(rainNode.getId(), target.rainComputationId);
1385
+ .getRainComputationCartesianMapById(this.rainNode.getId(), target.rainComputationId);
1386
1386
  if (rainNodeCartesianMap) {
1387
1387
  rainNodeCartesianMap.getMapData().forEach(m => {
1388
1388
  if (m.values) {
1389
1389
  m.values.forEach(v => {
1390
1390
  const cartesianMeasureValue = CartesianMeasureValue.From(v);
1391
- values = values.concat(CartesianMapValue.From(cartesianMeasureValue.getCartesianValues(), cartesianMeasureValue.getCartesianPixelWidth()));
1391
+ values = values.concat(CartesianMapValue.From(cartesianMeasureValue.getCartesianValues(), this.cartesianTools));
1392
1392
  });
1393
1393
  }
1394
1394
  });