@tetacom/svg-charts 1.4.3 → 1.4.6

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 +1 @@
1
- export declare function generateTicks(extremes: number[]): number[];
1
+ export declare function generateTicks(extremes: number[], count?: number): number[];
@@ -26,11 +26,11 @@ export declare class ZoomMessage {
26
26
  export declare class BrushMessage {
27
27
  chartId: string;
28
28
  selection: [number, number];
29
- mode: 'drag' | 'space' | 'handle' | 'center' | 'init';
29
+ mode?: 'drag' | 'space' | 'handle' | 'center' | 'init';
30
30
  constructor(options?: {
31
31
  chartId: string;
32
32
  selection: [number, number];
33
- mode: 'drag' | 'space' | 'handle' | 'center' | 'init';
33
+ mode?: 'drag' | 'space' | 'handle' | 'center' | 'init';
34
34
  });
35
35
  }
36
36
  export interface IBroadcastMessage<T> {
@@ -47,6 +47,12 @@ export interface IChartConfig {
47
47
  enable?: boolean;
48
48
  showX?: boolean;
49
49
  showY?: boolean;
50
+ x?: {
51
+ ticksCount?: number;
52
+ };
53
+ y?: {
54
+ ticksCount?: number;
55
+ };
50
56
  };
51
57
  width?: number;
52
58
  height?: number;
@@ -1,5 +1,6 @@
1
1
  import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
2
- import { map } from "rxjs";
2
+ import { map, withLatestFrom } from "rxjs";
3
+ import { generateTicks } from "../../core/utils/generate-ticks";
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "../../service/scale.service";
5
6
  import * as i2 from "../../service/chart.service";
@@ -9,13 +10,15 @@ export class GridlinesComponent {
9
10
  this.svc = svc;
10
11
  this.chartService = chartService;
11
12
  this.config = this.chartService.config;
12
- this.tickYValues = this.svc.scales.pipe(map((_) => {
13
+ this.tickYValues = this.svc.scales.pipe(withLatestFrom(this.config), map((_) => {
14
+ const [scales, config] = _;
13
15
  const ratio = this.size.height / 40;
14
- return _.y.get(0)?.scale.ticks(ratio);
16
+ return config.gridLines?.y?.ticksCount != null ? generateTicks(scales.y.get(0).scale.domain(), config.gridLines?.y?.ticksCount) : scales.y.get(0)?.scale.ticks(ratio);
15
17
  }));
16
- this.tickXValues = this.svc.scales.pipe(map((_) => {
18
+ this.tickXValues = this.svc.scales.pipe(withLatestFrom(this.config), map((_) => {
19
+ const [scales, config] = _;
17
20
  const ratio = this.size.width / 40;
18
- return _.x.get(0)?.scale.ticks(ratio);
21
+ return config.gridLines?.x?.ticksCount != null ? generateTicks(scales.x.get(0).originDomain, config.gridLines?.x?.ticksCount) : scales.x.get(0)?.scale.ticks(ratio);
19
22
  }));
20
23
  this.y = this.svc.scales.pipe(map((_) => _.y.get(0)?.scale));
21
24
  this.x = this.svc.scales.pipe(map((_) => _.x.get(0)?.scale));
@@ -31,4 +34,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
31
34
  }], ctorParameters: function () { return [{ type: i1.ScaleService }, { type: i2.ChartService }]; }, propDecorators: { size: [{
32
35
  type: Input
33
36
  }] } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZGxpbmVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jaGFydC9jaGFydC1jb250YWluZXIvZ3JpZGxpbmVzL2dyaWRsaW5lcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY2hhcnQvY2hhcnQtY29udGFpbmVyL2dyaWRsaW5lcy9ncmlkbGluZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQUUsS0FBSyxHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUMsR0FBRyxFQUFhLE1BQU0sTUFBTSxDQUFDOzs7OztBQVVyQyxNQUFNLE9BQU8sa0JBQWtCO0lBVTdCLFlBQW9CLEdBQWlCLEVBQVUsWUFBMEI7UUFBckQsUUFBRyxHQUFILEdBQUcsQ0FBYztRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3ZFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFFdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDaEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ0osSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDaEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ25DLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRUosSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsZUFBZTtJQUVmLENBQUM7OytHQTVCVSxrQkFBa0I7bUdBQWxCLGtCQUFrQixrRkNqQi9CLDIzQkE0QkE7MkZEWGEsa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNOzhIQUl0QyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LCBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7U2NhbGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9zY2FsZS5zZXJ2aWNlXCI7XG5pbXBvcnQge21hcCwgT2JzZXJ2YWJsZX0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7SUNoYXJ0Q29uZmlnfSBmcm9tIFwiLi4vLi4vbW9kZWwvaS1jaGFydC1jb25maWdcIjtcbmltcG9ydCB7Q2hhcnRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9jaGFydC5zZXJ2aWNlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1t0ZXRhLWdyaWRsaW5lc10nLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZGxpbmVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3JpZGxpbmVzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBHcmlkbGluZXNDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuICBASW5wdXQoKSBzaXplOiBET01SZWN0O1xuXG4gIGNvbmZpZzogT2JzZXJ2YWJsZTxJQ2hhcnRDb25maWc+O1xuICB0aWNrWVZhbHVlczogT2JzZXJ2YWJsZTxudW1iZXJbXT47XG4gIHRpY2tYVmFsdWVzOiBPYnNlcnZhYmxlPG51bWJlcltdPjtcbiAgeDogT2JzZXJ2YWJsZTxhbnk+O1xuICB5OiBPYnNlcnZhYmxlPGFueT47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdmM6IFNjYWxlU2VydmljZSwgcHJpdmF0ZSBjaGFydFNlcnZpY2U6IENoYXJ0U2VydmljZSkge1xuICAgIHRoaXMuY29uZmlnID0gdGhpcy5jaGFydFNlcnZpY2UuY29uZmlnO1xuXG4gICAgdGhpcy50aWNrWVZhbHVlcyA9IHRoaXMuc3ZjLnNjYWxlcy5waXBlKG1hcCgoXykgPT4ge1xuICAgICAgY29uc3QgcmF0aW8gPSB0aGlzLnNpemUuaGVpZ2h0IC8gNDA7XG4gICAgICByZXR1cm4gXy55LmdldCgwKT8uc2NhbGUudGlja3MocmF0aW8pO1xuICAgIH0pKTtcbiAgICB0aGlzLnRpY2tYVmFsdWVzID0gdGhpcy5zdmMuc2NhbGVzLnBpcGUobWFwKChfKSA9PiB7XG4gICAgICBjb25zdCByYXRpbyA9IHRoaXMuc2l6ZS53aWR0aCAvIDQwO1xuICAgICAgcmV0dXJuIF8ueC5nZXQoMCk/LnNjYWxlLnRpY2tzKHJhdGlvKTtcbiAgICB9KSk7XG5cbiAgICB0aGlzLnkgPSB0aGlzLnN2Yy5zY2FsZXMucGlwZShtYXAoKF8pID0+IF8ueS5nZXQoMCk/LnNjYWxlKSk7XG4gICAgdGhpcy54ID0gdGhpcy5zdmMuc2NhbGVzLnBpcGUobWFwKChfKSA9PiBfLnguZ2V0KDApPy5zY2FsZSkpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuXG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJ7XG4gIHhWYWx1ZXM6IHRpY2tYVmFsdWVzIHwgYXN5bmMsXG4gIHlWYWx1ZXM6IHRpY2tZVmFsdWVzIHwgYXN5bmMsXG4gIHg6IHggfCBhc3luYyxcbiAgeTogeSB8IGFzeW5jLFxuICBjb25maWc6IGNvbmZpZyB8IGFzeW5jXG59IGFzIGRhdGFcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEueSAmJiBkYXRhLmNvbmZpZy5ncmlkTGluZXM/LnNob3dZICE9PSBmYWxzZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRpY2sgb2YgZGF0YS55VmFsdWVzXCI+XG4gICAgICA8c3ZnOmxpbmUgW2F0dHIueDFdPVwiMFwiXG4gICAgICAgICAgICAgICAgW2F0dHIueTFdPVwiZGF0YS55KHRpY2spXCJcbiAgICAgICAgICAgICAgICBbYXR0ci54Ml09XCJzaXplPy53aWR0aFwiXG4gICAgICAgICAgICAgICAgW2F0dHIueTJdPVwiZGF0YS55KHRpY2spXCI+PC9zdmc6bGluZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEueCAmJiBkYXRhLmNvbmZpZy5ncmlkTGluZXM/LnNob3dYICE9PSBmYWxzZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRpY2sgb2YgZGF0YS54VmFsdWVzXCI+XG4gICAgICA8c3ZnOmxpbmUgW2F0dHIueDFdPVwiZGF0YS54KHRpY2spXCJcbiAgICAgICAgICAgICAgICBbYXR0ci55MV09XCIwXCJcbiAgICAgICAgICAgICAgICBbYXR0ci54Ml09XCJkYXRhLngodGljaylcIlxuICAgICAgICAgICAgICAgIFthdHRyLnkyXT1cInNpemU/LmhlaWdodFwiPjwvc3ZnOmxpbmU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuXG48L25nLWNvbnRhaW5lcj5cblxuXG4iXX0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZGxpbmVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jaGFydC9jaGFydC1jb250YWluZXIvZ3JpZGxpbmVzL2dyaWRsaW5lcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY2hhcnQvY2hhcnQtY29udGFpbmVyL2dyaWRsaW5lcy9ncmlkbGluZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQUUsS0FBSyxHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUMsR0FBRyxFQUFjLGNBQWMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUdyRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0saUNBQWlDLENBQUM7Ozs7O0FBUzlELE1BQU0sT0FBTyxrQkFBa0I7SUFVN0IsWUFBb0IsR0FBaUIsRUFBVSxZQUEwQjtRQUFyRCxRQUFHLEdBQUgsR0FBRyxDQUFjO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDdkUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztRQUV2QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDckMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFDM0IsR0FBRyxDQUFDLENBQUMsQ0FBNkIsRUFBRSxFQUFFO1lBQ3BDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztZQUNwQyxPQUFPLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLFVBQVUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVOLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNyQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUMzQixHQUFHLENBQUMsQ0FBQyxDQUE2QixFQUFFLEVBQUU7WUFDcEMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ25DLE9BQU8sTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsVUFBVSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0SyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRU4sSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsZUFBZTtJQUVmLENBQUM7OytHQW5DVSxrQkFBa0I7bUdBQWxCLGtCQUFrQixrRkNuQi9CLDIzQkE0QkE7MkZEVGEsa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNOzhIQUl0QyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LCBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7U2NhbGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9zY2FsZS5zZXJ2aWNlXCI7XG5pbXBvcnQge21hcCwgT2JzZXJ2YWJsZSwgd2l0aExhdGVzdEZyb219IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge0lDaGFydENvbmZpZ30gZnJvbSBcIi4uLy4uL21vZGVsL2ktY2hhcnQtY29uZmlnXCI7XG5pbXBvcnQge0NoYXJ0U2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvY2hhcnQuc2VydmljZVwiO1xuaW1wb3J0IHtnZW5lcmF0ZVRpY2tzfSBmcm9tIFwiLi4vLi4vY29yZS91dGlscy9nZW5lcmF0ZS10aWNrc1wiO1xuaW1wb3J0IHtJU2NhbGVzTWFwfSBmcm9tIFwiLi4vLi4vbW9kZWwvaS1zY2FsZXMtbWFwXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1t0ZXRhLWdyaWRsaW5lc10nLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZGxpbmVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3JpZGxpbmVzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBHcmlkbGluZXNDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuICBASW5wdXQoKSBzaXplOiBET01SZWN0O1xuXG4gIGNvbmZpZzogT2JzZXJ2YWJsZTxJQ2hhcnRDb25maWc+O1xuICB0aWNrWVZhbHVlczogT2JzZXJ2YWJsZTxudW1iZXJbXT47XG4gIHRpY2tYVmFsdWVzOiBPYnNlcnZhYmxlPG51bWJlcltdPjtcbiAgeDogT2JzZXJ2YWJsZTxhbnk+O1xuICB5OiBPYnNlcnZhYmxlPGFueT47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdmM6IFNjYWxlU2VydmljZSwgcHJpdmF0ZSBjaGFydFNlcnZpY2U6IENoYXJ0U2VydmljZSkge1xuICAgIHRoaXMuY29uZmlnID0gdGhpcy5jaGFydFNlcnZpY2UuY29uZmlnO1xuXG4gICAgdGhpcy50aWNrWVZhbHVlcyA9IHRoaXMuc3ZjLnNjYWxlcy5waXBlKFxuICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5jb25maWcpLFxuICAgICAgbWFwKChfOiBbSVNjYWxlc01hcCwgSUNoYXJ0Q29uZmlnXSkgPT4ge1xuICAgICAgICBjb25zdCBbc2NhbGVzLCBjb25maWddID0gXztcbiAgICAgICAgY29uc3QgcmF0aW8gPSB0aGlzLnNpemUuaGVpZ2h0IC8gNDA7XG4gICAgICAgIHJldHVybiBjb25maWcuZ3JpZExpbmVzPy55Py50aWNrc0NvdW50ICE9IG51bGwgPyBnZW5lcmF0ZVRpY2tzKHNjYWxlcy55LmdldCgwKS5zY2FsZS5kb21haW4oKSwgY29uZmlnLmdyaWRMaW5lcz8ueT8udGlja3NDb3VudCkgOiBzY2FsZXMueS5nZXQoMCk/LnNjYWxlLnRpY2tzKHJhdGlvKTtcbiAgICAgIH0pKTtcblxuICAgIHRoaXMudGlja1hWYWx1ZXMgPSB0aGlzLnN2Yy5zY2FsZXMucGlwZShcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuY29uZmlnKSxcbiAgICAgIG1hcCgoXzogW0lTY2FsZXNNYXAsIElDaGFydENvbmZpZ10pID0+IHtcbiAgICAgICAgY29uc3QgW3NjYWxlcywgY29uZmlnXSA9IF87XG4gICAgICAgIGNvbnN0IHJhdGlvID0gdGhpcy5zaXplLndpZHRoIC8gNDA7XG4gICAgICAgIHJldHVybiBjb25maWcuZ3JpZExpbmVzPy54Py50aWNrc0NvdW50ICE9IG51bGwgPyBnZW5lcmF0ZVRpY2tzKHNjYWxlcy54LmdldCgwKS5vcmlnaW5Eb21haW4sIGNvbmZpZy5ncmlkTGluZXM/Lng/LnRpY2tzQ291bnQpIDogc2NhbGVzLnguZ2V0KDApPy5zY2FsZS50aWNrcyhyYXRpbyk7XG4gICAgICB9KSk7XG5cbiAgICB0aGlzLnkgPSB0aGlzLnN2Yy5zY2FsZXMucGlwZShtYXAoKF8pID0+IF8ueS5nZXQoMCk/LnNjYWxlKSk7XG4gICAgdGhpcy54ID0gdGhpcy5zdmMuc2NhbGVzLnBpcGUobWFwKChfKSA9PiBfLnguZ2V0KDApPy5zY2FsZSkpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuXG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJ7XG4gIHhWYWx1ZXM6IHRpY2tYVmFsdWVzIHwgYXN5bmMsXG4gIHlWYWx1ZXM6IHRpY2tZVmFsdWVzIHwgYXN5bmMsXG4gIHg6IHggfCBhc3luYyxcbiAgeTogeSB8IGFzeW5jLFxuICBjb25maWc6IGNvbmZpZyB8IGFzeW5jXG59IGFzIGRhdGFcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEueSAmJiBkYXRhLmNvbmZpZy5ncmlkTGluZXM/LnNob3dZICE9PSBmYWxzZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRpY2sgb2YgZGF0YS55VmFsdWVzXCI+XG4gICAgICA8c3ZnOmxpbmUgW2F0dHIueDFdPVwiMFwiXG4gICAgICAgICAgICAgICAgW2F0dHIueTFdPVwiZGF0YS55KHRpY2spXCJcbiAgICAgICAgICAgICAgICBbYXR0ci54Ml09XCJzaXplPy53aWR0aFwiXG4gICAgICAgICAgICAgICAgW2F0dHIueTJdPVwiZGF0YS55KHRpY2spXCI+PC9zdmc6bGluZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEueCAmJiBkYXRhLmNvbmZpZy5ncmlkTGluZXM/LnNob3dYICE9PSBmYWxzZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRpY2sgb2YgZGF0YS54VmFsdWVzXCI+XG4gICAgICA8c3ZnOmxpbmUgW2F0dHIueDFdPVwiZGF0YS54KHRpY2spXCJcbiAgICAgICAgICAgICAgICBbYXR0ci55MV09XCIwXCJcbiAgICAgICAgICAgICAgICBbYXR0ci54Ml09XCJkYXRhLngodGljaylcIlxuICAgICAgICAgICAgICAgIFthdHRyLnkyXT1cInNpemU/LmhlaWdodFwiPjwvc3ZnOmxpbmU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuXG48L25nLWNvbnRhaW5lcj5cblxuXG4iXX0=
@@ -36,6 +36,12 @@ export class PlotlineComponent {
36
36
  const drag = this.dragElements
37
37
  .on('start drag end', (event, d) => {
38
38
  d.value = this.scale.invert(event[AxisOrientation[this.axis.orientation]]);
39
+ if (d.max !== null && d.max !== undefined && d.value >= d.max) {
40
+ d.value = d.max;
41
+ }
42
+ if (d.min !== null && d.min !== undefined && d.value <= d.min) {
43
+ d.value = d.min;
44
+ }
39
45
  this.emit({
40
46
  event,
41
47
  target: d,
@@ -78,4 +84,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
78
84
  }], scale: [{
79
85
  type: Input
80
86
  }] } });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxvdGxpbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9wbG90bGluZS9wbG90bGluZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY2hhcnQvY2hhcnQtY29udGFpbmVyL3Bsb3RsaW5lL3Bsb3RsaW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFHbEUsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7Ozs7OztBQVV6QixNQUFNLE9BQU8saUJBQWlCO0lBVTVCLFlBQ1UsR0FBc0IsRUFDdEIsV0FBd0IsRUFDeEIsWUFBMEIsRUFDMUIsWUFBMEIsRUFDMUIsT0FBbUI7UUFKbkIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQVY3QixnQkFBVyxHQUFHLGVBQWUsQ0FBQztJQVk5QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVuQyxNQUFNLGVBQWUsR0FBRyxFQUFFO2FBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQzthQUNsQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFdkIsTUFBTSxXQUFXLEdBQUcsRUFBRTthQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7YUFDbEMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXpCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRTthQUNuQixJQUFJLEVBQUU7YUFDTixPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxlQUFlLENBQUMsQ0FBQyxFQUFFO2dCQUMvQyxPQUFPLEVBQUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQzthQUN4QztZQUNELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEtBQUssZUFBZSxDQUFDLENBQUMsRUFBRTtnQkFDL0MsT0FBTyxFQUFDLENBQUMsRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUM7YUFDeEM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZO2FBQzNCLEVBQUUsQ0FDRCxnQkFBZ0IsRUFDaEIsQ0FBQyxLQUF5QyxFQUFFLENBQVcsRUFBRSxFQUFFO1lBQ3pELENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3pCLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUM5QyxDQUFDO1lBRUYsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDUixLQUFLO2dCQUNMLE1BQU0sRUFBRSxDQUFDO2FBQ1YsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQ0YsQ0FBQztRQUVKLGVBQWUsQ0FBQyxLQUFLLENBQVcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLFdBQVcsQ0FBQyxLQUFLLENBQVcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTNDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUU7WUFDM0IsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksQ0FBQyxLQUE0QjtRQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDekIsQ0FBQzs7OEdBbkZVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHNJQ3ZCOUIsa3FEQTJDQTsyRkRwQmEsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNO2lOQUd0QyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LCBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1Bsb3RMaW5lfSBmcm9tICcuLi8uLi9tb2RlbC9wbG90LWxpbmUnO1xuaW1wb3J0IHtBeGlzfSBmcm9tICcuLi8uLi9jb3JlL2F4aXMvYXhpcyc7XG5pbXBvcnQge0F4aXNPcmllbnRhdGlvbn0gZnJvbSAnLi4vLi4vbW9kZWwvZW51bS9heGlzLW9yaWVudGF0aW9uJztcbmltcG9ydCB7Wm9vbVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2Uvem9vbS5zZXJ2aWNlJztcbmltcG9ydCB7U2NhbGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3NjYWxlLnNlcnZpY2UnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuaW1wb3J0IHtJQ2hhcnRFdmVudH0gZnJvbSAnLi4vLi4vbW9kZWwvaS1jaGFydC1ldmVudCc7XG5pbXBvcnQge0NoYXJ0U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9jaGFydC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnW3RldGEtcGxvdC1saW5lXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wbG90bGluZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Bsb3RsaW5lLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQbG90bGluZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcGxvdExpbmU6IFBsb3RMaW5lO1xuICBASW5wdXQoKSBzaXplOiBET01SZWN0O1xuICBASW5wdXQoKSBheGlzOiBBeGlzO1xuICBASW5wdXQoKSBzY2FsZTogYW55O1xuICBvcmllbnRhdGlvbiA9IEF4aXNPcmllbnRhdGlvbjtcbiAgZHJhZ0VsZW1lbnRzOiBhbnk7XG5cbiAgcHJpdmF0ZSBfZG9tYWluOiBudW1iZXJbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB6b29tU2VydmljZTogWm9vbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzY2FsZVNlcnZpY2U6IFNjYWxlU2VydmljZSxcbiAgICBwcml2YXRlIGNoYXJ0U2VydmljZTogQ2hhcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZlxuICApIHtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2RvbWFpbiA9IHRoaXMuc2NhbGUuZG9tYWluKCk7XG5cbiAgICBjb25zdCBwbG90bGluZUVsZW1lbnQgPSBkM1xuICAgICAgLnNlbGVjdCh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudClcbiAgICAgIC5zZWxlY3QoJy5wbG90bGluZScpO1xuXG4gICAgY29uc3QgZ3JhYkVsZW1lbnQgPSBkM1xuICAgICAgLnNlbGVjdCh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudClcbiAgICAgIC5zZWxlY3RBbGwoJy5ncmFiYmVyJyk7XG5cbiAgICB0aGlzLmRyYWdFbGVtZW50cyA9IGQzXG4gICAgICAuZHJhZygpXG4gICAgICAuc3ViamVjdCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmF4aXMub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi55KSB7XG4gICAgICAgICAgcmV0dXJuIHt5OiBwbG90bGluZUVsZW1lbnQuYXR0cigneTEnKX07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLngpIHtcbiAgICAgICAgICByZXR1cm4ge3g6IHBsb3RsaW5lRWxlbWVudC5hdHRyKCd4MScpfTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgY29uc3QgZHJhZyA9IHRoaXMuZHJhZ0VsZW1lbnRzXG4gICAgICAub24oXG4gICAgICAgICdzdGFydCBkcmFnIGVuZCcsXG4gICAgICAgIChldmVudDogZDMuRDNEcmFnRXZlbnQ8YW55LCBQbG90TGluZSwgYW55PiwgZDogUGxvdExpbmUpID0+IHtcbiAgICAgICAgICBkLnZhbHVlID0gdGhpcy5zY2FsZS5pbnZlcnQoXG4gICAgICAgICAgICBldmVudFtBeGlzT3JpZW50YXRpb25bdGhpcy5heGlzLm9yaWVudGF0aW9uXV1cbiAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy5lbWl0KHtcbiAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgdGFyZ2V0OiBkLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgcGxvdGxpbmVFbGVtZW50LmRhdHVtPFBsb3RMaW5lPih0aGlzLnBsb3RMaW5lKTtcbiAgICBncmFiRWxlbWVudC5kYXR1bTxQbG90TGluZT4odGhpcy5wbG90TGluZSk7XG5cbiAgICBpZiAodGhpcy5wbG90TGluZS5kcmFnZ2FibGUpIHtcbiAgICAgIGdyYWJFbGVtZW50LmNhbGwoZHJhZyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kcmFnRWxlbWVudHMub24oJ3N0YXJ0IGRyYWcgZW5kJywgbnVsbCk7XG4gIH1cblxuICBlbWl0KGV2ZW50OiBJQ2hhcnRFdmVudDxQbG90TGluZT4pIHtcbiAgICB0aGlzLmNoYXJ0U2VydmljZS5lbWl0UGxvdGxpbmUoZXZlbnQpO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLnNjYWxlKHRoaXMucGxvdExpbmUudmFsdWUpO1xuICB9XG5cbiAgZ2V0IGhlaWdodCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnNpemUuaGVpZ2h0O1xuICB9XG5cbiAgZ2V0IHdpZHRoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc2l6ZS53aWR0aDtcbiAgfVxufVxuIiwiPHN2ZzpsaW5lIGNsYXNzPVwicGxvdGxpbmVcIlxuICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJwbG90TGluZS5zdHlsZT8uc3Ryb2tlIHx8ICdyZWQnXCJcbiAgICAgICAgICBbYXR0ci5zdHJva2Utd2lkdGhdPVwicGxvdExpbmUuc3R5bGU/LnN0cm9rZVdpZHRoIHx8IDRcIlxuICAgICAgICAgIFthdHRyLnN0cm9rZS1kYXNoYXJyYXldPVwicGxvdExpbmUuc3R5bGU/LnN0cm9rZURhc2hhcnJheVwiXG4gICAgICAgICAgW2F0dHIueDFdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/IHZhbHVlIDogMFwiXG4gICAgICAgICAgW2F0dHIueDJdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/IHZhbHVlIDogd2lkdGhcIlxuICAgICAgICAgIFthdHRyLnkxXT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnggPyAwIDogdmFsdWVcIlxuICAgICAgICAgIFthdHRyLnkyXT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnggPyBoZWlnaHQgOiB2YWx1ZVwiPlxuPC9zdmc6bGluZT5cblxuXG48c3ZnOnRleHRcbiAgKm5nSWY9XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54XCJcbiAgdGV4dC1hbmNob3I9XCJtaWRkbGVcIlxuICBkb21pbmFudC1iYXNlbGluZT1cImNlbnRyYWxcIlxuICBjbGFzcz1cImxhYmVsIGZvbnQtdGl0bGUtMiBmaWxsLXRleHQtNzBcIlxuICBbYXR0ci54XT1cInZhbHVlXCJcbiAgZHk9XCItMmVtXCJcbiAgW2F0dHIudHJhbnNmb3JtXT1cIidyb3RhdGUoLTkwLCAnKyB2YWx1ZSArJywnICsgaGVpZ2h0IC8gMiArICcpJ1wiXG4gIFthdHRyLnldPVwiaGVpZ2h0IC8gMlwiPnt7cGxvdExpbmUubGFiZWx9fVxuPC9zdmc6dGV4dD5cblxuPHN2Zzp0ZXh0XG4gICpuZ0lmPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueVwiXG4gIHRleHQtYW5jaG9yPVwibWlkZGxlXCJcbiAgY2xhc3M9XCJsYWJlbCBmb250LXRpdGxlLTIgZmlsbC10ZXh0LTcwXCJcbiAgZG9taW5hbnQtYmFzZWxpbmU9XCJjZW50cmFsXCJcbiAgW2F0dHIueF09XCJ2YWx1ZVwiXG4gIFthdHRyLnldPVwid2lkdGggLyAyXCI+e3twbG90TGluZS5sYWJlbH19XG48L3N2Zzp0ZXh0PlxuXG48c3ZnOmxpbmUgY2xhc3M9XCJncmFiYmVyXCJcblxuICAgICAgICAgIFtjbGFzcy54LWdyYWJiZXJdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueFwiXG4gICAgICAgICAgW2NsYXNzLnktZ3JhYmJlcl09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi55XCJcbiAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiJ3JlZCdcIlxuICAgICAgICAgIFthdHRyLnN0cm9rZS13aWR0aF09XCI4XCJcbiAgICAgICAgICBvcGFjaXR5PVwiMFwiXG4gICAgICAgICAgW2F0dHIueDFdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/IHZhbHVlIDogMFwiXG4gICAgICAgICAgW2F0dHIueDJdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueCA/IHZhbHVlIDogd2lkdGhcIlxuICAgICAgICAgIFthdHRyLnkxXT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnggPyAwIDogdmFsdWVcIlxuICAgICAgICAgIFthdHRyLnkyXT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnggPyBoZWlnaHQgOiB2YWx1ZVwiPlxuPC9zdmc6bGluZT5cbiJdfQ==
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxvdGxpbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LWNvbnRhaW5lci9wbG90bGluZS9wbG90bGluZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY2hhcnQvY2hhcnQtY29udGFpbmVyL3Bsb3RsaW5lL3Bsb3RsaW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFHbEUsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7Ozs7OztBQVV6QixNQUFNLE9BQU8saUJBQWlCO0lBVTVCLFlBQ1UsR0FBc0IsRUFDdEIsV0FBd0IsRUFDeEIsWUFBMEIsRUFDMUIsWUFBMEIsRUFDMUIsT0FBbUI7UUFKbkIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQVY3QixnQkFBVyxHQUFHLGVBQWUsQ0FBQztJQVk5QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVuQyxNQUFNLGVBQWUsR0FBRyxFQUFFO2FBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQzthQUNsQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFdkIsTUFBTSxXQUFXLEdBQUcsRUFBRTthQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7YUFD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QUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsIE9uRGVzdHJveSxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UGxvdExpbmV9IGZyb20gJy4uLy4uL21vZGVsL3Bsb3QtbGluZSc7XG5pbXBvcnQge0F4aXN9IGZyb20gJy4uLy4uL2NvcmUvYXhpcy9heGlzJztcbmltcG9ydCB7QXhpc09yaWVudGF0aW9ufSBmcm9tICcuLi8uLi9tb2RlbC9lbnVtL2F4aXMtb3JpZW50YXRpb24nO1xuaW1wb3J0IHtab29tU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS96b29tLnNlcnZpY2UnO1xuaW1wb3J0IHtTY2FsZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2Uvc2NhbGUuc2VydmljZSc7XG5pbXBvcnQgKiBhcyBkMyBmcm9tICdkMyc7XG5pbXBvcnQge0lDaGFydEV2ZW50fSBmcm9tICcuLi8uLi9tb2RlbC9pLWNoYXJ0LWV2ZW50JztcbmltcG9ydCB7Q2hhcnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdbdGV0YS1wbG90LWxpbmVdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Bsb3RsaW5lLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGxvdGxpbmUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFBsb3RsaW5lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwbG90TGluZTogUGxvdExpbmU7XG4gIEBJbnB1dCgpIHNpemU6IERPTVJlY3Q7XG4gIEBJbnB1dCgpIGF4aXM6IEF4aXM7XG4gIEBJbnB1dCgpIHNjYWxlOiBhbnk7XG4gIG9yaWVudGF0aW9uID0gQXhpc09yaWVudGF0aW9uO1xuICBkcmFnRWxlbWVudHM6IGFueTtcblxuICBwcml2YXRlIF9kb21haW46IG51bWJlcltdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHpvb21TZXJ2aWNlOiBab29tU2VydmljZSxcbiAgICBwcml2YXRlIHNjYWxlU2VydmljZTogU2NhbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhcnRTZXJ2aWNlOiBDaGFydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmXG4gICkge1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZG9tYWluID0gdGhpcy5zY2FsZS5kb21haW4oKTtcblxuICAgIGNvbnN0IHBsb3RsaW5lRWxlbWVudCA9IGQzXG4gICAgICAuc2VsZWN0KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KVxuICAgICAgLnNlbGVjdCgnLnBsb3RsaW5lJyk7XG5cbiAgICBjb25zdCBncmFiRWxlbWVudCA9IGQzXG4gICAgICAuc2VsZWN0KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KVxuICAgICAgLnNlbGVjdEFsbCgnLmdyYWJiZXInKTtcblxuICAgIHRoaXMuZHJhZ0VsZW1lbnRzID0gZDNcbiAgICAgIC5kcmFnKClcbiAgICAgIC5zdWJqZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnkpIHtcbiAgICAgICAgICByZXR1cm4ge3k6IHBsb3RsaW5lRWxlbWVudC5hdHRyKCd5MScpfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5heGlzLm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueCkge1xuICAgICAgICAgIHJldHVybiB7eDogcGxvdGxpbmVFbGVtZW50LmF0dHIoJ3gxJyl9O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICBjb25zdCBkcmFnID0gdGhpcy5kcmFnRWxlbWVudHNcbiAgICAgIC5vbihcbiAgICAgICAgJ3N0YXJ0IGRyYWcgZW5kJyxcbiAgICAgICAgKGV2ZW50OiBkMy5EM0RyYWdFdmVudDxhbnksIFBsb3RMaW5lLCBhbnk+LCBkOiBQbG90TGluZSkgPT4ge1xuICAgICAgICAgIGQudmFsdWUgPSB0aGlzLnNjYWxlLmludmVydChcbiAgICAgICAgICAgIGV2ZW50W0F4aXNPcmllbnRhdGlvblt0aGlzLmF4aXMub3JpZW50YXRpb25dXVxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGQubWF4ICE9PSBudWxsICYmIGQubWF4ICE9PSB1bmRlZmluZWQgJiYgZC52YWx1ZSA+PSBkLm1heCkge1xuICAgICAgICAgICAgZC52YWx1ZSA9IGQubWF4O1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZC5taW4gIT09IG51bGwgJiYgZC5taW4gIT09IHVuZGVmaW5lZCAmJiBkLnZhbHVlIDw9IGQubWluKSB7XG4gICAgICAgICAgICBkLnZhbHVlID0gZC5taW47XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuZW1pdCh7XG4gICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgIHRhcmdldDogZCxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgIHBsb3RsaW5lRWxlbWVudC5kYXR1bTxQbG90TGluZT4odGhpcy5wbG90TGluZSk7XG4gICAgZ3JhYkVsZW1lbnQuZGF0dW08UGxvdExpbmU+KHRoaXMucGxvdExpbmUpO1xuXG4gICAgaWYgKHRoaXMucGxvdExpbmUuZHJhZ2dhYmxlKSB7XG4gICAgICBncmFiRWxlbWVudC5jYWxsKGRyYWcpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZHJhZ0VsZW1lbnRzLm9uKCdzdGFydCBkcmFnIGVuZCcsIG51bGwpO1xuICB9XG5cbiAgZW1pdChldmVudDogSUNoYXJ0RXZlbnQ8UGxvdExpbmU+KSB7XG4gICAgdGhpcy5jaGFydFNlcnZpY2UuZW1pdFBsb3RsaW5lKGV2ZW50KTtcbiAgfVxuXG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zY2FsZSh0aGlzLnBsb3RMaW5lLnZhbHVlKTtcbiAgfVxuXG4gIGdldCBoZWlnaHQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zaXplLmhlaWdodDtcbiAgfVxuXG4gIGdldCB3aWR0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnNpemUud2lkdGg7XG4gIH1cbn1cbiIsIjxzdmc6bGluZSBjbGFzcz1cInBsb3RsaW5lXCJcbiAgICAgICAgICBbYXR0ci5zdHJva2VdPVwicGxvdExpbmUuc3R5bGU/LnN0cm9rZSB8fCAncmVkJ1wiXG4gICAgICAgICAgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInBsb3RMaW5lLnN0eWxlPy5zdHJva2VXaWR0aCB8fCA0XCJcbiAgICAgICAgICBbYXR0ci5zdHJva2UtZGFzaGFycmF5XT1cInBsb3RMaW5lLnN0eWxlPy5zdHJva2VEYXNoYXJyYXlcIlxuICAgICAgICAgIFthdHRyLngxXT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnggPyB2YWx1ZSA6IDBcIlxuICAgICAgICAgIFthdHRyLngyXT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnggPyB2YWx1ZSA6IHdpZHRoXCJcbiAgICAgICAgICBbYXR0ci55MV09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54ID8gMCA6IHZhbHVlXCJcbiAgICAgICAgICBbYXR0ci55Ml09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54ID8gaGVpZ2h0IDogdmFsdWVcIj5cbjwvc3ZnOmxpbmU+XG5cblxuPHN2Zzp0ZXh0XG4gICpuZ0lmPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueFwiXG4gIHRleHQtYW5jaG9yPVwibWlkZGxlXCJcbiAgZG9taW5hbnQtYmFzZWxpbmU9XCJjZW50cmFsXCJcbiAgY2xhc3M9XCJsYWJlbCBmb250LXRpdGxlLTIgZmlsbC10ZXh0LTcwXCJcbiAgW2F0dHIueF09XCJ2YWx1ZVwiXG4gIGR5PVwiLTJlbVwiXG4gIFthdHRyLnRyYW5zZm9ybV09XCIncm90YXRlKC05MCwgJysgdmFsdWUgKycsJyArIGhlaWdodCAvIDIgKyAnKSdcIlxuICBbYXR0ci55XT1cImhlaWdodCAvIDJcIj57e3Bsb3RMaW5lLmxhYmVsfX1cbjwvc3ZnOnRleHQ+XG5cbjxzdmc6dGV4dFxuICAqbmdJZj1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnlcIlxuICB0ZXh0LWFuY2hvcj1cIm1pZGRsZVwiXG4gIGNsYXNzPVwibGFiZWwgZm9udC10aXRsZS0yIGZpbGwtdGV4dC03MFwiXG4gIGRvbWluYW50LWJhc2VsaW5lPVwiY2VudHJhbFwiXG4gIFthdHRyLnhdPVwidmFsdWVcIlxuICBbYXR0ci55XT1cIndpZHRoIC8gMlwiPnt7cGxvdExpbmUubGFiZWx9fVxuPC9zdmc6dGV4dD5cblxuPHN2ZzpsaW5lIGNsYXNzPVwiZ3JhYmJlclwiXG5cbiAgICAgICAgICBbY2xhc3MueC1ncmFiYmVyXT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnhcIlxuICAgICAgICAgIFtjbGFzcy55LWdyYWJiZXJdPVwiYXhpcy5vcmllbnRhdGlvbiA9PT0gb3JpZW50YXRpb24ueVwiXG4gICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cIidyZWQnXCJcbiAgICAgICAgICBbYXR0ci5zdHJva2Utd2lkdGhdPVwiOFwiXG4gICAgICAgICAgb3BhY2l0eT1cIjBcIlxuICAgICAgICAgIFthdHRyLngxXT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnggPyB2YWx1ZSA6IDBcIlxuICAgICAgICAgIFthdHRyLngyXT1cImF4aXMub3JpZW50YXRpb24gPT09IG9yaWVudGF0aW9uLnggPyB2YWx1ZSA6IHdpZHRoXCJcbiAgICAgICAgICBbYXR0ci55MV09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54ID8gMCA6IHZhbHVlXCJcbiAgICAgICAgICBbYXR0ci55Ml09XCJheGlzLm9yaWVudGF0aW9uID09PSBvcmllbnRhdGlvbi54ID8gaGVpZ2h0IDogdmFsdWVcIj5cbjwvc3ZnOmxpbmU+XG4iXX0=
@@ -1,11 +1,10 @@
1
1
  import * as d3 from 'd3';
2
- export function generateTicks(extremes) {
2
+ export function generateTicks(extremes, count = 10) {
3
3
  const [min, max] = extremes;
4
- const tickCount = 10;
5
- const tickStep = (max - min) / tickCount;
4
+ const tickStep = (max - min) / count;
6
5
  const ticks = d3
7
6
  .range(min, max + tickStep, tickStep)
8
7
  .filter((step) => step <= max);
9
8
  return ticks;
10
9
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtdGlja3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY2hhcnQvY29yZS91dGlscy9nZW5lcmF0ZS10aWNrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUV6QixNQUFNLFVBQVUsYUFBYSxDQUFDLFFBQWtCO0lBQzlDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDO0lBRTVCLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUNyQixNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUM7SUFFekMsTUFBTSxLQUFLLEdBQUcsRUFBRTtTQUNiLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBRSxRQUFRLENBQUM7U0FDcEMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7SUFFakMsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVUaWNrcyhleHRyZW1lczogbnVtYmVyW10pIHtcbiAgY29uc3QgW21pbiwgbWF4XSA9IGV4dHJlbWVzO1xuXG4gIGNvbnN0IHRpY2tDb3VudCA9IDEwO1xuICBjb25zdCB0aWNrU3RlcCA9IChtYXggLSBtaW4pIC8gdGlja0NvdW50O1xuXG4gIGNvbnN0IHRpY2tzID0gZDNcbiAgICAucmFuZ2UobWluLCBtYXggKyB0aWNrU3RlcCwgdGlja1N0ZXApXG4gICAgLmZpbHRlcigoc3RlcCkgPT4gc3RlcCA8PSBtYXgpO1xuXG4gIHJldHVybiB0aWNrcztcbn1cbiJdfQ==
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtdGlja3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY2hhcnQvY29yZS91dGlscy9nZW5lcmF0ZS10aWNrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUV6QixNQUFNLFVBQVUsYUFBYSxDQUFDLFFBQWtCLEVBQUUsS0FBSyxHQUFHLEVBQUU7SUFDMUQsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUM7SUFDNUIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBRXJDLE1BQU0sS0FBSyxHQUFHLEVBQUU7U0FDYixLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxRQUFRLEVBQUUsUUFBUSxDQUFDO1NBQ3BDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBRWpDLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlVGlja3MoZXh0cmVtZXM6IG51bWJlcltdLCBjb3VudCA9IDEwKSB7XG4gIGNvbnN0IFttaW4sIG1heF0gPSBleHRyZW1lcztcbiAgY29uc3QgdGlja1N0ZXAgPSAobWF4IC0gbWluKSAvIGNvdW50O1xuXG4gIGNvbnN0IHRpY2tzID0gZDNcbiAgICAucmFuZ2UobWluLCBtYXggKyB0aWNrU3RlcCwgdGlja1N0ZXApXG4gICAgLmZpbHRlcigoc3RlcCkgPT4gc3RlcCA8PSBtYXgpO1xuXG4gIHJldHVybiB0aWNrcztcbn1cbiJdfQ==
@@ -24,7 +24,10 @@ export class ZoomableDirective {
24
24
  if (event.sourceEvent) {
25
25
  if (Object.keys(event.sourceEvent).length !== 0) {
26
26
  const origin = this.axis.scale.copy().domain(this.axis.originDomain);
27
- let domain = this.axis.orientation === AxisOrientation.y
27
+ if (this.axis.options.scaleType.type === ScaleType.band) {
28
+ return;
29
+ }
30
+ const domain = this.axis.orientation === AxisOrientation.y
28
31
  ? event.transform.rescaleY(origin).domain()
29
32
  : event.transform.rescaleX(origin).domain();
30
33
  const message = new ZoomMessage({
@@ -34,7 +37,7 @@ export class ZoomableDirective {
34
37
  orientation: this.axis.orientation,
35
38
  },
36
39
  element: this.elementRef,
37
- domain: domain,
40
+ domain,
38
41
  chartId: this.config.id
39
42
  });
40
43
  this.zoomService.fireZoom(message);
@@ -55,7 +58,7 @@ export class ZoomableDirective {
55
58
  this.initZoomSync();
56
59
  }
57
60
  ngOnDestroy() {
58
- this.zoom?.on('start zoom end', null);
61
+ this.zoom?.on('zoom end', null);
59
62
  this._element?.on('wheel', null);
60
63
  this.alive = false;
61
64
  }
@@ -89,28 +92,28 @@ export class ZoomableDirective {
89
92
  [0, 0],
90
93
  [this.size.width, this.size.height],
91
94
  ]);
92
- const min = this.config?.zoom?.minTranslate
95
+ const min = this.config?.zoom?.minTranslate != null
93
96
  ? this.axis.scale(this.config?.zoom?.minTranslate)
94
97
  : -Infinity;
95
- const max = (this.config?.zoom?.maxTranslate
96
- ? this.axis.scale(this.config?.zoom?.maxTranslate) - (this.axis.orientation === AxisOrientation.x ? this.size.width : this.size.height)
98
+ const max = (this.config?.zoom?.maxTranslate != null
99
+ ? this.axis.scale(this.config?.zoom?.maxTranslate)
97
100
  : Infinity);
98
101
  if (this.axis.orientation === AxisOrientation.x && this.config.zoom.type === ZoomType.x) {
99
102
  this.zoom.translateExtent([
100
- [min, -Infinity],
101
- [max, Infinity],
103
+ [Math.min(min, max), -Infinity],
104
+ [Math.max(min, max), Infinity],
102
105
  ]);
103
106
  }
104
107
  if (this.axis.orientation === AxisOrientation.y && this.config.zoom.type === ZoomType.y) {
105
108
  this.zoom.translateExtent([
106
- [-Infinity, min],
107
- [Infinity, max],
109
+ [-Infinity, Math.min(min, max)],
110
+ [Infinity, Math.max(min, max)],
108
111
  ]);
109
112
  }
110
113
  if (this.config.zoom?.wheelDelta) {
111
114
  this.zoom.wheelDelta(this.config.zoom?.wheelDelta);
112
115
  }
113
- if (this.axis.options.scaleType.type === ScaleType.band) {
116
+ if (this.axis.options.scaleType.type !== ScaleType.band) {
114
117
  const extremes = this.axis.extremes;
115
118
  const maxZoom = this.config.zoom?.max
116
119
  ? (extremes[1] - extremes[0]) /
@@ -124,7 +127,7 @@ export class ZoomableDirective {
124
127
  : Infinity;
125
128
  this.zoom.scaleExtent([maxZoom, minZoom]);
126
129
  }
127
- this.zoom.on('zoom end', this.zoomed);
130
+ this.zoom.on('start zoom end', this.zoomed);
128
131
  this._element.call(this.zoom).on('dblclick.zoom', null);
129
132
  if (this.config?.zoom?.zoomBehavior === ZoomBehaviorType.wheel) {
130
133
  this.runWheelTranslate();
@@ -162,6 +165,13 @@ export class ZoomableDirective {
162
165
  let domain = this.axis.orientation === AxisOrientation.y
163
166
  ? transform.rescaleY(origin).domain()
164
167
  : transform.rescaleX(origin).domain();
168
+ const extent = this.axis.options?.inverted ? domain : [...domain].reverse();
169
+ if (extent[0] <= this.config.zoom?.minTranslate) {
170
+ return;
171
+ }
172
+ if (extent[1] >= this.config.zoom?.maxTranslate) {
173
+ return;
174
+ }
165
175
  const message = new ZoomMessage({
166
176
  eventType: type,
167
177
  element: this.elementRef,
@@ -214,4 +224,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
214
224
  type: HostBinding,
215
225
  args: ['class.crosshair']
216
226
  }] } });
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbWFibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2RpcmVjdGl2ZXMvem9vbWFibGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFjLFdBQVcsRUFBRSxLQUFLLEdBQXFCLE1BQU0sZUFBZSxDQUFDO0FBSTNHLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sRUFBNEIsWUFBWSxFQUFDLE1BQU0sSUFBSSxDQUFDO0FBQzNELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFDLFdBQVcsR0FBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDOzs7O0FBS25ELE1BQU0sT0FBTyxpQkFBaUI7SUFjNUIsWUFDVSxVQUFzQixFQUN0QixXQUF3QixFQUN4QixZQUEwQixFQUMxQixJQUFZO1FBSFosZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBYmlCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDaEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUlsRCxVQUFLLEdBQUcsSUFBSSxDQUFDO1FBRWIscUJBQWdCLEdBQUcsWUFBWSxDQUFDO1FBa0h4QyxXQUFNLEdBQUcsQ0FBQyxLQUE0QixFQUFFLEVBQUU7WUFDeEMsSUFBSSxLQUFLLENBQUMsV0FB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SSxHQUFHLE1BQU0sQ0FBQztnQkFDZCxRQUFRLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDekIsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDbkIsSUFBSSxHQUFHLE9BQU8sQ0FBQztnQkFDakIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ1QsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzhHQTNPVSxpQkFBaUI7a0dBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUg3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7aUJBQzNCOzJLQUVVLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVpQyxRQUFRO3NCQUE5QyxXQUFXO3VCQUFDLGdCQUFnQjtnQkFDVyxTQUFTO3NCQUFoRCxXQUFXO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE5nWm9uZSwgT25EZXN0cm95LH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1pvb21TZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL3pvb20uc2VydmljZSc7XG5pbXBvcnQge0lDaGFydENvbmZpZ30gZnJvbSAnLi4vbW9kZWwvaS1jaGFydC1jb25maWcnO1xuaW1wb3J0IHtBeGlzfSBmcm9tICcuLi9jb3JlL2F4aXMvYXhpcyc7XG5pbXBvcnQgKiBhcyBkMyBmcm9tICdkMyc7XG5pbXBvcnQge0QzWm9vbUV2ZW50LCBab29tQmVoYXZpb3IsIHpvb21JZGVudGl0eX0gZnJvbSAnZDMnO1xuaW1wb3J0IHtab29tVHlwZX0gZnJvbSAnLi4vbW9kZWwvZW51bS96b29tLXR5cGUnO1xuaW1wb3J0IHtBeGlzT3JpZW50YXRpb259IGZyb20gJy4uL21vZGVsL2VudW0vYXhpcy1vcmllbnRhdGlvbic7XG5pbXBvcnQge1pvb21NZXNzYWdlLH0gZnJvbSAnLi4vbW9kZWwvaS1icm9hZGNhc3QtbWVzc2FnZSc7XG5pbXBvcnQge3Rha2VXaGlsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0NoYXJ0U2VydmljZX0gZnJvbSAnLi4vc2VydmljZS9jaGFydC5zZXJ2aWNlJztcbmltcG9ydCB7Wm9vbUJlaGF2aW9yVHlwZX0gZnJvbSAnLi4vbW9kZWwvZW51bS96b29tLWJlaGF2aW9yLXR5cGUnO1xuaW1wb3J0IHtTY2FsZVR5cGV9IGZyb20gXCIuLi9tb2RlbC9lbnVtL3NjYWxlLXR5cGVcIjtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3RldGFab29tYWJsZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBab29tYWJsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGNvbmZpZzogSUNoYXJ0Q29uZmlnO1xuICBASW5wdXQoKSBheGlzOiBBeGlzO1xuICBASW5wdXQoKSBzaXplOiBET01SZWN0O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Muem9vbWFibGUnKSBwcml2YXRlIHpvb21hYmxlID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuY3Jvc3NoYWlyJykgcHJpdmF0ZSBjcm9zc2hhaXIgPSBmYWxzZTtcblxuICBwcml2YXRlIF9lbGVtZW50OiBkMy5TZWxlY3Rpb248U1ZHRWxlbWVudCwgYW55LCBhbnksIGFueT47XG4gIHByaXZhdGUgem9vbTogWm9vbUJlaGF2aW9yPGFueSwgYW55PjtcbiAgcHJpdmF0ZSBhbGl2ZSA9IHRydWU7XG5cbiAgcHJpdmF0ZSBjdXJyZW50VHJhbnNmb3JtID0gem9vbUlkZW50aXR5O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHpvb21TZXJ2aWNlOiBab29tU2VydmljZSxcbiAgICBwcml2YXRlIGNoYXJ0U2VydmljZTogQ2hhcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgem9uZTogTmdab25lXG4gICkge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuYXhpcz8ub3B0aW9ucz8uem9vbSB8fCB0aGlzLmNvbmZpZz8uem9vbT8uZW5hYmxlKSB7XG4gICAgICB0aGlzLnpvb21hYmxlID0gdGhpcy5jb25maWc/Lnpvb20/Lnpvb21CZWhhdmlvciA9PT0gWm9vbUJlaGF2aW9yVHlwZS5tb3ZlICYmICF0aGlzLmNvbmZpZz8udG9vbHRpcD8uc2hvd0Nyb3NzaGFpcjtcbiAgICAgIHRoaXMuY3Jvc3NoYWlyID0gdGhpcy5jb25maWc/LnRvb2x0aXA/LnNob3dDcm9zc2hhaXI7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuaW5pdFpvb21MaXN0ZW5lcnMoKTtcbiAgICB0aGlzLmluaXRab29tU3luYygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy56b29tPy5vbignc3RhcnQgem9vbSBlbmQnLCBudWxsKTtcbiAgICB0aGlzLl9lbGVtZW50Py5vbignd2hlZWwnLCBudWxsKTtcbiAgICB0aGlzLmFsaXZlID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGluaXRab29tU3luYygpIHtcbiAgICB0aGlzLnpvb21TZXJ2aWNlLnpvb21lZC5waXBlKFxuICAgICAgdGFrZVdoaWxlKCgpID0+IHRoaXMuYWxpdmUpXG4gICAgKS5zdWJzY3JpYmUoKHpvb21lZDogWm9vbU1lc3NhZ2UpID0+IHtcbiAgICAgIGlmICh0aGlzLl9lbGVtZW50ICYmIHRoaXMuZWxlbWVudFJlZiAhPT0gem9vbWVkPy5lbGVtZW50XG4gICAgICAgICYmIHpvb21lZD8uYXhpcz8uaW5kZXggPT09IHRoaXMuYXhpcy5pbmRleFxuICAgICAgICAmJiB6b29tZWQ/LmF4aXM/Lm9yaWVudGF0aW9uID09PSB0aGlzLmF4aXMub3JpZW50YXRpb24pIHtcbiAgICAgICAgY29uc3Qgc2NhbGUgPSB0aGlzLmF4aXMuc2NhbGUuY29weSgpLmRvbWFpbih0aGlzLmF4aXMub3JpZ2luRG9tYWluKTtcbiAgICAgICAgbGV0IHRyYW5zZm9ybTtcbiAgICAgICAgaWYgKHpvb21lZC5kb21haW4gPT09IG51bGwpIHtcbiAgICAgICAgICB0cmFuc2Zvcm0gPSB6b29tSWRlbnRpdHk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdHJhbnNmb3JtID1cbiAgICAgICAgICAgIHRoaXMuem9vbVNlcnZpY2UuZ2V0RDNUcmFuc2Zvcm0oem9vbWVkLmRvbWFpbiwgdGhpcy5heGlzLm9yaWdpbkRvbWFpbiwgc2NhbGUsIHRoaXMuYXhpcy5vcmllbnRhdGlvbiwgdGhpcy5heGlzLm9wdGlvbnMuaW52ZXJ0ZWQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2VsZW1lbnQuY2FsbCh0aGlzLnpvb20udHJhbnNmb3JtLCB0cmFuc2Zvcm0pO1xuICAgICAgICB0aGlzLmN1cnJlbnRUcmFuc2Zvcm0gPSB0cmFuc2Zvcm07XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRab29tTGlzdGVuZXJzKCkge1xuICAgIGNvbnN0IGVuYWJsZSA9XG4gICAgICAodGhpcy5heGlzPy5vcHRpb25zPy56b29tICYmIHRoaXMuYXhpcz8ub3B0aW9ucy52aXNpYmxlICE9PSBmYWxzZSkgfHxcbiAgICAgIHRoaXMuY29uZmlnPy56b29tPy5lbmFibGU7XG4gICAgaWYgKCFlbmFibGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fZWxlbWVudCA9IGQzLnNlbGVjdCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgdGhpcy56b29tID0gZDMuem9vbSgpLmV4dGVudChbXG4gICAgICBbMCwgMF0sXG4gICAgICBbdGhpcy5zaXplLndpZHRoLCB0aGlzLnNpemUuaGVpZ2h0XSxcbiAgICBdKTtcblxuICAgIGNvbnN0IG1pbiA9IHRoaXMuY29uZmlnPy56b29tPy5taW5UcmFuc2xhdGVcbiAgICAgID8gdGhpcy5heGlzLnNjYWxlKHRoaXMuY29uZmlnPy56b29tPy5taW5UcmFuc2xhdGUpXG4gICAgICA6IC1JbmZpbml0eTtcbiAgICBjb25zdCBtYXggPSAodGhpcy5jb25maWc/Lnpvb20/Lm1heFRyYW5zbGF0ZVxuICAgICAgPyB0aGlzLmF4aXMuc2NhbGUodGhpcy5jb25maWc/Lnpvb20/Lm1heFRyYW5zbGF0ZSkgLSAodGhpcy5heGlzLm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueCA/IHRoaXMuc2l6ZS53aWR0aCA6IHRoaXMuc2l6ZS5oZWlnaHQpXG4gICAgICA6IEluZmluaXR5KTtcbiAgICBpZiAodGhpcy5heGlzLm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueCAmJiB0aGlzLmNvbmZpZy56b29tLnR5cGUgPT09IFpvb21UeXBlLngpIHtcbiAgICAgIHRoaXMuem9vbS50cmFuc2xhdGVFeHRlbnQoW1xuICAgICAgICBbbWluLCAtSW5maW5pdHldLFxuICAgICAgICBbbWF4LCBJbmZpbml0eV0sXG4gICAgICBdKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5heGlzLm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueSAmJiB0aGlzLmNvbmZpZy56b29tLnR5cGUgPT09IFpvb21UeXBlLnkpIHtcbiAgICAgIHRoaXMuem9vbS50cmFuc2xhdGVFeHRlbnQoW1xuICAgICAgICBbLUluZmluaXR5LCBtaW5dLFxuICAgICAgICBbSW5maW5pdHksIG1heF0sXG4gICAgICBdKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25maWcuem9vbT8ud2hlZWxEZWx0YSkge1xuICAgICAgdGhpcy56b29tLndoZWVsRGVsdGEodGhpcy5jb25maWcuem9vbT8ud2hlZWxEZWx0YSk7XG4gICAgfVxuXG4gICAgaWYodGhpcy5heGlzLm9wdGlvbnMuc2NhbGVUeXBlLnR5cGUgPT09IFNjYWxlVHlwZS5iYW5kKSB7XG5cbiAgICAgIGNvbnN0IGV4dHJlbWVzID0gdGhpcy5heGlzLmV4dHJlbWVzIGFzIG51bWJlcltdO1xuXG4gICAgICBjb25zdCBtYXhab29tID0gdGhpcy5jb25maWcuem9vbT8ubWF4XG4gICAgICAgID8gKGV4dHJlbWVzWzFdIC0gZXh0cmVtZXNbMF0pIC9cbiAgICAgICAgdGhpcy5jb25maWcuem9vbT8ubWF4XG4gICAgICAgIDogdGhpcy5jb25maWcuem9vbT8ubGltaXRab29tQnlEYXRhXG4gICAgICAgICAgPyAxXG4gICAgICAgICAgOiAwO1xuXG4gICAgICBjb25zdCBtaW5ab29tID0gdGhpcy5jb25maWcuem9vbT8ubWluXG4gICAgICAgID8gKGV4dHJlbWVzWzFdIC0gZXh0cmVtZXNbMF0pIC9cbiAgICAgICAgdGhpcy5jb25maWcuem9vbT8ubWluXG4gICAgICAgIDogSW5maW5pdHk7XG5cbiAgICAgIHRoaXMuem9vbS5zY2FsZUV4dGVudChbbWF4Wm9vbSwgbWluWm9vbV0pO1xuICAgIH1cblxuXG4gICAgdGhpcy56b29tLm9uKCd6b29tIGVuZCcsIHRoaXMuem9vbWVkKTtcbiAgICB0aGlzLl9lbGVtZW50LmNhbGwodGhpcy56b29tKS5vbignZGJsY2xpY2suem9vbScsIG51bGwpO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnPy56b29tPy56b29tQmVoYXZpb3IgPT09IFpvb21CZWhhdmlvclR5cGUud2hlZWwpIHtcbiAgICAgIHRoaXMucnVuV2hlZWxUcmFuc2xhdGUoKTtcbiAgICB9XG4gIH1cblxuICB6b29tZWQgPSAoZXZlbnQ6IEQzWm9vbUV2ZW50PGFueSwgYW55PikgPT4ge1xuICAgIGlmIChldmVudC5zb3VyY2VFdmVudCkge1xuICAgICAgaWYgKE9iamVjdC5rZXlzKGV2ZW50LnNvdXJjZUV2ZW50KS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgY29uc3Qgb3JpZ2luID0gdGhpcy5heGlzLnNjYWxlLmNvcHkoKS5kb21haW4odGhpcy5heGlzLm9yaWdpbkRvbWFpbik7XG5cbiAgICAgICAgbGV0IGRvbWFpbiA9XG4gICAgICAgICAgdGhpcy5heGlzLm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueVxuICAgICAgICAgICAgPyBldmVudC50cmFuc2Zvcm0ucmVzY2FsZVkob3JpZ2luKS5kb21haW4oKVxuICAgICAgICAgICAgOiBldmVudC50cmFuc2Zvcm0ucmVzY2FsZVgob3JpZ2luKS5kb21haW4oKTtcblxuICAgICAgICBjb25zdCBtZXNzYWdlID0gbmV3IFpvb21NZXNzYWdlKHtcbiAgICAgICAgICBldmVudFR5cGU6IGV2ZW50LnR5cGUsXG4gICAgICAgICAgYXhpczoge1xuICAgICAgICAgICAgaW5kZXg6IHRoaXMuYXhpcy5pbmRleCxcbiAgICAgICAgICAgIG9yaWVudGF0aW9uOiB0aGlzLmF4aXMub3JpZW50YXRpb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBlbGVtZW50OiB0aGlzLmVsZW1lbnRSZWYsXG4gICAgICAgICAgZG9tYWluOiBkb21haW4sXG4gICAgICAgICAgY2hhcnRJZDogdGhpcy5jb25maWcuaWRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy56b29tU2VydmljZS5maXJlWm9vbShtZXNzYWdlKTtcbiAgICAgICAgdGhpcy56b29tU2VydmljZS5icm9hZGNhc3Rab29tKG1lc3NhZ2UpO1xuICAgICAgfVxuICAgICAgdGhpcy5jdXJyZW50VHJhbnNmb3JtID0gZXZlbnQudHJhbnNmb3JtO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIHJ1bldoZWVsVHJhbnNsYXRlKCkge1xuICAgIGxldCB0eXBlOiAnc3RhcnQnIHwgJ3pvb20nIHwgJ2VuZCcgPSAnc3RhcnQnO1xuICAgIGxldCB3aGVlbGluZztcblxuICAgIHRoaXMuem9vbVxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIChldmVudC5jdHJsS2V5ICYmIGV2ZW50LnR5cGUgPT09ICd3aGVlbCcpIHx8XG4gICAgICAgICAgICBCb29sZWFuKHdpbmRvdy5Ub3VjaEV2ZW50ICYmIGV2ZW50LnR5cGUgIT09ICd3aGVlbCcpO1xuICAgICAgICB9XG4gICAgICApXG4gICAgICAud2hlZWxEZWx0YSgoZXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgZGVsdGEgPVxuICAgICAgICAgIHRoaXMuY29uZmlnPy56b29tLnR5cGUgPT09IFpvb21UeXBlLnhcbiAgICAgICAgICAgID8gLWV2ZW50LmRlbHRhWFxuICAgICAgICAgICAgOiAtZXZlbnQuZGVsdGFZO1xuICAgICAgICByZXR1cm4gZGVsdGEgKiAwLjAwMjtcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgZW1pdCA9ICh0eXBlOiBzdHJpbmcsIGV2ZW50OiBXaGVlbEV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBvcmlnaW4gPSB0aGlzLmF4aXMuc2NhbGUuY29weSgpLmRvbWFpbih0aGlzLmF4aXMub3JpZ2luRG9tYWluKTtcbiAgICAgIGxldCB0cmFuc2Zvcm0gPSB6b29tSWRlbnRpdHk7XG4gICAgICBjb25zdCBkZWx0YSA9XG4gICAgICAgIHR5cGUgPT09ICdlbmQnXG4gICAgICAgICAgPyAwXG4gICAgICAgICAgOiB0aGlzLmF4aXMub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi55XG4gICAgICAgICAgICA/IGV2ZW50LmRlbHRhWVxuICAgICAgICAgICAgOiBldmVudC5kZWx0YVg7XG5cbiAgICAgIGlmICh0aGlzLmF4aXMub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi55KSB7XG4gICAgICAgIHRyYW5zZm9ybSA9IHRyYW5zZm9ybS50cmFuc2xhdGUoXG4gICAgICAgICAgMCxcbiAgICAgICAgICB0aGlzLmN1cnJlbnRUcmFuc2Zvcm0ueSAtIGRlbHRhIC8gMlxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5heGlzLm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueCkge1xuICAgICAgICB0cmFuc2Zvcm0gPSB0cmFuc2Zvcm0udHJhbnNsYXRlKFxuICAgICAgICAgIHRoaXMuY3VycmVudFRyYW5zZm9ybS54IC0gZGVsdGEgLyAyLFxuICAgICAgICAgIDBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgdHJhbnNmb3JtID0gdHJhbnNmb3JtLnNjYWxlKHRoaXMuY3VycmVudFRyYW5zZm9ybS5rKTtcblxuICAgICAgbGV0IGRvbWFpbiA9XG4gICAgICAgIHRoaXMuYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnlcbiAgICAgICAgICA/IHRyYW5zZm9ybS5yZXNjYWxlWShvcmlnaW4pLmRvbWFpbigpXG4gICAgICAgICAgOiB0cmFuc2Zvcm0ucmVzY2FsZVgob3JpZ2luKS5kb21haW4oKTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IG5ldyBab29tTWVzc2FnZSh7XG4gICAgICAgIGV2ZW50VHlwZTogdHlwZSxcbiAgICAgICAgZWxlbWVudDogdGhpcy5lbGVtZW50UmVmLFxuICAgICAgICBheGlzOiB7XG4gICAgICAgICAgaW5kZXg6IHRoaXMuYXhpcy5pbmRleCxcbiAgICAgICAgICBvcmllbnRhdGlvbjogdGhpcy5heGlzLm9yaWVudGF0aW9uXG4gICAgICAgIH0sXG4gICAgICAgIGRvbWFpbixcbiAgICAgICAgY2hhcnRJZDogdGhpcy5jb25maWcuaWQsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuX2VsZW1lbnQ/LmNhbGwodGhpcy56b29tLnRyYW5zZm9ybSwgdHJhbnNmb3JtKTtcbiAgICAgIHRoaXMuem9vbVNlcnZpY2UuZmlyZVpvb20obWVzc2FnZSk7XG4gICAgICB0aGlzLnpvb21TZXJ2aWNlLmJyb2FkY2FzdFpvb20obWVzc2FnZSk7XG4gICAgICB0aGlzLmN1cnJlbnRUcmFuc2Zvcm0gPSB0cmFuc2Zvcm07XG4gICAgfTtcblxuICAgIHRoaXMuX2VsZW1lbnQub24oJ3doZWVsJywgKGV2ZW50OiBXaGVlbEV2ZW50KSA9PiB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgaWYgKGV2ZW50LmN0cmxLZXkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHdoZWVsaW5nKTtcbiAgICAgICAgZW1pdCh0eXBlLCBldmVudCk7XG4gICAgICAgIHR5cGUgPSAnem9vbSc7XG4gICAgICAgIHdoZWVsaW5nID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgZW1pdCgnZW5kJywgZXZlbnQpO1xuICAgICAgICAgIHR5cGUgPSAnc3RhcnQnO1xuICAgICAgICB9LCA1MCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl19
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbWFibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2RpcmVjdGl2ZXMvem9vbWFibGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFjLFdBQVcsRUFBRSxLQUFLLEdBQXFCLE1BQU0sZUFBZSxDQUFDO0FBSTNHLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sRUFBNEIsWUFBWSxFQUFDLE1BQU0sSUFBSSxDQUFDO0FBQzNELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFDLFdBQVcsR0FBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDOzs7O0FBS25ELE1BQU0sT0FBTyxpQkFBaUI7SUFjNUIsWUFDVSxVQUFzQixFQUN0QixXQUF3QixFQUN4QixZQUEwQixFQUMxQixJQUFZO1FBSFosZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBYmlCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDaEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUlsRCxVQUFLLEdBQUcsSUFBSSxDQUFDO1FBRWIscUJBQWdCLEdBQUcsWUFBWSxDQUFDO1FBa0h4QyxXQUFNLEdBQUcsQ0FBQyxLQUE0QixFQUFFLEVBQUU7WUFDeEMsSUFBSSxLQUFLLENBQUMsV0FB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IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtab29tU2VydmljZX0gZnJvbSAnLi4vc2VydmljZS96b29tLnNlcnZpY2UnO1xuaW1wb3J0IHtJQ2hhcnRDb25maWd9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtY29uZmlnJztcbmltcG9ydCB7QXhpc30gZnJvbSAnLi4vY29yZS9heGlzL2F4aXMnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuaW1wb3J0IHtEM1pvb21FdmVudCwgWm9vbUJlaGF2aW9yLCB6b29tSWRlbnRpdHl9IGZyb20gJ2QzJztcbmltcG9ydCB7Wm9vbVR5cGV9IGZyb20gJy4uL21vZGVsL2VudW0vem9vbS10eXBlJztcbmltcG9ydCB7QXhpc09yaWVudGF0aW9ufSBmcm9tICcuLi9tb2RlbC9lbnVtL2F4aXMtb3JpZW50YXRpb24nO1xuaW1wb3J0IHtab29tTWVzc2FnZSx9IGZyb20gJy4uL21vZGVsL2ktYnJvYWRjYXN0LW1lc3NhZ2UnO1xuaW1wb3J0IHt0YWtlV2hpbGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDaGFydFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvY2hhcnQuc2VydmljZSc7XG5pbXBvcnQge1pvb21CZWhhdmlvclR5cGV9IGZyb20gJy4uL21vZGVsL2VudW0vem9vbS1iZWhhdmlvci10eXBlJztcbmltcG9ydCB7U2NhbGVUeXBlfSBmcm9tIFwiLi4vbW9kZWwvZW51bS9zY2FsZS10eXBlXCI7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0ZXRhWm9vbWFibGVdJyxcbn0pXG5leHBvcnQgY2xhc3MgWm9vbWFibGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBjb25maWc6IElDaGFydENvbmZpZztcbiAgQElucHV0KCkgYXhpczogQXhpcztcbiAgQElucHV0KCkgc2l6ZTogRE9NUmVjdDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnpvb21hYmxlJykgcHJpdmF0ZSB6b29tYWJsZSA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNyb3NzaGFpcicpIHByaXZhdGUgY3Jvc3NoYWlyID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfZWxlbWVudDogZDMuU2VsZWN0aW9uPFNWR0VsZW1lbnQsIGFueSwgYW55LCBhbnk+O1xuICBwcml2YXRlIHpvb206IFpvb21CZWhhdmlvcjxhbnksIGFueT47XG4gIHByaXZhdGUgYWxpdmUgPSB0cnVlO1xuXG4gIHByaXZhdGUgY3VycmVudFRyYW5zZm9ybSA9IHpvb21JZGVudGl0eTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSB6b29tU2VydmljZTogWm9vbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFydFNlcnZpY2U6IENoYXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZVxuICApIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmF4aXM/Lm9wdGlvbnM/Lnpvb20gfHwgdGhpcy5jb25maWc/Lnpvb20/LmVuYWJsZSkge1xuICAgICAgdGhpcy56b29tYWJsZSA9IHRoaXMuY29uZmlnPy56b29tPy56b29tQmVoYXZpb3IgPT09IFpvb21CZWhhdmlvclR5cGUubW92ZSAmJiAhdGhpcy5jb25maWc/LnRvb2x0aXA/LnNob3dDcm9zc2hhaXI7XG4gICAgICB0aGlzLmNyb3NzaGFpciA9IHRoaXMuY29uZmlnPy50b29sdGlwPy5zaG93Q3Jvc3NoYWlyO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmluaXRab29tTGlzdGVuZXJzKCk7XG4gICAgdGhpcy5pbml0Wm9vbVN5bmMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuem9vbT8ub24oJ3pvb20gZW5kJywgbnVsbCk7XG4gICAgdGhpcy5fZWxlbWVudD8ub24oJ3doZWVsJywgbnVsbCk7XG4gICAgdGhpcy5hbGl2ZSA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0Wm9vbVN5bmMoKSB7XG4gICAgdGhpcy56b29tU2VydmljZS56b29tZWQucGlwZShcbiAgICAgIHRha2VXaGlsZSgoKSA9PiB0aGlzLmFsaXZlKVxuICAgICkuc3Vic2NyaWJlKCh6b29tZWQ6IFpvb21NZXNzYWdlKSA9PiB7XG4gICAgICBpZiAodGhpcy5fZWxlbWVudCAmJiB0aGlzLmVsZW1lbnRSZWYgIT09IHpvb21lZD8uZWxlbWVudFxuICAgICAgICAmJiB6b29tZWQ/LmF4aXM/LmluZGV4ID09PSB0aGlzLmF4aXMuaW5kZXhcbiAgICAgICAgJiYgem9vbWVkPy5heGlzPy5vcmllbnRhdGlvbiA9PT0gdGhpcy5heGlzLm9yaWVudGF0aW9uKSB7XG4gICAgICAgIGNvbnN0IHNjYWxlID0gdGhpcy5heGlzLnNjYWxlLmNvcHkoKS5kb21haW4odGhpcy5heGlzLm9yaWdpbkRvbWFpbik7XG4gICAgICAgIGxldCB0cmFuc2Zvcm07XG4gICAgICAgIGlmICh6b29tZWQuZG9tYWluID09PSBudWxsKSB7XG4gICAgICAgICAgdHJhbnNmb3JtID0gem9vbUlkZW50aXR5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRyYW5zZm9ybSA9XG4gICAgICAgICAgICB0aGlzLnpvb21TZXJ2aWNlLmdldEQzVHJhbnNmb3JtKHpvb21lZC5kb21haW4sIHRoaXMuYXhpcy5vcmlnaW5Eb21haW4sIHNjYWxlLCB0aGlzLmF4aXMub3JpZW50YXRpb24sIHRoaXMuYXhpcy5vcHRpb25zLmludmVydGVkKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9lbGVtZW50LmNhbGwodGhpcy56b29tLnRyYW5zZm9ybSwgdHJhbnNmb3JtKTtcbiAgICAgICAgdGhpcy5jdXJyZW50VHJhbnNmb3JtID0gdHJhbnNmb3JtO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0Wm9vbUxpc3RlbmVycygpIHtcbiAgICBjb25zdCBlbmFibGUgPVxuICAgICAgKHRoaXMuYXhpcz8ub3B0aW9ucz8uem9vbSAmJiB0aGlzLmF4aXM/Lm9wdGlvbnMudmlzaWJsZSAhPT0gZmFsc2UpIHx8XG4gICAgICB0aGlzLmNvbmZpZz8uem9vbT8uZW5hYmxlO1xuICAgIGlmICghZW5hYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2VsZW1lbnQgPSBkMy5zZWxlY3QodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHRoaXMuem9vbSA9IGQzLnpvb20oKS5leHRlbnQoW1xuICAgICAgWzAsIDBdLFxuICAgICAgW3RoaXMuc2l6ZS53aWR0aCwgdGhpcy5zaXplLmhlaWdodF0sXG4gICAgXSk7XG5cbiAgICBjb25zdCBtaW4gPSB0aGlzLmNvbmZpZz8uem9vbT8ubWluVHJhbnNsYXRlICE9IG51bGxcbiAgICAgID8gdGhpcy5heGlzLnNjYWxlKHRoaXMuY29uZmlnPy56b29tPy5taW5UcmFuc2xhdGUpXG4gICAgICA6IC1JbmZpbml0eTtcbiAgICBjb25zdCBtYXggPSAodGhpcy5jb25maWc/Lnpvb20/Lm1heFRyYW5zbGF0ZSAhPSBudWxsXG4gICAgICA/IHRoaXMuYXhpcy5zY2FsZSh0aGlzLmNvbmZpZz8uem9vbT8ubWF4VHJhbnNsYXRlKVxuICAgICAgOiBJbmZpbml0eSk7XG4gICAgaWYgKHRoaXMuYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnggJiYgdGhpcy5jb25maWcuem9vbS50eXBlID09PSBab29tVHlwZS54KSB7XG4gICAgICB0aGlzLnpvb20udHJhbnNsYXRlRXh0ZW50KFtcbiAgICAgICAgW01hdGgubWluKG1pbiwgbWF4KSwgLUluZmluaXR5XSxcbiAgICAgICAgW01hdGgubWF4KG1pbiwgbWF4KSwgSW5maW5pdHldLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnkgJiYgdGhpcy5jb25maWcuem9vbS50eXBlID09PSBab29tVHlwZS55KSB7XG4gICAgICB0aGlzLnpvb20udHJhbnNsYXRlRXh0ZW50KFtcbiAgICAgICAgWy1JbmZpbml0eSwgTWF0aC5taW4obWluLCBtYXgpXSxcbiAgICAgICAgW0luZmluaXR5LCBNYXRoLm1heChtaW4sIG1heCldLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlnLnpvb20/LndoZWVsRGVsdGEpIHtcbiAgICAgIHRoaXMuem9vbS53aGVlbERlbHRhKHRoaXMuY29uZmlnLnpvb20/LndoZWVsRGVsdGEpO1xuICAgIH1cblxuICAgIGlmKHRoaXMuYXhpcy5vcHRpb25zLnNjYWxlVHlwZS50eXBlICE9PSBTY2FsZVR5cGUuYmFuZCkge1xuXG4gICAgICBjb25zdCBleHRyZW1lcyA9IHRoaXMuYXhpcy5leHRyZW1lcyBhcyBudW1iZXJbXTtcblxuICAgICAgY29uc3QgbWF4Wm9vbSA9IHRoaXMuY29uZmlnLnpvb20/Lm1heFxuICAgICAgICA/IChleHRyZW1lc1sxXSAtIGV4dHJlbWVzWzBdKSAvXG4gICAgICAgIHRoaXMuY29uZmlnLnpvb20/Lm1heFxuICAgICAgICA6IHRoaXMuY29uZmlnLnpvb20/LmxpbWl0Wm9vbUJ5RGF0YVxuICAgICAgICAgID8gMVxuICAgICAgICAgIDogMDtcblxuICAgICAgY29uc3QgbWluWm9vbSA9IHRoaXMuY29uZmlnLnpvb20/Lm1pblxuICAgICAgICA/IChleHRyZW1lc1sxXSAtIGV4dHJlbWVzWzBdKSAvXG4gICAgICAgIHRoaXMuY29uZmlnLnpvb20/Lm1pblxuICAgICAgICA6IEluZmluaXR5O1xuXG4gICAgICB0aGlzLnpvb20uc2NhbGVFeHRlbnQoW21heFpvb20sIG1pblpvb21dKTtcbiAgICB9XG5cblxuICAgIHRoaXMuem9vbS5vbignc3RhcnQgem9vbSBlbmQnLCB0aGlzLnpvb21lZCk7XG4gICAgdGhpcy5fZWxlbWVudC5jYWxsKHRoaXMuem9vbSkub24oJ2RibGNsaWNrLnpvb20nLCBudWxsKTtcblxuICAgIGlmICh0aGlzLmNvbmZpZz8uem9vbT8uem9vbUJlaGF2aW9yID09PSBab29tQmVoYXZpb3JUeXBlLndoZWVsKSB7XG4gICAgICB0aGlzLnJ1bldoZWVsVHJhbnNsYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgem9vbWVkID0gKGV2ZW50OiBEM1pvb21FdmVudDxhbnksIGFueT4pID0+IHtcbiAgICBpZiAoZXZlbnQuc291cmNlRXZlbnQpIHtcbiAgICAgIGlmIChPYmplY3Qua2V5cyhldmVudC5zb3VyY2VFdmVudCkubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgIGNvbnN0IG9yaWdpbiA9IHRoaXMuYXhpcy5zY2FsZS5jb3B5KCkuZG9tYWluKHRoaXMuYXhpcy5vcmlnaW5Eb21haW4pO1xuICAgICAgICBpZih0aGlzLmF4aXMub3B0aW9ucy5zY2FsZVR5cGUudHlwZSA9PT0gU2NhbGVUeXBlLmJhbmQpIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRvbWFpbiA9XG4gICAgICAgICAgdGhpcy5heGlzLm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueVxuICAgICAgICAgICAgPyBldmVudC50cmFuc2Zvcm0ucmVzY2FsZVkob3JpZ2luKS5kb21haW4oKVxuICAgICAgICAgICAgOiBldmVudC50cmFuc2Zvcm0ucmVzY2FsZVgob3JpZ2luKS5kb21haW4oKTtcblxuICAgICAgICBjb25zdCBtZXNzYWdlID0gbmV3IFpvb21NZXNzYWdlKHtcbiAgICAgICAgICBldmVudFR5cGU6IGV2ZW50LnR5cGUsXG4gICAgICAgICAgYXhpczoge1xuICAgICAgICAgICAgaW5kZXg6IHRoaXMuYXhpcy5pbmRleCxcbiAgICAgICAgICAgIG9yaWVudGF0aW9uOiB0aGlzLmF4aXMub3JpZW50YXRpb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBlbGVtZW50OiB0aGlzLmVsZW1lbnRSZWYsXG4gICAgICAgICAgZG9tYWluLFxuICAgICAgICAgIGNoYXJ0SWQ6IHRoaXMuY29uZmlnLmlkXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuem9vbVNlcnZpY2UuZmlyZVpvb20obWVzc2FnZSk7XG4gICAgICAgIHRoaXMuem9vbVNlcnZpY2UuYnJvYWRjYXN0Wm9vbShtZXNzYWdlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY3VycmVudFRyYW5zZm9ybSA9IGV2ZW50LnRyYW5zZm9ybTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBydW5XaGVlbFRyYW5zbGF0ZSgpIHtcbiAgICBsZXQgdHlwZTogJ3N0YXJ0JyB8ICd6b29tJyB8ICdlbmQnID0gJ3N0YXJ0JztcbiAgICBsZXQgd2hlZWxpbmc7XG5cbiAgICB0aGlzLnpvb21cbiAgICAgIC5maWx0ZXIoXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIHJldHVybiAoZXZlbnQuY3RybEtleSAmJiBldmVudC50eXBlID09PSAnd2hlZWwnKSB8fFxuICAgICAgICAgICAgQm9vbGVhbih3aW5kb3cuVG91Y2hFdmVudCAmJiBldmVudC50eXBlICE9PSAnd2hlZWwnKTtcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgLndoZWVsRGVsdGEoKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGRlbHRhID1cbiAgICAgICAgICB0aGlzLmNvbmZpZz8uem9vbS50eXBlID09PSBab29tVHlwZS54XG4gICAgICAgICAgICA/IC1ldmVudC5kZWx0YVhcbiAgICAgICAgICAgIDogLWV2ZW50LmRlbHRhWTtcbiAgICAgICAgcmV0dXJuIGRlbHRhICogMC4wMDI7XG4gICAgICB9KTtcblxuICAgIGNvbnN0IGVtaXQgPSAodHlwZTogc3RyaW5nLCBldmVudDogV2hlZWxFdmVudCkgPT4ge1xuICAgICAgY29uc3Qgb3JpZ2luID0gdGhpcy5heGlzLnNjYWxlLmNvcHkoKS5kb21haW4odGhpcy5heGlzLm9yaWdpbkRvbWFpbik7XG4gICAgICBsZXQgdHJhbnNmb3JtID0gem9vbUlkZW50aXR5O1xuICAgICAgY29uc3QgZGVsdGEgPVxuICAgICAgICB0eXBlID09PSAnZW5kJ1xuICAgICAgICAgID8gMFxuICAgICAgICAgIDogdGhpcy5heGlzLm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueVxuICAgICAgICAgICAgPyBldmVudC5kZWx0YVlcbiAgICAgICAgICAgIDogZXZlbnQuZGVsdGFYO1xuXG4gICAgICBpZiAodGhpcy5heGlzLm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueSkge1xuICAgICAgICB0cmFuc2Zvcm0gPSB0cmFuc2Zvcm0udHJhbnNsYXRlKFxuICAgICAgICAgIDAsXG4gICAgICAgICAgdGhpcy5jdXJyZW50VHJhbnNmb3JtLnkgLSBkZWx0YSAvIDJcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLngpIHtcbiAgICAgICAgdHJhbnNmb3JtID0gdHJhbnNmb3JtLnRyYW5zbGF0ZShcbiAgICAgICAgICB0aGlzLmN1cnJlbnRUcmFuc2Zvcm0ueCAtIGRlbHRhIC8gMixcbiAgICAgICAgICAwXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHRyYW5zZm9ybSA9IHRyYW5zZm9ybS5zY2FsZSh0aGlzLmN1cnJlbnRUcmFuc2Zvcm0uayk7XG5cbiAgICAgIGxldCBkb21haW4gPVxuICAgICAgICB0aGlzLmF4aXMub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi55XG4gICAgICAgICAgPyB0cmFuc2Zvcm0ucmVzY2FsZVkob3JpZ2luKS5kb21haW4oKVxuICAgICAgICAgIDogdHJhbnNmb3JtLnJlc2NhbGVYKG9yaWdpbikuZG9tYWluKCk7XG5cbiAgICAgIGNvbnN0IGV4dGVudCA9IHRoaXMuYXhpcy5vcHRpb25zPy5pbnZlcnRlZCA/IGRvbWFpbiA6IFsuLi5kb21haW5dLnJldmVyc2UoKTtcblxuICAgICAgaWYoZXh0ZW50WzBdIDw9IHRoaXMuY29uZmlnLnpvb20/Lm1pblRyYW5zbGF0ZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmKGV4dGVudFsxXSA+PSB0aGlzLmNvbmZpZy56b29tPy5tYXhUcmFuc2xhdGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IFpvb21NZXNzYWdlKHtcbiAgICAgICAgZXZlbnRUeXBlOiB0eXBlLFxuICAgICAgICBlbGVtZW50OiB0aGlzLmVsZW1lbnRSZWYsXG4gICAgICAgIGF4aXM6IHtcbiAgICAgICAgICBpbmRleDogdGhpcy5heGlzLmluZGV4LFxuICAgICAgICAgIG9yaWVudGF0aW9uOiB0aGlzLmF4aXMub3JpZW50YXRpb25cbiAgICAgICAgfSxcbiAgICAgICAgZG9tYWluLFxuICAgICAgICBjaGFydElkOiB0aGlzLmNvbmZpZy5pZCxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl9lbGVtZW50Py5jYWxsKHRoaXMuem9vbS50cmFuc2Zvcm0sIHRyYW5zZm9ybSk7XG4gICAgICB0aGlzLnpvb21TZXJ2aWNlLmZpcmVab29tKG1lc3NhZ2UpO1xuICAgICAgdGhpcy56b29tU2VydmljZS5icm9hZGNhc3Rab29tKG1lc3NhZ2UpO1xuICAgICAgdGhpcy5jdXJyZW50VHJhbnNmb3JtID0gdHJhbnNmb3JtO1xuICAgIH07XG5cbiAgICB0aGlzLl9lbGVtZW50Lm9uKCd3aGVlbCcsIChldmVudDogV2hlZWxFdmVudCkgPT4ge1xuXG5cbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBpZiAoZXZlbnQuY3RybEtleSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQod2hlZWxpbmcpO1xuICAgICAgICBlbWl0KHR5cGUsIGV2ZW50KTtcbiAgICAgICAgdHlwZSA9ICd6b29tJztcbiAgICAgICAgd2hlZWxpbmcgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBlbWl0KCdlbmQnLCBldmVudCk7XG4gICAgICAgICAgdHlwZSA9ICdzdGFydCc7XG4gICAgICAgIH0sIDUwKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -15,4 +15,4 @@ export class BrushMessage {
15
15
  this.mode = options?.mode;
16
16
  }
17
17
  }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1icm9hZGNhc3QtbWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9tb2RlbC9pLWJyb2FkY2FzdC1tZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLE1BQU0sT0FBTyxXQUFXO0lBUXRCLFlBQVksT0FPWDtRQUNDLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxFQUFFLFNBQVMsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sRUFBRSxPQUFPLENBQUM7UUFDaEMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLEVBQUUsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sRUFBRSxPQUFPLENBQUM7UUFDaEMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLEVBQUUsS0FBSyxDQUFDO0lBQzlCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxZQUFZO0lBS3ZCLFlBQVksT0FJWDtRQUNDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxFQUFFLE9BQU8sQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sRUFBRSxTQUFTLENBQUM7UUFDcEMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLEVBQUUsSUFBSSxDQUFDO0lBQzVCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXhpc09yaWVudGF0aW9ufSBmcm9tICcuL2VudW0vYXhpcy1vcmllbnRhdGlvbic7XG5pbXBvcnQge0VsZW1lbnRSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBUcmFuc2Zvcm1TdHlsZSA9IHtcbiAgdHJhbnNpdGlvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIFRhcmdldEF4aXMgPSB7XG4gIGluZGV4OiBudW1iZXIsXG4gIG9yaWVudGF0aW9uOiBBeGlzT3JpZW50YXRpb25cbn1cblxuZXhwb3J0IGNsYXNzIFpvb21NZXNzYWdlIHtcbiAgZXZlbnRUeXBlOiAnc3RhcnQnIHwgJ3pvb20nIHwgJ2VuZCcgfCBzdHJpbmc7XG4gIGVsZW1lbnQ/OiBFbGVtZW50UmVmO1xuICBheGlzOiBUYXJnZXRBeGlzO1xuICBkb21haW4/OiBbbnVtYmVyLCBudW1iZXJdO1xuICBjaGFydElkOiBzdHJpbmc7XG4gIHN0eWxlPzogVHJhbnNmb3JtU3R5bGU7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9ucz86IHtcbiAgICBldmVudFR5cGU6ICdzdGFydCcgfCAnem9vbScgfCAnZW5kJyB8IHN0cmluZztcbiAgICBlbGVtZW50PzogRWxlbWVudFJlZjtcbiAgICBheGlzPzogVGFyZ2V0QXhpcztcbiAgICBkb21haW4/OiBbbnVtYmVyLCBudW1iZXJdXG4gICAgY2hhcnRJZDogc3RyaW5nO1xuICAgIHN0eWxlPzogVHJhbnNmb3JtU3R5bGU7XG4gIH0pIHtcbiAgICB0aGlzLmV2ZW50VHlwZSA9IG9wdGlvbnM/LmV2ZW50VHlwZTtcbiAgICB0aGlzLmVsZW1lbnQgPSBvcHRpb25zPy5lbGVtZW50O1xuICAgIHRoaXMuYXhpcyA9IG9wdGlvbnM/LmF4aXM7XG4gICAgdGhpcy5kb21haW4gPSBvcHRpb25zLmRvbWFpbjtcbiAgICB0aGlzLmNoYXJ0SWQgPSBvcHRpb25zPy5jaGFydElkO1xuICAgIHRoaXMuc3R5bGUgPSBvcHRpb25zPy5zdHlsZTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQnJ1c2hNZXNzYWdlIHtcbiAgY2hhcnRJZDogc3RyaW5nO1xuICBzZWxlY3Rpb246IFtudW1iZXIsIG51bWJlcl07XG4gIG1vZGU6ICdkcmFnJyB8ICdzcGFjZScgfCAnaGFuZGxlJyB8ICdjZW50ZXInIHwgJ2luaXQnO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiB7XG4gICAgY2hhcnRJZDogc3RyaW5nO1xuICAgIHNlbGVjdGlvbjogW251bWJlciwgbnVtYmVyXTtcbiAgICBtb2RlOiAnZHJhZycgfCAnc3BhY2UnIHwgJ2hhbmRsZScgfCAnY2VudGVyJyB8ICdpbml0JztcbiAgfSkge1xuICAgIHRoaXMuY2hhcnRJZCA9IG9wdGlvbnM/LmNoYXJ0SWQ7XG4gICAgdGhpcy5zZWxlY3Rpb24gPSBvcHRpb25zPy5zZWxlY3Rpb247XG4gICAgdGhpcy5tb2RlID0gb3B0aW9ucz8ubW9kZTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElCcm9hZGNhc3RNZXNzYWdlPFQ+IHtcbiAgY2hhbm5lbDogc3RyaW5nO1xuICBtZXNzYWdlOiBUO1xufVxuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1icm9hZGNhc3QtbWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9tb2RlbC9pLWJyb2FkY2FzdC1tZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLE1BQU0sT0FBTyxXQUFXO0lBUXRCLFlBQVksT0FPWDtRQUNDLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxFQUFFLFNBQVMsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sRUFBRSxPQUFPLENBQUM7UUFDaEMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLEVBQUUsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sRUFBRSxPQUFPLENBQUM7UUFDaEMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLEVBQUUsS0FBSyxDQUFDO0lBQzlCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxZQUFZO0lBS3ZCLFlBQVksT0FJWDtRQUNDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxFQUFFLE9BQU8sQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sRUFBRSxTQUFTLENBQUM7UUFDcEMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLEVBQUUsSUFBSSxDQUFDO0lBQzVCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXhpc09yaWVudGF0aW9ufSBmcm9tICcuL2VudW0vYXhpcy1vcmllbnRhdGlvbic7XG5pbXBvcnQge0VsZW1lbnRSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBUcmFuc2Zvcm1TdHlsZSA9IHtcbiAgdHJhbnNpdGlvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIFRhcmdldEF4aXMgPSB7XG4gIGluZGV4OiBudW1iZXIsXG4gIG9yaWVudGF0aW9uOiBBeGlzT3JpZW50YXRpb25cbn1cblxuZXhwb3J0IGNsYXNzIFpvb21NZXNzYWdlIHtcbiAgZXZlbnRUeXBlOiAnc3RhcnQnIHwgJ3pvb20nIHwgJ2VuZCcgfCBzdHJpbmc7XG4gIGVsZW1lbnQ/OiBFbGVtZW50UmVmO1xuICBheGlzOiBUYXJnZXRBeGlzO1xuICBkb21haW4/OiBbbnVtYmVyLCBudW1iZXJdO1xuICBjaGFydElkOiBzdHJpbmc7XG4gIHN0eWxlPzogVHJhbnNmb3JtU3R5bGU7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9ucz86IHtcbiAgICBldmVudFR5cGU6ICdzdGFydCcgfCAnem9vbScgfCAnZW5kJyB8IHN0cmluZztcbiAgICBlbGVtZW50PzogRWxlbWVudFJlZjtcbiAgICBheGlzPzogVGFyZ2V0QXhpcztcbiAgICBkb21haW4/OiBbbnVtYmVyLCBudW1iZXJdXG4gICAgY2hhcnRJZDogc3RyaW5nO1xuICAgIHN0eWxlPzogVHJhbnNmb3JtU3R5bGU7XG4gIH0pIHtcbiAgICB0aGlzLmV2ZW50VHlwZSA9IG9wdGlvbnM/LmV2ZW50VHlwZTtcbiAgICB0aGlzLmVsZW1lbnQgPSBvcHRpb25zPy5lbGVtZW50O1xuICAgIHRoaXMuYXhpcyA9IG9wdGlvbnM/LmF4aXM7XG4gICAgdGhpcy5kb21haW4gPSBvcHRpb25zLmRvbWFpbjtcbiAgICB0aGlzLmNoYXJ0SWQgPSBvcHRpb25zPy5jaGFydElkO1xuICAgIHRoaXMuc3R5bGUgPSBvcHRpb25zPy5zdHlsZTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQnJ1c2hNZXNzYWdlIHtcbiAgY2hhcnRJZDogc3RyaW5nO1xuICBzZWxlY3Rpb246IFtudW1iZXIsIG51bWJlcl07XG4gIG1vZGU/OiAnZHJhZycgfCAnc3BhY2UnIHwgJ2hhbmRsZScgfCAnY2VudGVyJyB8ICdpbml0JztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zPzoge1xuICAgIGNoYXJ0SWQ6IHN0cmluZztcbiAgICBzZWxlY3Rpb246IFtudW1iZXIsIG51bWJlcl07XG4gICAgbW9kZT86ICdkcmFnJyB8ICdzcGFjZScgfCAnaGFuZGxlJyB8ICdjZW50ZXInIHwgJ2luaXQnO1xuICB9KSB7XG4gICAgdGhpcy5jaGFydElkID0gb3B0aW9ucz8uY2hhcnRJZDtcbiAgICB0aGlzLnNlbGVjdGlvbiA9IG9wdGlvbnM/LnNlbGVjdGlvbjtcbiAgICB0aGlzLm1vZGUgPSBvcHRpb25zPy5tb2RlO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUJyb2FkY2FzdE1lc3NhZ2U8VD4ge1xuICBjaGFubmVsOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IFQ7XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1jaGFydC1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2hhcnQvbW9kZWwvaS1jaGFydC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2VyaWVzfSBmcm9tICcuL3Nlcmllcyc7XG5pbXBvcnQge0Jhc2VQb2ludH0gZnJvbSAnLi9iYXNlLXBvaW50JztcbmltcG9ydCB7QXhpc09wdGlvbnN9IGZyb20gJy4vYXhpcy1vcHRpb25zJztcbmltcG9ydCB7Wm9vbVR5cGV9IGZyb20gJy4vZW51bS96b29tLXR5cGUnO1xuaW1wb3J0IHtUb29sdGlwT3B0aW9uc30gZnJvbSAnLi90b29sdGlwLW9wdGlvbnMnO1xuaW1wb3J0IHtDaGFydEJvdW5kc30gZnJvbSAnLi9jaGFydC1ib3VuZHMnO1xuaW1wb3J0IHtCcnVzaFR5cGV9IGZyb20gJy4vZW51bS9icnVzaC10eXBlJztcbmltcG9ydCB7QW5ub3RhdGlvbn0gZnJvbSAnLi9hbm5vdGF0aW9uJztcbmltcG9ydCB7Wm9vbUJlaGF2aW9yVHlwZX0gZnJvbSAnLi9lbnVtL3pvb20tYmVoYXZpb3ItdHlwZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNoYXJ0Q29uZmlnIHtcbiAgbmFtZT86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIHNlcmllcz86IFNlcmllczxCYXNlUG9pbnQ+W107XG4gIG5vRGF0YVRleHQ/OiAnTm8gZGF0YScsXG4gIHpvb20/OiB7XG4gICAgZW5hYmxlOiBib29sZWFuO1xuICAgIHR5cGU6IFpvb21UeXBlO1xuICAgIGF4aXNJbmRleD86IG51bWJlcjtcbiAgICBzeW5jQ2hhbm5lbD86IHN0cmluZztcbiAgICBtaW4/OiBudW1iZXI7XG4gICAgbWF4PzogbnVtYmVyO1xuICAgIGxpbWl0VHJhbnNsYXRlQnlEYXRhPzogYm9vbGVhbjtcbiAgICBsaW1pdFpvb21CeURhdGE/OiBib29sZWFuO1xuICAgIHpvb21CZWhhdmlvcj86IFpvb21CZWhhdmlvclR5cGUsXG4gICAgd2hlZWxEZWx0YT86IChldmVudDogV2hlZWxFdmVudCkgPT4gbnVtYmVyLFxuICAgIG1pblRyYW5zbGF0ZT86IG51bWJlcjtcbiAgICBtYXhUcmFuc2xhdGU/OiBudW1iZXI7XG4gIH07XG4gIGJydXNoPzoge1xuICAgIGVuYWJsZT86IGJvb2xlYW47XG4gICAgdHlwZTogQnJ1c2hUeXBlO1xuICAgIGZyb20/OiBudW1iZXI7XG4gICAgdG8/OiBudW1iZXI7XG4gICAgbWluPzogbnVtYmVyO1xuICAgIG1heD86IG51bWJlclxuICB9O1xuICBsZWdlbmQ/OiB7XG4gICAgZW5hYmxlPzogYm9vbGVhbjtcbiAgfTtcbiAgYm91bmRzPzogQ2hhcnRCb3VuZHM7XG4gIGludmVydGVkPzogYm9vbGVhbjtcbiAgdG9vbHRpcD86IFRvb2x0aXBPcHRpb25zO1xuICB4QXhpczogQXhpc09wdGlvbnNbXTtcbiAgeUF4aXM6IEF4aXNPcHRpb25zW107XG4gIGFubm90YXRpb25zPzogQW5ub3RhdGlvbltdO1xuICBncmlkTGluZXM/OiB7XG4gICAgZW5hYmxlPzogYm9vbGVhbjtcbiAgICBzaG93WD86IGJvb2xlYW47XG4gICAgc2hvd1k/OiBib29sZWFuO1xuICB9O1xuICB3aWR0aD86IG51bWJlcjtcbiAgaGVpZ2h0PzogbnVtYmVyO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1jaGFydC1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2hhcnQvbW9kZWwvaS1jaGFydC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2VyaWVzfSBmcm9tICcuL3Nlcmllcyc7XG5pbXBvcnQge0Jhc2VQb2ludH0gZnJvbSAnLi9iYXNlLXBvaW50JztcbmltcG9ydCB7QXhpc09wdGlvbnN9IGZyb20gJy4vYXhpcy1vcHRpb25zJztcbmltcG9ydCB7Wm9vbVR5cGV9IGZyb20gJy4vZW51bS96b29tLXR5cGUnO1xuaW1wb3J0IHtUb29sdGlwT3B0aW9uc30gZnJvbSAnLi90b29sdGlwLW9wdGlvbnMnO1xuaW1wb3J0IHtDaGFydEJvdW5kc30gZnJvbSAnLi9jaGFydC1ib3VuZHMnO1xuaW1wb3J0IHtCcnVzaFR5cGV9IGZyb20gJy4vZW51bS9icnVzaC10eXBlJztcbmltcG9ydCB7QW5ub3RhdGlvbn0gZnJvbSAnLi9hbm5vdGF0aW9uJztcbmltcG9ydCB7Wm9vbUJlaGF2aW9yVHlwZX0gZnJvbSAnLi9lbnVtL3pvb20tYmVoYXZpb3ItdHlwZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNoYXJ0Q29uZmlnIHtcbiAgbmFtZT86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIHNlcmllcz86IFNlcmllczxCYXNlUG9pbnQ+W107XG4gIG5vRGF0YVRleHQ/OiAnTm8gZGF0YScsXG4gIHpvb20/OiB7XG4gICAgZW5hYmxlOiBib29sZWFuO1xuICAgIHR5cGU6IFpvb21UeXBlO1xuICAgIGF4aXNJbmRleD86IG51bWJlcjtcbiAgICBzeW5jQ2hhbm5lbD86IHN0cmluZztcbiAgICBtaW4/OiBudW1iZXI7XG4gICAgbWF4PzogbnVtYmVyO1xuICAgIGxpbWl0VHJhbnNsYXRlQnlEYXRhPzogYm9vbGVhbjtcbiAgICBsaW1pdFpvb21CeURhdGE/OiBib29sZWFuO1xuICAgIHpvb21CZWhhdmlvcj86IFpvb21CZWhhdmlvclR5cGUsXG4gICAgd2hlZWxEZWx0YT86IChldmVudDogV2hlZWxFdmVudCkgPT4gbnVtYmVyLFxuICAgIG1pblRyYW5zbGF0ZT86IG51bWJlcjtcbiAgICBtYXhUcmFuc2xhdGU/OiBudW1iZXI7XG4gIH07XG4gIGJydXNoPzoge1xuICAgIGVuYWJsZT86IGJvb2xlYW47XG4gICAgdHlwZTogQnJ1c2hUeXBlO1xuICAgIGZyb20/OiBudW1iZXI7XG4gICAgdG8/OiBudW1iZXI7XG4gICAgbWluPzogbnVtYmVyO1xuICAgIG1heD86IG51bWJlclxuICB9O1xuICBsZWdlbmQ/OiB7XG4gICAgZW5hYmxlPzogYm9vbGVhbjtcbiAgfTtcbiAgYm91bmRzPzogQ2hhcnRCb3VuZHM7XG4gIGludmVydGVkPzogYm9vbGVhbjtcbiAgdG9vbHRpcD86IFRvb2x0aXBPcHRpb25zO1xuICB4QXhpczogQXhpc09wdGlvbnNbXTtcbiAgeUF4aXM6IEF4aXNPcHRpb25zW107XG4gIGFubm90YXRpb25zPzogQW5ub3RhdGlvbltdO1xuICBncmlkTGluZXM/OiB7XG4gICAgZW5hYmxlPzogYm9vbGVhbjtcbiAgICBzaG93WD86IGJvb2xlYW47XG4gICAgc2hvd1k/OiBib29sZWFuO1xuICAgIHg/OiB7XG4gICAgICB0aWNrc0NvdW50PzogbnVtYmVyXG4gICAgfSxcbiAgICB5Pzoge1xuICAgICAgdGlja3NDb3VudD86IG51bWJlclxuICAgIH1cbiAgfTtcbiAgd2lkdGg/OiBudW1iZXI7XG4gIGhlaWdodD86IG51bWJlcjtcbn1cbiJdfQ==
@@ -457,10 +457,9 @@ const getTextWidth = (inputText, backupRatio = 0.5, fontSize = 10) => {
457
457
  return fontSize * backupRatio * text.length;
458
458
  };
459
459
 
460
- function generateTicks(extremes) {
460
+ function generateTicks(extremes, count = 10) {
461
461
  const [min, max] = extremes;
462
- const tickCount = 10;
463
- const tickStep = (max - min) / tickCount;
462
+ const tickStep = (max - min) / count;
464
463
  const ticks = d3
465
464
  .range(min, max + tickStep, tickStep)
466
465
  .filter((step) => step <= max);
@@ -1590,15 +1589,17 @@ class GridlinesComponent {
1590
1589
  this.svc = svc;
1591
1590
  this.chartService = chartService;
1592
1591
  this.config = this.chartService.config;
1593
- this.tickYValues = this.svc.scales.pipe(map((_) => {
1594
- var _a;
1592
+ this.tickYValues = this.svc.scales.pipe(withLatestFrom(this.config), map((_) => {
1593
+ var _a, _b, _c, _d, _e;
1594
+ const [scales, config] = _;
1595
1595
  const ratio = this.size.height / 40;
1596
- return (_a = _.y.get(0)) === null || _a === void 0 ? void 0 : _a.scale.ticks(ratio);
1596
+ return ((_b = (_a = config.gridLines) === null || _a === void 0 ? void 0 : _a.y) === null || _b === void 0 ? void 0 : _b.ticksCount) != null ? generateTicks(scales.y.get(0).scale.domain(), (_d = (_c = config.gridLines) === null || _c === void 0 ? void 0 : _c.y) === null || _d === void 0 ? void 0 : _d.ticksCount) : (_e = scales.y.get(0)) === null || _e === void 0 ? void 0 : _e.scale.ticks(ratio);
1597
1597
  }));
1598
- this.tickXValues = this.svc.scales.pipe(map((_) => {
1599
- var _a;
1598
+ this.tickXValues = this.svc.scales.pipe(withLatestFrom(this.config), map((_) => {
1599
+ var _a, _b, _c, _d, _e;
1600
+ const [scales, config] = _;
1600
1601
  const ratio = this.size.width / 40;
1601
- return (_a = _.x.get(0)) === null || _a === void 0 ? void 0 : _a.scale.ticks(ratio);
1602
+ return ((_b = (_a = config.gridLines) === null || _a === void 0 ? void 0 : _a.x) === null || _b === void 0 ? void 0 : _b.ticksCount) != null ? generateTicks(scales.x.get(0).originDomain, (_d = (_c = config.gridLines) === null || _c === void 0 ? void 0 : _c.x) === null || _d === void 0 ? void 0 : _d.ticksCount) : (_e = scales.x.get(0)) === null || _e === void 0 ? void 0 : _e.scale.ticks(ratio);
1602
1603
  }));
1603
1604
  this.y = this.svc.scales.pipe(map((_) => { var _a; return (_a = _.y.get(0)) === null || _a === void 0 ? void 0 : _a.scale; }));
1604
1605
  this.x = this.svc.scales.pipe(map((_) => { var _a; return (_a = _.x.get(0)) === null || _a === void 0 ? void 0 : _a.scale; }));
@@ -1718,6 +1719,12 @@ class PlotlineComponent {
1718
1719
  const drag = this.dragElements
1719
1720
  .on('start drag end', (event, d) => {
1720
1721
  d.value = this.scale.invert(event[AxisOrientation[this.axis.orientation]]);
1722
+ if (d.max !== null && d.max !== undefined && d.value >= d.max) {
1723
+ d.value = d.max;
1724
+ }
1725
+ if (d.min !== null && d.min !== undefined && d.value <= d.min) {
1726
+ d.value = d.min;
1727
+ }
1721
1728
  this.emit({
1722
1729
  event,
1723
1730
  target: d,
@@ -2038,7 +2045,10 @@ class ZoomableDirective {
2038
2045
  if (event.sourceEvent) {
2039
2046
  if (Object.keys(event.sourceEvent).length !== 0) {
2040
2047
  const origin = this.axis.scale.copy().domain(this.axis.originDomain);
2041
- let domain = this.axis.orientation === AxisOrientation.y
2048
+ if (this.axis.options.scaleType.type === ScaleType.band) {
2049
+ return;
2050
+ }
2051
+ const domain = this.axis.orientation === AxisOrientation.y
2042
2052
  ? event.transform.rescaleY(origin).domain()
2043
2053
  : event.transform.rescaleX(origin).domain();
2044
2054
  const message = new ZoomMessage({
@@ -2048,7 +2058,7 @@ class ZoomableDirective {
2048
2058
  orientation: this.axis.orientation,
2049
2059
  },
2050
2060
  element: this.elementRef,
2051
- domain: domain,
2061
+ domain,
2052
2062
  chartId: this.config.id
2053
2063
  });
2054
2064
  this.zoomService.fireZoom(message);
@@ -2071,7 +2081,7 @@ class ZoomableDirective {
2071
2081
  }
2072
2082
  ngOnDestroy() {
2073
2083
  var _a, _b;
2074
- (_a = this.zoom) === null || _a === void 0 ? void 0 : _a.on('start zoom end', null);
2084
+ (_a = this.zoom) === null || _a === void 0 ? void 0 : _a.on('zoom end', null);
2075
2085
  (_b = this._element) === null || _b === void 0 ? void 0 : _b.on('wheel', null);
2076
2086
  this.alive = false;
2077
2087
  }
@@ -2107,28 +2117,28 @@ class ZoomableDirective {
2107
2117
  [0, 0],
2108
2118
  [this.size.width, this.size.height],
2109
2119
  ]);
2110
- const min = ((_g = (_f = this.config) === null || _f === void 0 ? void 0 : _f.zoom) === null || _g === void 0 ? void 0 : _g.minTranslate)
2120
+ const min = ((_g = (_f = this.config) === null || _f === void 0 ? void 0 : _f.zoom) === null || _g === void 0 ? void 0 : _g.minTranslate) != null
2111
2121
  ? this.axis.scale((_j = (_h = this.config) === null || _h === void 0 ? void 0 : _h.zoom) === null || _j === void 0 ? void 0 : _j.minTranslate)
2112
2122
  : -Infinity;
2113
- const max = (((_l = (_k = this.config) === null || _k === void 0 ? void 0 : _k.zoom) === null || _l === void 0 ? void 0 : _l.maxTranslate)
2114
- ? this.axis.scale((_o = (_m = this.config) === null || _m === void 0 ? void 0 : _m.zoom) === null || _o === void 0 ? void 0 : _o.maxTranslate) - (this.axis.orientation === AxisOrientation.x ? this.size.width : this.size.height)
2123
+ const max = (((_l = (_k = this.config) === null || _k === void 0 ? void 0 : _k.zoom) === null || _l === void 0 ? void 0 : _l.maxTranslate) != null
2124
+ ? this.axis.scale((_o = (_m = this.config) === null || _m === void 0 ? void 0 : _m.zoom) === null || _o === void 0 ? void 0 : _o.maxTranslate)
2115
2125
  : Infinity);
2116
2126
  if (this.axis.orientation === AxisOrientation.x && this.config.zoom.type === ZoomType.x) {
2117
2127
  this.zoom.translateExtent([
2118
- [min, -Infinity],
2119
- [max, Infinity],
2128
+ [Math.min(min, max), -Infinity],
2129
+ [Math.max(min, max), Infinity],
2120
2130
  ]);
2121
2131
  }
2122
2132
  if (this.axis.orientation === AxisOrientation.y && this.config.zoom.type === ZoomType.y) {
2123
2133
  this.zoom.translateExtent([
2124
- [-Infinity, min],
2125
- [Infinity, max],
2134
+ [-Infinity, Math.min(min, max)],
2135
+ [Infinity, Math.max(min, max)],
2126
2136
  ]);
2127
2137
  }
2128
2138
  if ((_p = this.config.zoom) === null || _p === void 0 ? void 0 : _p.wheelDelta) {
2129
2139
  this.zoom.wheelDelta((_q = this.config.zoom) === null || _q === void 0 ? void 0 : _q.wheelDelta);
2130
2140
  }
2131
- if (this.axis.options.scaleType.type === ScaleType.band) {
2141
+ if (this.axis.options.scaleType.type !== ScaleType.band) {
2132
2142
  const extremes = this.axis.extremes;
2133
2143
  const maxZoom = ((_r = this.config.zoom) === null || _r === void 0 ? void 0 : _r.max)
2134
2144
  ? (extremes[1] - extremes[0]) /
@@ -2142,7 +2152,7 @@ class ZoomableDirective {
2142
2152
  : Infinity;
2143
2153
  this.zoom.scaleExtent([maxZoom, minZoom]);
2144
2154
  }
2145
- this.zoom.on('zoom end', this.zoomed);
2155
+ this.zoom.on('start zoom end', this.zoomed);
2146
2156
  this._element.call(this.zoom).on('dblclick.zoom', null);
2147
2157
  if (((_x = (_w = this.config) === null || _w === void 0 ? void 0 : _w.zoom) === null || _x === void 0 ? void 0 : _x.zoomBehavior) === ZoomBehaviorType.wheel) {
2148
2158
  this.runWheelTranslate();
@@ -2164,7 +2174,7 @@ class ZoomableDirective {
2164
2174
  return delta * 0.002;
2165
2175
  });
2166
2176
  const emit = (type, event) => {
2167
- var _a;
2177
+ var _a, _b, _c, _d;
2168
2178
  const origin = this.axis.scale.copy().domain(this.axis.originDomain);
2169
2179
  let transform = zoomIdentity;
2170
2180
  const delta = type === 'end'
@@ -2182,6 +2192,13 @@ class ZoomableDirective {
2182
2192
  let domain = this.axis.orientation === AxisOrientation.y
2183
2193
  ? transform.rescaleY(origin).domain()
2184
2194
  : transform.rescaleX(origin).domain();
2195
+ const extent = ((_a = this.axis.options) === null || _a === void 0 ? void 0 : _a.inverted) ? domain : [...domain].reverse();
2196
+ if (extent[0] <= ((_b = this.config.zoom) === null || _b === void 0 ? void 0 : _b.minTranslate)) {
2197
+ return;
2198
+ }
2199
+ if (extent[1] >= ((_c = this.config.zoom) === null || _c === void 0 ? void 0 : _c.maxTranslate)) {
2200
+ return;
2201
+ }
2185
2202
  const message = new ZoomMessage({
2186
2203
  eventType: type,
2187
2204
  element: this.elementRef,
@@ -2192,7 +2209,7 @@ class ZoomableDirective {
2192
2209
  domain,
2193
2210
  chartId: this.config.id,
2194
2211
  });
2195
- (_a = this._element) === null || _a === void 0 ? void 0 : _a.call(this.zoom.transform, transform);
2212
+ (_d = this._element) === null || _d === void 0 ? void 0 : _d.call(this.zoom.transform, transform);
2196
2213
  this.zoomService.fireZoom(message);
2197
2214
  this.zoomService.broadcastZoom(message);
2198
2215
  this.currentTransform = transform;