@tetacom/svg-charts 1.0.2 → 1.1.0

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.
Files changed (145) hide show
  1. package/dist/chart/base/series-base.component.d.ts +4 -1
  2. package/dist/chart/chart/chart.component.d.ts +12 -9
  3. package/dist/chart/chart-container/chart-container.component.d.ts +18 -23
  4. package/dist/chart/chart-container/gridlines/gridlines.component.d.ts +7 -16
  5. package/dist/chart/chart-container/plotband/{plotband.component.d.ts → plot-band.component.d.ts} +10 -10
  6. package/dist/chart/chart-container/plotline/plotline.component.d.ts +5 -5
  7. package/dist/chart/chart-container/series/line/line-series.component.d.ts +2 -2
  8. package/dist/chart/chart-container/series/scatter-series/scatter-series.component.d.ts +28 -0
  9. package/dist/chart/chart-container/series-host/series-host.component.d.ts +4 -1
  10. package/dist/chart/chart-container/tooltip/tooltip.component.d.ts +6 -3
  11. package/dist/chart/chart-container/x-axis/x-axis.component.d.ts +6 -10
  12. package/dist/chart/chart-container/y-axis/y-axis.component.d.ts +7 -11
  13. package/dist/chart/chart.module.d.ts +4 -3
  14. package/dist/chart/core/axis/axis.d.ts +8 -3
  15. package/dist/chart/default/default-axis-config.d.ts +2 -0
  16. package/dist/chart/default/default-chart-config.d.ts +2 -0
  17. package/dist/chart/default/default-series-config.d.ts +3 -0
  18. package/dist/chart/directives/brushable.directive.d.ts +2 -1
  19. package/dist/chart/directives/zoomable.directive.d.ts +1 -3
  20. package/dist/chart/legend/legend.component.d.ts +1 -3
  21. package/dist/chart/model/axis-options.d.ts +9 -7
  22. package/dist/chart/model/base-point.d.ts +1 -1
  23. package/dist/chart/model/enum/public-api.d.ts +1 -1
  24. package/dist/chart/model/enum/scale-type.d.ts +8 -0
  25. package/dist/chart/model/enum/series-type.d.ts +2 -1
  26. package/dist/chart/model/i-broadcast-message.d.ts +14 -2
  27. package/dist/chart/model/i-chart-config.d.ts +1 -0
  28. package/dist/chart/model/{plotband.d.ts → plot-band.d.ts} +7 -5
  29. package/dist/chart/model/{plotline.d.ts → plot-line.d.ts} +3 -1
  30. package/dist/chart/model/public-api.d.ts +2 -2
  31. package/dist/chart/service/brush.service.d.ts +2 -5
  32. package/dist/chart/service/chart.service.d.ts +16 -17
  33. package/dist/chart/service/scale.service.d.ts +13 -8
  34. package/dist/chart/service/zoom.service.d.ts +6 -14
  35. package/dist/esm2020/chart/base/series-base.component.mjs +7 -9
  36. package/dist/esm2020/chart/chart/chart.component.mjs +28 -30
  37. package/dist/esm2020/chart/chart-container/chart-container.component.mjs +97 -115
  38. package/dist/esm2020/chart/chart-container/gridlines/gridlines.component.mjs +19 -31
  39. package/dist/esm2020/chart/chart-container/plotband/plot-band.component.mjs +141 -0
  40. package/dist/esm2020/chart/chart-container/plotline/plotline.component.mjs +11 -14
  41. package/dist/esm2020/chart/chart-container/series/bar/bar-series.component.mjs +11 -11
  42. package/dist/esm2020/chart/chart-container/series/line/line-series.component.mjs +33 -29
  43. package/dist/esm2020/chart/chart-container/series/scatter-series/scatter-series.component.mjs +174 -0
  44. package/dist/esm2020/chart/chart-container/series-host/series-host.component.mjs +16 -5
  45. package/dist/esm2020/chart/chart-container/tooltip/tooltip.component.mjs +17 -19
  46. package/dist/esm2020/chart/chart-container/x-axis/x-axis.component.mjs +19 -22
  47. package/dist/esm2020/chart/chart-container/y-axis/y-axis.component.mjs +20 -25
  48. package/dist/esm2020/chart/chart.module.mjs +8 -5
  49. package/dist/esm2020/chart/core/axis/axis.mjs +25 -16
  50. package/dist/esm2020/chart/core/axis/builders/extremes-builder.mjs +2 -3
  51. package/dist/esm2020/chart/default/default-axis-config.mjs +9 -0
  52. package/dist/esm2020/chart/default/default-chart-config.mjs +23 -0
  53. package/dist/esm2020/chart/default/default-series-config.mjs +8 -0
  54. package/dist/esm2020/chart/directives/brushable.directive.mjs +5 -3
  55. package/dist/esm2020/chart/directives/zoomable.directive.mjs +7 -8
  56. package/dist/esm2020/chart/legend/legend.component.mjs +4 -7
  57. package/dist/esm2020/chart/model/axis-options.mjs +1 -1
  58. package/dist/esm2020/chart/model/base-point.mjs +1 -1
  59. package/dist/esm2020/chart/model/enum/public-api.mjs +2 -2
  60. package/dist/esm2020/chart/model/enum/scale-type.mjs +10 -0
  61. package/dist/esm2020/chart/model/enum/series-type.mjs +2 -1
  62. package/dist/esm2020/chart/model/i-broadcast-message.mjs +1 -1
  63. package/dist/esm2020/chart/model/i-chart-config.mjs +1 -1
  64. package/dist/esm2020/chart/model/plot-band.mjs +17 -0
  65. package/dist/esm2020/chart/model/plot-line.mjs +13 -0
  66. package/dist/esm2020/chart/model/public-api.mjs +3 -3
  67. package/dist/esm2020/chart/service/broadcast.service.mjs +3 -5
  68. package/dist/esm2020/chart/service/brush.service.mjs +26 -23
  69. package/dist/esm2020/chart/service/chart.service.mjs +61 -43
  70. package/dist/esm2020/chart/service/scale.service.mjs +138 -50
  71. package/dist/esm2020/chart/service/zoom.service.mjs +82 -85
  72. package/dist/esm2020/public-api.mjs +2 -1
  73. package/dist/fesm2015/tetacom-svg-charts.mjs +942 -659
  74. package/dist/fesm2015/tetacom-svg-charts.mjs.map +1 -1
  75. package/dist/fesm2020/tetacom-svg-charts.mjs +929 -657
  76. package/dist/fesm2020/tetacom-svg-charts.mjs.map +1 -1
  77. package/package.json +1 -1
  78. package/src/chart/Chart.stories.ts +88 -173
  79. package/src/chart/base/series-base.component.ts +4 -9
  80. package/src/chart/chart/chart.component.html +16 -5
  81. package/src/chart/chart/chart.component.scss +1 -0
  82. package/src/chart/chart/chart.component.ts +39 -33
  83. package/src/chart/chart-container/chart-container.component.html +102 -57
  84. package/src/chart/chart-container/chart-container.component.scss +0 -1
  85. package/src/chart/chart-container/chart-container.component.ts +136 -165
  86. package/src/chart/chart-container/gridlines/gridlines.component.html +9 -2
  87. package/src/chart/chart-container/gridlines/gridlines.component.ts +17 -35
  88. package/src/chart/chart-container/plotband/{plotband.component.html → plot-band.component.html} +15 -9
  89. package/src/chart/chart-container/plotband/plot-band.component.scss +13 -0
  90. package/src/chart/chart-container/plotband/{plotband.component.spec.ts → plot-band.component.spec.ts} +5 -5
  91. package/src/chart/chart-container/plotband/{plotband.component.ts → plot-band.component.ts} +51 -57
  92. package/src/chart/chart-container/plotline/plotline.component.html +3 -3
  93. package/src/chart/chart-container/plotline/plotline.component.ts +10 -22
  94. package/src/chart/chart-container/series/bar/bar-series.component.ts +10 -12
  95. package/src/chart/chart-container/series/line/line-series.component.html +29 -31
  96. package/src/chart/chart-container/series/line/line-series.component.ts +69 -50
  97. package/src/chart/chart-container/series/scatter-series/scatter-series.component.html +43 -0
  98. package/src/chart/chart-container/series/scatter-series/scatter-series.component.scss +9 -0
  99. package/src/chart/chart-container/series/scatter-series/scatter-series.component.spec.ts +25 -0
  100. package/src/chart/chart-container/series/scatter-series/scatter-series.component.ts +254 -0
  101. package/src/chart/chart-container/series-host/series-host.component.ts +25 -16
  102. package/src/chart/chart-container/tooltip/tooltip.component.html +1 -1
  103. package/src/chart/chart-container/tooltip/tooltip.component.scss +2 -1
  104. package/src/chart/chart-container/tooltip/tooltip.component.ts +25 -26
  105. package/src/chart/chart-container/x-axis/x-axis.component.ts +18 -20
  106. package/src/chart/chart-container/y-axis/y-axis.component.ts +18 -28
  107. package/src/chart/chart.module.ts +4 -2
  108. package/src/chart/core/axis/axis.ts +37 -21
  109. package/src/chart/core/axis/builders/extremes-builder.ts +7 -12
  110. package/src/chart/core/builder/domain-builder.ts +0 -0
  111. package/src/chart/default/default-axis-config.ts +10 -0
  112. package/src/chart/default/default-chart-config.ts +20 -8
  113. package/src/chart/default/default-series-config.ts +10 -0
  114. package/src/chart/directives/brushable.directive.ts +2 -1
  115. package/src/chart/directives/zoomable.directive.ts +6 -9
  116. package/src/chart/legend/legend.component.html +7 -5
  117. package/src/chart/legend/legend.component.ts +2 -6
  118. package/src/chart/model/axis-options.ts +9 -7
  119. package/src/chart/model/base-point.ts +1 -1
  120. package/src/chart/model/enum/public-api.ts +1 -1
  121. package/src/chart/model/enum/scale-type.ts +8 -0
  122. package/src/chart/model/enum/series-type.ts +1 -0
  123. package/src/chart/model/i-broadcast-message.ts +17 -2
  124. package/src/chart/model/i-chart-config.ts +1 -0
  125. package/src/chart/model/i-dom-rect.ts +6 -0
  126. package/src/chart/model/{plotband.ts → plot-band.ts} +8 -5
  127. package/src/chart/model/{plotline.ts → plot-line.ts} +5 -2
  128. package/src/chart/model/public-api.ts +2 -2
  129. package/src/chart/service/broadcast.service.ts +5 -4
  130. package/src/chart/service/brush.service.ts +34 -31
  131. package/src/chart/service/chart.service.ts +70 -54
  132. package/src/chart/service/scale.service.ts +218 -61
  133. package/src/chart/service/zoom.service.ts +144 -113
  134. package/src/public-api.ts +3 -0
  135. package/dist/chart/model/enum/axis-type.d.ts +0 -7
  136. package/dist/chart/service/axes.service.d.ts +0 -11
  137. package/dist/esm2020/chart/chart-container/plotband/plotband.component.mjs +0 -139
  138. package/dist/esm2020/chart/model/enum/axis-type.mjs +0 -9
  139. package/dist/esm2020/chart/model/plotband.mjs +0 -16
  140. package/dist/esm2020/chart/model/plotline.mjs +0 -12
  141. package/dist/esm2020/chart/service/axes.service.mjs +0 -29
  142. package/src/chart/chart-container/plotband/plotband.component.scss +0 -13
  143. package/src/chart/model/enum/axis-type.ts +0 -7
  144. package/src/chart/service/axes.service.spec.ts +0 -16
  145. package/src/chart/service/axes.service.ts +0 -27
@@ -0,0 +1,17 @@
1
+ export class PlotBand {
2
+ constructor(options) {
3
+ this.id = options?.id;
4
+ this.name = options?.name;
5
+ this.from = options?.from;
6
+ this.to = options?.to;
7
+ this.label = options?.label;
8
+ this.showGrabbers =
9
+ options?.showGrabbers != null ? options.showGrabbers : true;
10
+ this.draggable = options?.draggable != null ? options?.draggable : false;
11
+ this.resizable = options?.resizable != null ? options?.resizable : true;
12
+ this.min = options?.min;
13
+ this.max = options?.max;
14
+ this.style = options?.style;
15
+ }
16
+ }
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxvdC1iYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L21vZGVsL3Bsb3QtYmFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sUUFBUTtJQWdCbkIsWUFBWSxPQWVYO1FBQ0MsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxFQUFFLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sRUFBRSxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxFQUFFLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsWUFBWTtZQUNmLE9BQU8sRUFBRSxZQUFZLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDOUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLEVBQUUsU0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxFQUFFLFNBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN4RSxJQUFJLENBQUMsR0FBRyxHQUFHLE9BQU8sRUFBRSxHQUFHLENBQUM7UUFDeEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLEVBQUUsR0FBRyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxFQUFFLEtBQUssQ0FBQztJQUM5QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdmdBdHRyaWJ1dGVzIH0gZnJvbSAnLi9zdmctYXR0cmlidXRlcyc7XG5cbmV4cG9ydCBjbGFzcyBQbG90QmFuZCB7XG4gIGlkPzogbnVtYmVyIHwgc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBmcm9tOiBudW1iZXI7XG4gIHRvOiBudW1iZXI7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBzaG93R3JhYmJlcnM/OiBib29sZWFuO1xuICBkcmFnZ2FibGU/OiBib29sZWFuO1xuICByZXNpemFibGU/OiBib29sZWFuO1xuICBtaW4/OiBudW1iZXI7XG4gIG1heD86IG51bWJlcjtcbiAgc3R5bGU/OiB7XG4gICAgcGxvdEJhbmQ/OiBTdmdBdHRyaWJ1dGVzO1xuICAgIGdyYWJiZXJzPzogU3ZnQXR0cmlidXRlcztcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zPzoge1xuICAgIGlkPzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgZnJvbTogbnVtYmVyO1xuICAgIHRvOiBudW1iZXI7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgc2hvd0dyYWJiZXJzPzogYm9vbGVhbjtcbiAgICBkcmFnZ2FibGU/OiBib29sZWFuO1xuICAgIHJlc2l6YWJsZT86IGJvb2xlYW47XG4gICAgbWluPzogbnVtYmVyO1xuICAgIG1heD86IG51bWJlcjtcbiAgICBzdHlsZT86IHtcbiAgICAgIHBsb3RCYW5kPzogU3ZnQXR0cmlidXRlcztcbiAgICAgIGdyYWJiZXJzPzogU3ZnQXR0cmlidXRlcztcbiAgICB9O1xuICB9KSB7XG4gICAgdGhpcy5pZCA9IG9wdGlvbnM/LmlkO1xuICAgIHRoaXMubmFtZSA9IG9wdGlvbnM/Lm5hbWU7XG4gICAgdGhpcy5mcm9tID0gb3B0aW9ucz8uZnJvbTtcbiAgICB0aGlzLnRvID0gb3B0aW9ucz8udG87XG4gICAgdGhpcy5sYWJlbCA9IG9wdGlvbnM/LmxhYmVsO1xuICAgIHRoaXMuc2hvd0dyYWJiZXJzID1cbiAgICAgIG9wdGlvbnM/LnNob3dHcmFiYmVycyAhPSBudWxsID8gb3B0aW9ucy5zaG93R3JhYmJlcnMgOiB0cnVlO1xuICAgIHRoaXMuZHJhZ2dhYmxlID0gb3B0aW9ucz8uZHJhZ2dhYmxlICE9IG51bGwgPyBvcHRpb25zPy5kcmFnZ2FibGUgOiBmYWxzZTtcbiAgICB0aGlzLnJlc2l6YWJsZSA9IG9wdGlvbnM/LnJlc2l6YWJsZSAhPSBudWxsID8gb3B0aW9ucz8ucmVzaXphYmxlIDogdHJ1ZTtcbiAgICB0aGlzLm1pbiA9IG9wdGlvbnM/Lm1pbjtcbiAgICB0aGlzLm1heCA9IG9wdGlvbnM/Lm1heDtcbiAgICB0aGlzLnN0eWxlID0gb3B0aW9ucz8uc3R5bGU7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,13 @@
1
+ export class PlotLine {
2
+ constructor(options) {
3
+ this.id = options?.id;
4
+ this.name = options?.name;
5
+ this.value = options?.value;
6
+ this.label = options?.label;
7
+ this.min = options?.min;
8
+ this.max = options?.max;
9
+ this.draggable = options?.draggable;
10
+ this.style = options?.style;
11
+ }
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxvdC1saW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L21vZGVsL3Bsb3QtbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sUUFBUTtJQVVuQixZQUFZLE9BU1g7UUFDQyxJQUFJLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLEVBQUUsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxFQUFFLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sRUFBRSxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLEVBQUUsR0FBRyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxHQUFHLEdBQUcsT0FBTyxFQUFFLEdBQUcsQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sRUFBRSxTQUFTLENBQUM7UUFDcEMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLEVBQUUsS0FBSyxDQUFDO0lBQzlCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U3ZnQXR0cmlidXRlc30gZnJvbSAnLi9zdmctYXR0cmlidXRlcyc7XG5cbmV4cG9ydCBjbGFzcyBQbG90TGluZSB7XG4gIGlkPzogbnVtYmVyIHwgc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICB2YWx1ZTogbnVtYmVyO1xuICBsYWJlbD86IHN0cmluZztcbiAgbWluPzogbnVtYmVyO1xuICBtYXg/OiBudW1iZXI7XG4gIGRyYWdnYWJsZT86IGJvb2xlYW47XG4gIHN0eWxlPzogU3ZnQXR0cmlidXRlcztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zPzoge1xuICAgIGlkPzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgdmFsdWU6IG51bWJlcjtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBtaW4/OiBudW1iZXI7XG4gICAgbWF4PzogbnVtYmVyO1xuICAgIGRyYWdnYWJsZT86IGJvb2xlYW47XG4gICAgc3R5bGU/OiBTdmdBdHRyaWJ1dGVzO1xuICB9KSB7XG4gICAgdGhpcy5pZCA9IG9wdGlvbnM/LmlkO1xuICAgIHRoaXMubmFtZSA9IG9wdGlvbnM/Lm5hbWU7XG4gICAgdGhpcy52YWx1ZSA9IG9wdGlvbnM/LnZhbHVlO1xuICAgIHRoaXMubGFiZWwgPSBvcHRpb25zPy5sYWJlbDtcbiAgICB0aGlzLm1pbiA9IG9wdGlvbnM/Lm1pbjtcbiAgICB0aGlzLm1heCA9IG9wdGlvbnM/Lm1heDtcbiAgICB0aGlzLmRyYWdnYWJsZSA9IG9wdGlvbnM/LmRyYWdnYWJsZTtcbiAgICB0aGlzLnN0eWxlID0gb3B0aW9ucz8uc3R5bGU7XG4gIH1cbn1cbiJdfQ==
@@ -7,8 +7,8 @@ export * from './i-chart-config';
7
7
  export * from './i-chart-event';
8
8
  export * from './i-point-move';
9
9
  export * from './marker-options';
10
- export * from './plotband';
11
- export * from './plotline';
10
+ export * from './plot-band';
11
+ export * from './plot-line';
12
12
  export * from './series';
13
13
  export * from './svg-attributes';
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9tb2RlbC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFFbEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lbnVtL3B1YmxpYy1hcGknO1xuXG5leHBvcnQgKiBmcm9tICcuL2F4aXMtb3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtcG9pbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFydC1ib3VuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9pLWJyb2FkY2FzdC1tZXNzYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vaS1jaGFydC1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9pLWNoYXJ0LWV2ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaS1wb2ludC1tb3ZlJztcbmV4cG9ydCAqIGZyb20gJy4vbWFya2VyLW9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9wbG90YmFuZCc7XG5leHBvcnQgKiBmcm9tICcuL3Bsb3RsaW5lJztcbmV4cG9ydCAqIGZyb20gJy4vc2VyaWVzJztcbmV4cG9ydCAqIGZyb20gJy4vc3ZnLWF0dHJpYnV0ZXMnO1xuIl19
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9tb2RlbC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFFbEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lbnVtL3B1YmxpYy1hcGknO1xuXG5leHBvcnQgKiBmcm9tICcuL2F4aXMtb3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtcG9pbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFydC1ib3VuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9pLWJyb2FkY2FzdC1tZXNzYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vaS1jaGFydC1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9pLWNoYXJ0LWV2ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaS1wb2ludC1tb3ZlJztcbmV4cG9ydCAqIGZyb20gJy4vbWFya2VyLW9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9wbG90LWJhbmQnO1xuZXhwb3J0ICogZnJvbSAnLi9wbG90LWxpbmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJpZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdmctYXR0cmlidXRlcyc7XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { filter, Subject } from 'rxjs';
2
+ import { filter, shareReplay, Subject } from 'rxjs';
3
3
  import * as i0 from "@angular/core";
4
4
  export class BroadcastService {
5
5
  constructor() {
@@ -9,9 +9,7 @@ export class BroadcastService {
9
9
  this.emitter.next(value);
10
10
  }
11
11
  subscribeToChannel(channel) {
12
- return this.emitter
13
- .asObservable()
14
- .pipe(filter((msg) => channel && msg.channel === channel));
12
+ return this.emitter.asObservable().pipe(filter((msg) => channel && msg.channel === channel), shareReplay(1));
15
13
  }
16
14
  }
17
15
  BroadcastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BroadcastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
@@ -22,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
22
20
  providedIn: 'root',
23
21
  }]
24
22
  }], ctorParameters: function () { return []; } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvYWRjYXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2hhcnQvc2VydmljZS9icm9hZGNhc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxNQUFNLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUtuRCxNQUFNLE9BQU8sZ0JBQWdCO0lBRzNCO1FBQ0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztJQUNsRCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQXdCO1FBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxPQUFlO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLE9BQU87YUFDaEIsWUFBWSxFQUFFO2FBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxPQUFPLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDOzs2R0FmVSxnQkFBZ0I7aUhBQWhCLGdCQUFnQixjQUZmLE1BQU07MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElCcm9hZGNhc3RNZXNzYWdlIH0gZnJvbSAnLi4vbW9kZWwvaS1icm9hZGNhc3QtbWVzc2FnZSc7XG5pbXBvcnQgeyBmaWx0ZXIsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEJyb2FkY2FzdFNlcnZpY2Uge1xuICBwcml2YXRlIGVtaXR0ZXI6IFN1YmplY3Q8SUJyb2FkY2FzdE1lc3NhZ2U+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuZW1pdHRlciA9IG5ldyBTdWJqZWN0PElCcm9hZGNhc3RNZXNzYWdlPigpO1xuICB9XG5cbiAgYnJvYWRjYXN0KHZhbHVlOiBJQnJvYWRjYXN0TWVzc2FnZSkge1xuICAgIHRoaXMuZW1pdHRlci5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHN1YnNjcmliZVRvQ2hhbm5lbChjaGFubmVsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElCcm9hZGNhc3RNZXNzYWdlPiB7XG4gICAgcmV0dXJuIHRoaXMuZW1pdHRlclxuICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAucGlwZShmaWx0ZXIoKG1zZykgPT4gY2hhbm5lbCAmJiBtc2cuY2hhbm5lbCA9PT0gY2hhbm5lbCkpO1xuICB9XG59XG4iXX0=
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvYWRjYXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2hhcnQvc2VydmljZS9icm9hZGNhc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxNQUFNLEVBQWMsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFLaEUsTUFBTSxPQUFPLGdCQUFnQjtJQUczQjtRQUNFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQXFCLENBQUM7SUFDbEQsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUF3QjtRQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCLENBQUMsT0FBZTtRQUNoQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUNyQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQyxFQUNuRCxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUNKLENBQUM7OzZHQWhCVSxnQkFBZ0I7aUhBQWhCLGdCQUFnQixjQUZmLE1BQU07MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElCcm9hZGNhc3RNZXNzYWdlIH0gZnJvbSAnLi4vbW9kZWwvaS1icm9hZGNhc3QtbWVzc2FnZSc7XG5pbXBvcnQgeyBmaWx0ZXIsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBCcm9hZGNhc3RTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBlbWl0dGVyOiBTdWJqZWN0PElCcm9hZGNhc3RNZXNzYWdlPjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmVtaXR0ZXIgPSBuZXcgU3ViamVjdDxJQnJvYWRjYXN0TWVzc2FnZT4oKTtcbiAgfVxuXG4gIGJyb2FkY2FzdCh2YWx1ZTogSUJyb2FkY2FzdE1lc3NhZ2UpIHtcbiAgICB0aGlzLmVtaXR0ZXIubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBzdWJzY3JpYmVUb0NoYW5uZWwoY2hhbm5lbDogc3RyaW5nKTogT2JzZXJ2YWJsZTxJQnJvYWRjYXN0TWVzc2FnZT4ge1xuICAgIHJldHVybiB0aGlzLmVtaXR0ZXIuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgIGZpbHRlcigobXNnKSA9PiBjaGFubmVsICYmIG1zZy5jaGFubmVsID09PSBjaGFubmVsKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -2,24 +2,19 @@ import { Injectable } from '@angular/core';
2
2
  import { BrushType } from '../model/enum/brush-type';
3
3
  import * as d3 from 'd3';
4
4
  import { map } from 'rxjs';
5
+ import { AxisOrientation } from '../model/enum/axis-orientation';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "./broadcast.service";
7
- import * as i2 from "./scale.service";
8
8
  export class BrushService {
9
- constructor(broadcastService, scaleService) {
9
+ constructor(broadcastService) {
10
10
  this.broadcastService = broadcastService;
11
- this.scaleService = scaleService;
12
11
  this.brushMap = new Map()
13
12
  .set(BrushType.x, d3.brushX())
14
13
  .set(BrushType.y, d3.brushY());
15
- this.scaleMap = new Map()
16
- .set(BrushType.x, 'xScales')
17
- .set(BrushType.y, 'yScales');
18
14
  }
19
- applyBrush(svgElement, config, size) {
15
+ applyBrush(svgElement, config, brushScale) {
20
16
  this.broadcastSubscribtion?.unsubscribe();
21
17
  if (config.brush?.enable) {
22
- const s = this.scaleService[this.scaleMap.get(config?.brush?.type ?? BrushType.x)].get(config?.brush?.axisIndex ?? 0);
23
18
  const brush = this.brushMap.get(config?.brush?.type ?? BrushType.x);
24
19
  const container = d3.select(svgElement.nativeElement);
25
20
  const brushBehavior = brush.on('start brush end', (_) => {
@@ -29,39 +24,47 @@ export class BrushService {
29
24
  container.call(brush.move, [from, to]);
30
25
  return;
31
26
  }
27
+ const brushMessage = {
28
+ event: _,
29
+ selection: [brushScale.invert(from), brushScale.invert(to)],
30
+ brushType: config?.brush?.type ?? BrushType.x,
31
+ brushScale,
32
+ };
32
33
  this.broadcastService.broadcast({
33
34
  channel: config?.zoom?.syncChannel,
34
- message: {
35
- ..._,
36
- selection: [s.invert(from), s.invert(to)],
37
- brushType: config?.brush?.type ?? BrushType.x,
38
- },
35
+ message: brushMessage,
39
36
  });
40
37
  }
41
38
  });
42
- container.call(brushBehavior);
43
39
  setTimeout(() => {
44
- container.call(brush.move, s.domain().map(s), {});
45
- });
40
+ container.call(brushBehavior);
41
+ container.call(brush.move, brushScale.domain().map(brushScale), {});
42
+ }, 0);
46
43
  this.broadcastSubscribtion = this.broadcastService
47
44
  .subscribeToChannel(config?.zoom?.syncChannel)
48
45
  .pipe(map((_) => {
49
- if (_.message?.transform) {
50
- const s = this.scaleService[this.scaleMap.get(config?.brush?.type ?? BrushType.x)].get(config?.brush?.axisIndex ?? 0);
51
- const domain = _.domain;
52
- container.call(brush.move, [s(domain[0]), s(domain[1])]);
46
+ if ('axis' in _.message) {
47
+ if (_.message.axis.orientation === AxisOrientation.x &&
48
+ _.message.axis.index === 0) {
49
+ const rescaled = _.message.event.transform.rescaleX(brushScale);
50
+ const domain = rescaled.domain();
51
+ container.call(brush.move, [
52
+ brushScale(domain[0]),
53
+ brushScale(domain[1]),
54
+ ]);
55
+ }
53
56
  }
54
57
  }))
55
58
  .subscribe();
56
59
  }
57
60
  }
58
61
  }
59
- BrushService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BrushService, deps: [{ token: i1.BroadcastService }, { token: i2.ScaleService }], target: i0.ɵɵFactoryTarget.Injectable });
62
+ BrushService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BrushService, deps: [{ token: i1.BroadcastService }], target: i0.ɵɵFactoryTarget.Injectable });
60
63
  BrushService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BrushService, providedIn: 'root' });
61
64
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: BrushService, decorators: [{
62
65
  type: Injectable,
63
66
  args: [{
64
67
  providedIn: 'root',
65
68
  }]
66
- }], ctorParameters: function () { return [{ type: i1.BroadcastService }, { type: i2.ScaleService }]; } });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJ1c2guc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJ2aWNlL2JydXNoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDekIsT0FBTyxFQUFFLEdBQUcsRUFBZ0IsTUFBTSxNQUFNLENBQUM7Ozs7QUFRekMsTUFBTSxPQUFPLFlBQVk7SUFXdkIsWUFDVSxnQkFBa0MsRUFDbEMsWUFBMEI7UUFEMUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQVY1QixhQUFRLEdBQUcsSUFBSSxHQUFHLEVBQW9DO2FBQzNELEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUM3QixHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUV6QixhQUFRLEdBQUcsSUFBSSxHQUFHLEVBQXFCO2FBQzVDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQzthQUMzQixHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUs1QixDQUFDO0lBRUosVUFBVSxDQUFDLFVBQXNCLEVBQUUsTUFBb0IsRUFBRSxJQUFhO1FBQ3BFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUUxQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFO1lBQ3hCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMs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QkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcnVzaFR5cGUgfSBmcm9tICcuLi9tb2RlbC9lbnVtL2JydXNoLXR5cGUnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuaW1wb3J0IHsgbWFwLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJyb2FkY2FzdFNlcnZpY2UgfSBmcm9tICcuL2Jyb2FkY2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IElDaGFydENvbmZpZyB9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtY29uZmlnJztcbmltcG9ydCB7IFNjYWxlU2VydmljZSB9IGZyb20gJy4vc2NhbGUuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBCcnVzaFNlcnZpY2Uge1xuICBicm9hZGNhc3RTdWJzY3JpYnRpb246IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIGJydXNoTWFwID0gbmV3IE1hcDxCcnVzaFR5cGUsIGQzLkJydXNoQmVoYXZpb3I8YW55Pj4oKVxuICAgIC5zZXQoQnJ1c2hUeXBlLngsIGQzLmJydXNoWCgpKVxuICAgIC5zZXQoQnJ1c2hUeXBlLnksIGQzLmJydXNoWSgpKTtcblxuICBwcml2YXRlIHNjYWxlTWFwID0gbmV3IE1hcDxCcnVzaFR5cGUsIHN0cmluZz4oKVxuICAgIC5zZXQoQnJ1c2hUeXBlLngsICd4U2NhbGVzJylcbiAgICAuc2V0KEJydXNoVHlwZS55LCAneVNjYWxlcycpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYnJvYWRjYXN0U2VydmljZTogQnJvYWRjYXN0U2VydmljZSxcbiAgICBwcml2YXRlIHNjYWxlU2VydmljZTogU2NhbGVTZXJ2aWNlXG4gICkge31cblxuICBhcHBseUJydXNoKHN2Z0VsZW1lbnQ6IEVsZW1lbnRSZWYsIGNvbmZpZzogSUNoYXJ0Q29uZmlnLCBzaXplOiBET01SZWN0KSB7XG4gICAgdGhpcy5icm9hZGNhc3RTdWJzY3JpYnRpb24/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICBpZiAoY29uZmlnLmJydXNoPy5lbmFibGUpIHtcbiAgICAgIGNvbnN0IHMgPSB0aGlzLnNjYWxlU2VydmljZVtcbiAgICAgICAgdGhpcy5zY2FsZU1hcC5nZXQoY29uZmlnPy5icnVzaD8udHlwZSA/PyBCcnVzaFR5cGUueClcbiAgICAgIF0uZ2V0KGNvbmZpZz8uYnJ1c2g/LmF4aXNJbmRleCA/PyAwKTtcblxuICAgICAgY29uc3QgYnJ1c2ggPSB0aGlzLmJydXNoTWFwLmdldChjb25maWc/LmJydXNoPy50eXBlID8/IEJydXNoVHlwZS54KTtcblxuICAgICAgY29uc3QgY29udGFpbmVyID0gZDMuc2VsZWN0KHN2Z0VsZW1lbnQubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgIGNvbnN0IGJydXNoQmVoYXZpb3IgPSBicnVzaC5vbihcbiAgICAgICAgJ3N0YXJ0IGJydXNoIGVuZCcsXG4gICAgICAgIChfOiBkMy5EM0JydXNoRXZlbnQ8YW55PikgPT4ge1xuICAgICAgICAgIGlmIChfLnNvdXJjZUV2ZW50KSB7XG4gICAgICAgICAgICBjb25zdCBbZnJvbSwgdG9dID0gXy5zZWxlY3Rpb24gYXMgbnVtYmVyW107XG5cbiAgICAgICAgICAgIGlmICh0byAtIGZyb20gPCA1KSB7XG4gICAgICAgICAgICAgIGNvbnRhaW5lci5jYWxsKGJydXNoLm1vdmUsIFtmcm9tLCB0b10pO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuYnJvYWRjYXN0U2VydmljZS5icm9hZGNhc3Qoe1xuICAgICAgICAgICAgICBjaGFubmVsOiBjb25maWc/Lnpvb20/LnN5bmNDaGFubmVsLFxuICAgICAgICAgICAgICBtZXNzYWdlOiB7XG4gICAgICAgICAgICAgICAgLi4uXyxcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb246IFtzLmludmVydChmcm9tKSwgcy5pbnZlcnQodG8pXSxcbiAgICAgICAgICAgICAgICBicnVzaFR5cGU6IGNvbmZpZz8uYnJ1c2g/LnR5cGUgPz8gQnJ1c2hUeXBlLngsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICAgIGNvbnRhaW5lci5jYWxsKGJydXNoQmVoYXZpb3IpO1xuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29udGFpbmVyLmNhbGwoYnJ1c2gubW92ZSwgcy5kb21haW4oKS5tYXAocyksIHt9KTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmJyb2FkY2FzdFN1YnNjcmlidGlvbiA9IHRoaXMuYnJvYWRjYXN0U2VydmljZVxuICAgICAgICAuc3Vic2NyaWJlVG9DaGFubmVsKGNvbmZpZz8uem9vbT8uc3luY0NoYW5uZWwpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoXykgPT4ge1xuICAgICAgICAgICAgaWYgKF8ubWVzc2FnZT8udHJhbnNmb3JtKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHMgPSB0aGlzLnNjYWxlU2VydmljZVtcbiAgICAgICAgICAgICAgICB0aGlzLnNjYWxlTWFwLmdldChjb25maWc/LmJydXNoPy50eXBlID8/IEJydXNoVHlwZS54KVxuICAgICAgICAgICAgICBdLmdldChjb25maWc/LmJydXNoPy5heGlzSW5kZXggPz8gMCk7XG5cbiAgICAgICAgICAgICAgY29uc3QgZG9tYWluID0gXy5kb21haW47XG5cbiAgICAgICAgICAgICAgY29udGFpbmVyLmNhbGwoYnJ1c2gubW92ZSwgW3MoZG9tYWluWzBdKSwgcyhkb21haW5bMV0pXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
69
+ }], ctorParameters: function () { return [{ type: i1.BroadcastService }]; } });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJ1c2guc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJ2aWNlL2JydXNoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDekIsT0FBTyxFQUFFLEdBQUcsRUFBNkMsTUFBTSxNQUFNLENBQUM7QUFRdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7QUFNakUsTUFBTSxPQUFPLFlBQVk7SUFPdkIsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFKOUMsYUFBUSxHQUFHLElBQUksR0FBRyxFQUFvQzthQUMzRCxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDN0IsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFFd0IsQ0FBQztJQUUxRCxVQUFVLENBQUMsVUFBc0IsRUFBRSxNQUFvQixFQUFFLFVBQWU7UUFDdEUsSUFBSSxDQUFDLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBRTFDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDeEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXBFLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBRXRELE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQzVCLGlCQUFpQixFQUNqQixDQUFDLENBQXVCLEVBQUUsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFO29CQUNqQixNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFxQixDQUFDO29CQUUzQyxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFO3dCQUNqQixTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQzt3QkFDdkMsT0FBTztxQkFDUjtvQkFFRCxNQUFNLFlBQVksR0FBaUI7d0JBQ2pDLEtBQUssRUFBRSxDQUFDO3dCQUNSLFNBQVMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDM0QsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFJLFNBQVMsQ0FBQyxDQUFDO3dCQUM3QyxVQUFVO3FCQUNYLENBQUM7b0JBRUYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQzt3QkFDOUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVzt3QkFDbEMsT0FBTyxFQUFFLFlBQVk7cUJBQ3RCLENBQUMsQ0FBQztpQkFDSjtZQUNILENBQUMsQ0FDRixDQUFDO1lBRUYsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUM5QixTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0RSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFTixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQjtpQkFDL0Msa0JBQWtCLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLENBQUM7aUJBQzdDLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDUixJQUFJLE1BQU0sSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFO29CQUN2QixJQUNFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxlQUFlLENBQUMsQ0FBQzt3QkFDaEQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsRUFDMUI7d0JBQ0EsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQzt3QkFFaEUsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUVqQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7NEJBQ3pCLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7NEJBQ3JCLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7eUJBQ3RCLENBQUMsQ0FBQztxQkFDSjtpQkFDRjtZQUNILENBQUMsQ0FBQyxDQUNIO2lCQUNBLFNBQVMsRUFBRSxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQzs7eUdBdkVVLFlBQVk7NkdBQVosWUFBWSxjQUZYLE1BQU07MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcnVzaFR5cGUgfSBmcm9tICcuLi9tb2RlbC9lbnVtL2JydXNoLXR5cGUnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSwgU3Vic2NyaXB0aW9uLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQnJvYWRjYXN0U2VydmljZSB9IGZyb20gJy4vYnJvYWRjYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgSUNoYXJ0Q29uZmlnIH0gZnJvbSAnLi4vbW9kZWwvaS1jaGFydC1jb25maWcnO1xuaW1wb3J0IHtcbiAgQnJ1c2hNZXNzYWdlLFxuICBJQnJvYWRjYXN0TWVzc2FnZSxcbiAgWm9vbU1lc3NhZ2UsXG59IGZyb20gJy4uL21vZGVsL2ktYnJvYWRjYXN0LW1lc3NhZ2UnO1xuaW1wb3J0IHsgQXhpc09yaWVudGF0aW9uIH0gZnJvbSAnLi4vbW9kZWwvZW51bS9heGlzLW9yaWVudGF0aW9uJztcbmltcG9ydCB7IFNjYWxlU2VydmljZSB9IGZyb20gJy4vc2NhbGUuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBCcnVzaFNlcnZpY2Uge1xuICBicm9hZGNhc3RTdWJzY3JpYnRpb246IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIGJydXNoTWFwID0gbmV3IE1hcDxCcnVzaFR5cGUsIGQzLkJydXNoQmVoYXZpb3I8YW55Pj4oKVxuICAgIC5zZXQoQnJ1c2hUeXBlLngsIGQzLmJydXNoWCgpKVxuICAgIC5zZXQoQnJ1c2hUeXBlLnksIGQzLmJydXNoWSgpKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJyb2FkY2FzdFNlcnZpY2U6IEJyb2FkY2FzdFNlcnZpY2UpIHt9XG5cbiAgYXBwbHlCcnVzaChzdmdFbGVtZW50OiBFbGVtZW50UmVmLCBjb25maWc6IElDaGFydENvbmZpZywgYnJ1c2hTY2FsZTogYW55KSB7XG4gICAgdGhpcy5icm9hZGNhc3RTdWJzY3JpYnRpb24/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICBpZiAoY29uZmlnLmJydXNoPy5lbmFibGUpIHtcbiAgICAgIGNvbnN0IGJydXNoID0gdGhpcy5icnVzaE1hcC5nZXQoY29uZmlnPy5icnVzaD8udHlwZSA/PyBCcnVzaFR5cGUueCk7XG5cbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGQzLnNlbGVjdChzdmdFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgICBjb25zdCBicnVzaEJlaGF2aW9yID0gYnJ1c2gub24oXG4gICAgICAgICdzdGFydCBicnVzaCBlbmQnLFxuICAgICAgICAoXzogZDMuRDNCcnVzaEV2ZW50PGFueT4pID0+IHtcbiAgICAgICAgICBpZiAoXy5zb3VyY2VFdmVudCkge1xuICAgICAgICAgICAgY29uc3QgW2Zyb20sIHRvXSA9IF8uc2VsZWN0aW9uIGFzIG51bWJlcltdO1xuXG4gICAgICAgICAgICBpZiAodG8gLSBmcm9tIDwgNSkge1xuICAgICAgICAgICAgICBjb250YWluZXIuY2FsbChicnVzaC5tb3ZlLCBbZnJvbSwgdG9dKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBicnVzaE1lc3NhZ2U6IEJydXNoTWVzc2FnZSA9IHtcbiAgICAgICAgICAgICAgZXZlbnQ6IF8sXG4gICAgICAgICAgICAgIHNlbGVjdGlvbjogW2JydXNoU2NhbGUuaW52ZXJ0KGZyb20pLCBicnVzaFNjYWxlLmludmVydCh0byldLFxuICAgICAgICAgICAgICBicnVzaFR5cGU6IGNvbmZpZz8uYnJ1c2g/LnR5cGUgPz8gQnJ1c2hUeXBlLngsXG4gICAgICAgICAgICAgIGJydXNoU2NhbGUsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB0aGlzLmJyb2FkY2FzdFNlcnZpY2UuYnJvYWRjYXN0KHtcbiAgICAgICAgICAgICAgY2hhbm5lbDogY29uZmlnPy56b29tPy5zeW5jQ2hhbm5lbCxcbiAgICAgICAgICAgICAgbWVzc2FnZTogYnJ1c2hNZXNzYWdlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29udGFpbmVyLmNhbGwoYnJ1c2hCZWhhdmlvcik7XG4gICAgICAgIGNvbnRhaW5lci5jYWxsKGJydXNoLm1vdmUsIGJydXNoU2NhbGUuZG9tYWluKCkubWFwKGJydXNoU2NhbGUpLCB7fSk7XG4gICAgICB9LCAwKTtcblxuICAgICAgdGhpcy5icm9hZGNhc3RTdWJzY3JpYnRpb24gPSB0aGlzLmJyb2FkY2FzdFNlcnZpY2VcbiAgICAgICAgLnN1YnNjcmliZVRvQ2hhbm5lbChjb25maWc/Lnpvb20/LnN5bmNDaGFubmVsKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKF8pID0+IHtcbiAgICAgICAgICAgIGlmICgnYXhpcycgaW4gXy5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBfLm1lc3NhZ2UuYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnggJiZcbiAgICAgICAgICAgICAgICBfLm1lc3NhZ2UuYXhpcy5pbmRleCA9PT0gMFxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXNjYWxlZCA9IF8ubWVzc2FnZS5ldmVudC50cmFuc2Zvcm0ucmVzY2FsZVgoYnJ1c2hTY2FsZSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBkb21haW4gPSByZXNjYWxlZC5kb21haW4oKTtcblxuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5jYWxsKGJydXNoLm1vdmUsIFtcbiAgICAgICAgICAgICAgICAgIGJydXNoU2NhbGUoZG9tYWluWzBdKSxcbiAgICAgICAgICAgICAgICAgIGJydXNoU2NhbGUoZG9tYWluWzFdKSxcbiAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,76 +1,94 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { map, Subject } from 'rxjs';
2
+ import { BehaviorSubject, filter, map, Subject } from 'rxjs';
3
+ import { defaultChartConfig } from '../default/default-chart-config';
4
+ import { defaultAxisConfig } from '../default/default-axis-config';
5
+ import { defaultSeriesConfig } from '../default/default-series-config';
3
6
  import * as i0 from "@angular/core";
4
- import * as i1 from "./axes.service";
5
- import * as i2 from "./scale.service";
6
7
  export class ChartService {
7
- constructor(axesService, scaleService) {
8
- this.axesService = axesService;
9
- this.scaleService = scaleService;
10
- this.size$ = new Subject();
11
- this.pointerMove$ = new Subject();
8
+ constructor() {
9
+ this.config$ = new BehaviorSubject(defaultChartConfig);
10
+ this.size$ = new BehaviorSubject(new DOMRectReadOnly());
11
+ this.pointerMove$ = new BehaviorSubject(null);
12
12
  this.tooltips$ = new Subject();
13
- this.plotbandMove$ = new Subject();
14
- this.plotlineMove$ = new Subject();
13
+ this.plotBandEvent$ = new Subject();
14
+ this.plotLineMove$ = new Subject();
15
15
  this.pointMove$ = new Subject();
16
- this.size = this.size$.asObservable();
16
+ this.config = this.config$
17
+ .asObservable()
18
+ .pipe(map(this.setDefaults), map(this.setpreparationData));
19
+ this.size = this.size$
20
+ .asObservable()
21
+ .pipe(filter((_) => _.height > 0 && _.width > 0));
17
22
  this.pointerMove = this.pointerMove$.asObservable();
18
23
  this.tooltips = this.tooltips$.asObservable();
19
- this.plotbandMove = this.plotbandMove$.asObservable();
20
- this.plotlineMove = this.plotlineMove$.asObservable();
24
+ this.plotBandEvent = this.plotBandEvent$.asObservable();
25
+ this.plotLineMove = this.plotLineMove$.asObservable();
21
26
  this.pointMove = this.pointMove$.asObservable();
22
- this.size
23
- .pipe(map((size) => {
24
- this.scaleService.createScales(size, this._config);
25
- }))
26
- .subscribe();
27
+ this.plotBandClick = this.plotBandEvent$
28
+ .asObservable()
29
+ .pipe(filter((_) => _?.event?.type === 'click'));
27
30
  }
28
- init(config) {
29
- this._config = config;
30
- if (config.inverted) {
31
- this._config.series = this._config?.series?.map((serie) => {
32
- return {
33
- ...serie,
34
- data: serie?.data?.map((point) => {
35
- return {
36
- ...point,
37
- x: point?.y,
38
- y: point?.x,
39
- };
40
- }),
41
- };
42
- });
43
- }
44
- this.axesService.init(this._config);
31
+ setConfig(config) {
32
+ this.config$.next(config);
45
33
  }
46
34
  setSize(size) {
47
35
  this.size$.next(size);
48
36
  }
49
37
  setPointerMove(event) {
50
- this.pointerMove$.next({ event });
38
+ this.pointerMove$.next(event);
51
39
  }
52
40
  setTooltip(tooltip) {
53
41
  this.tooltips$.next(tooltip);
54
42
  }
55
43
  emitPlotband(event) {
56
- this.plotbandMove$.next(event);
44
+ this.plotBandEvent$.next(event);
57
45
  }
58
46
  emitPlotline(event) {
59
- this.plotlineMove$.next(event);
47
+ this.plotLineMove$.next(event);
60
48
  }
61
49
  emitPoint(event) {
62
50
  this.pointMove$.next(event);
63
51
  }
64
- get config() {
65
- return this._config;
52
+ setDefaults(config) {
53
+ const defaultConfig = (defaultConfig) => {
54
+ return (source) => {
55
+ return Object.assign({}, defaultConfig, source);
56
+ };
57
+ };
58
+ config = Object.assign({}, defaultChartConfig, config);
59
+ config.xAxis = config.xAxis.map(defaultConfig(defaultAxisConfig));
60
+ config.yAxis = config.yAxis.map(defaultConfig(defaultAxisConfig));
61
+ config.series = config.series.map(defaultConfig(defaultSeriesConfig));
62
+ return config;
63
+ }
64
+ setpreparationData(config) {
65
+ if (config.inverted) {
66
+ config.series = config.series?.map((serie) => {
67
+ return {
68
+ ...serie,
69
+ data: serie?.data?.map((point) => {
70
+ return {
71
+ ...point,
72
+ x: point?.y,
73
+ y: point?.x,
74
+ };
75
+ }),
76
+ };
77
+ });
78
+ }
79
+ if (config.brush.enable) {
80
+ config.yAxis = config.yAxis.map((_) => ({ ..._, zoom: false }));
81
+ config.xAxis = config.xAxis.map((_) => ({ ..._, zoom: false }));
82
+ }
83
+ return config;
66
84
  }
67
85
  }
68
- ChartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ChartService, deps: [{ token: i1.AxesService }, { token: i2.ScaleService }], target: i0.ɵɵFactoryTarget.Injectable });
86
+ ChartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ChartService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
69
87
  ChartService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ChartService, providedIn: 'root' });
70
88
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ChartService, decorators: [{
71
89
  type: Injectable,
72
90
  args: [{
73
91
  providedIn: 'root',
74
92
  }]
75
- }], ctorParameters: function () { return [{ type: i1.AxesService }, { type: i2.ScaleService }]; } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsR0FBRyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQVdoRCxNQUFNLE9BQU8sWUFBWTtJQWlCdkIsWUFDVSxXQUF3QixFQUN4QixZQUEwQjtRQUQxQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQVg1QixVQUFLLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUMvQixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFDbEMsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFtQixDQUFDO1FBQzNDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQXlCLENBQUM7UUFDckQsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBeUIsQ0FBQztRQUNyRCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQTJCLENBQUM7UUFRMUQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFaEQsSUFBSSxDQUFDLElBQUk7YUFDTixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDWCxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVNLElBQUksQ0FBQyxNQUFvQjtRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUV0QixJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ3hELE9BQU87b0JBQ0wsR0FBRyxLQUFLO29CQUNSLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO3dCQUMvQixPQUFPOzRCQUNMLEdBQUcsS0FBSzs0QkFDUixDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7NEJBQ1gsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO3lCQUNaLENBQUM7b0JBQ0osQ0FBQyxDQUFDO2lCQUNILENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxPQUFPLENBQUMsSUFBYTtRQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQVU7UUFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxVQUFVLENBQUMsT0FBd0I7UUFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLFlBQVksQ0FBQyxLQUE0QjtRQUM5QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU0sWUFBWSxDQUFDLEtBQTRCO1FBQzlDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFTSxTQUFTLENBQUMsS0FBOEI7UUFDN0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDOzt5R0FwRlUsWUFBWTs2R0FBWixZQUFZLGNBRlgsTUFBTTsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElDaGFydENvbmZpZyB9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtY29uZmlnJztcbmltcG9ydCB7IEF4ZXNTZXJ2aWNlIH0gZnJvbSAnLi9heGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTY2FsZVNlcnZpY2UgfSBmcm9tICcuL3NjYWxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSUNoYXJ0RXZlbnQgfSBmcm9tICcuLi9tb2RlbC9pLWNoYXJ0LWV2ZW50JztcbmltcG9ydCB7IElEaXNwbGF5VG9vbHRpcCB9IGZyb20gJy4uL21vZGVsL2ktZGlzcGxheS10b29sdGlwJztcbmltcG9ydCB7IFBsb3RiYW5kIH0gZnJvbSAnLi4vbW9kZWwvcGxvdGJhbmQnO1xuaW1wb3J0IHsgUGxvdExpbmUgfSBmcm9tICcuLi9tb2RlbC9wbG90bGluZSc7XG5pbXBvcnQgeyBJUG9pbnRNb3ZlIH0gZnJvbSAnLi4vbW9kZWwvaS1wb2ludC1tb3ZlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENoYXJ0U2VydmljZSB7XG4gIHB1YmxpYyBzaXplOiBPYnNlcnZhYmxlPERPTVJlY3Q+O1xuICBwdWJsaWMgcG9pbnRlck1vdmU6IE9ic2VydmFibGU8YW55PjtcbiAgcHVibGljIHRvb2x0aXBzOiBPYnNlcnZhYmxlPElEaXNwbGF5VG9vbHRpcD47XG4gIHB1YmxpYyBwbG90YmFuZE1vdmU6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8UGxvdGJhbmQ+PjtcbiAgcHVibGljIHBsb3RsaW5lTW92ZTogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxQbG90TGluZT4+O1xuICBwdWJsaWMgcG9pbnRNb3ZlOiBPYnNlcnZhYmxlPElDaGFydEV2ZW50PElQb2ludE1vdmU+PjtcblxuICBwcml2YXRlIHNpemUkID0gbmV3IFN1YmplY3Q8RE9NUmVjdD4oKTtcbiAgcHJpdmF0ZSBwb2ludGVyTW92ZSQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gIHByaXZhdGUgdG9vbHRpcHMkID0gbmV3IFN1YmplY3Q8SURpc3BsYXlUb29sdGlwPigpO1xuICBwcml2YXRlIHBsb3RiYW5kTW92ZSQgPSBuZXcgU3ViamVjdDxJQ2hhcnRFdmVudDxQbG90YmFuZD4+KCk7XG4gIHByaXZhdGUgcGxvdGxpbmVNb3ZlJCA9IG5ldyBTdWJqZWN0PElDaGFydEV2ZW50PFBsb3RMaW5lPj4oKTtcbiAgcHJpdmF0ZSBwb2ludE1vdmUkID0gbmV3IFN1YmplY3Q8SUNoYXJ0RXZlbnQ8SVBvaW50TW92ZT4+KCk7XG5cbiAgcHJpdmF0ZSBfY29uZmlnOiBJQ2hhcnRDb25maWc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBheGVzU2VydmljZTogQXhlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzY2FsZVNlcnZpY2U6IFNjYWxlU2VydmljZVxuICApIHtcbiAgICB0aGlzLnNpemUgPSB0aGlzLnNpemUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMucG9pbnRlck1vdmUgPSB0aGlzLnBvaW50ZXJNb3ZlJC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLnRvb2x0aXBzID0gdGhpcy50b29sdGlwcyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5wbG90YmFuZE1vdmUgPSB0aGlzLnBsb3RiYW5kTW92ZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5wbG90bGluZU1vdmUgPSB0aGlzLnBsb3RsaW5lTW92ZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5wb2ludE1vdmUgPSB0aGlzLnBvaW50TW92ZSQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICB0aGlzLnNpemVcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHNpemUpID0+IHtcbiAgICAgICAgICB0aGlzLnNjYWxlU2VydmljZS5jcmVhdGVTY2FsZXMoc2l6ZSwgdGhpcy5fY29uZmlnKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0KGNvbmZpZzogSUNoYXJ0Q29uZmlnKSB7XG4gICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuXG4gICAgaWYgKGNvbmZpZy5pbnZlcnRlZCkge1xuICAgICAgdGhpcy5fY29uZmlnLnNlcmllcyA9IHRoaXMuX2NvbmZpZz8uc2VyaWVzPy5tYXAoKHNlcmllKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc2VyaWUsXG4gICAgICAgICAgZGF0YTogc2VyaWU/LmRhdGE/Lm1hcCgocG9pbnQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLnBvaW50LFxuICAgICAgICAgICAgICB4OiBwb2ludD8ueSxcbiAgICAgICAgICAgICAgeTogcG9pbnQ/LngsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0pLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5heGVzU2VydmljZS5pbml0KHRoaXMuX2NvbmZpZyk7XG4gIH1cblxuICBwdWJsaWMgc2V0U2l6ZShzaXplOiBET01SZWN0KSB7XG4gICAgdGhpcy5zaXplJC5uZXh0KHNpemUpO1xuICB9XG5cbiAgcHVibGljIHNldFBvaW50ZXJNb3ZlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnBvaW50ZXJNb3ZlJC5uZXh0KHsgZXZlbnQgfSk7XG4gIH1cblxuICBwdWJsaWMgc2V0VG9vbHRpcCh0b29sdGlwOiBJRGlzcGxheVRvb2x0aXApIHtcbiAgICB0aGlzLnRvb2x0aXBzJC5uZXh0KHRvb2x0aXApO1xuICB9XG5cbiAgcHVibGljIGVtaXRQbG90YmFuZChldmVudDogSUNoYXJ0RXZlbnQ8UGxvdGJhbmQ+KSB7XG4gICAgdGhpcy5wbG90YmFuZE1vdmUkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGVtaXRQbG90bGluZShldmVudDogSUNoYXJ0RXZlbnQ8UGxvdExpbmU+KSB7XG4gICAgdGhpcy5wbG90bGluZU1vdmUkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGVtaXRQb2ludChldmVudDogSUNoYXJ0RXZlbnQ8SVBvaW50TW92ZT4pIHtcbiAgICB0aGlzLnBvaW50TW92ZSQubmV4dChldmVudCk7XG4gIH1cblxuICBnZXQgY29uZmlnKCk6IElDaGFydENvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZztcbiAgfVxufVxuIl19
93
+ }], ctorParameters: function () { return []; } });
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBTXpFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQUt2RSxNQUFNLE9BQU8sWUFBWTtJQWtCdkI7UUFSUSxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQWUsa0JBQWtCLENBQUMsQ0FBQztRQUNoRSxVQUFLLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQzVELGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQWUsSUFBSSxDQUFDLENBQUM7UUFDdkQsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFtQixDQUFDO1FBQzNDLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQXlCLENBQUM7UUFDdEQsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBeUIsQ0FBQztRQUNyRCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQTJCLENBQUM7UUFHMUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTzthQUN2QixZQUFZLEVBQUU7YUFDZCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxL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LEVBQUU7WUFDbkIsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUMzQyxPQUFPO29CQUNMLEdBQUcsS0FBSztvQkFDUixJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTt3QkFDL0IsT0FBTzs0QkFDTCxHQUFHLEtBQUs7NEJBQ1IsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDOzRCQUNYLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQzt5QkFDWixDQUFDO29CQUNKLENBQUMsQ0FBQztpQkFDSCxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDdkIsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDaEUsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDakU7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzt5R0FuR1UsWUFBWTs2R0FBWixZQUFZLGNBRlgsTUFBTTsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElDaGFydENvbmZpZyB9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtY29uZmlnJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElDaGFydEV2ZW50IH0gZnJvbSAnLi4vbW9kZWwvaS1jaGFydC1ldmVudCc7XG5pbXBvcnQgeyBJRGlzcGxheVRvb2x0aXAgfSBmcm9tICcuLi9tb2RlbC9pLWRpc3BsYXktdG9vbHRpcCc7XG5pbXBvcnQgeyBQbG90QmFuZCB9IGZyb20gJy4uL21vZGVsL3Bsb3QtYmFuZCc7XG5pbXBvcnQgeyBQbG90TGluZSB9IGZyb20gJy4uL21vZGVsL3Bsb3QtbGluZSc7XG5pbXBvcnQgeyBJUG9pbnRNb3ZlIH0gZnJvbSAnLi4vbW9kZWwvaS1wb2ludC1tb3ZlJztcbmltcG9ydCB7IGRlZmF1bHRDaGFydENvbmZpZyB9IGZyb20gJy4uL2RlZmF1bHQvZGVmYXVsdC1jaGFydC1jb25maWcnO1xuaW1wb3J0IHsgZGVmYXVsdEF4aXNDb25maWcgfSBmcm9tICcuLi9kZWZhdWx0L2RlZmF1bHQtYXhpcy1jb25maWcnO1xuaW1wb3J0IHsgZGVmYXVsdFNlcmllc0NvbmZpZyB9IGZyb20gJy4uL2RlZmF1bHQvZGVmYXVsdC1zZXJpZXMtY29uZmlnJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENoYXJ0U2VydmljZSB7XG4gIHB1YmxpYyBjb25maWc6IE9ic2VydmFibGU8SUNoYXJ0Q29uZmlnPjtcbiAgcHVibGljIHNpemU6IE9ic2VydmFibGU8RE9NUmVjdD47XG4gIHB1YmxpYyBwb2ludGVyTW92ZTogT2JzZXJ2YWJsZTxQb2ludGVyRXZlbnQ+O1xuICBwdWJsaWMgdG9vbHRpcHM6IE9ic2VydmFibGU8SURpc3BsYXlUb29sdGlwPjtcbiAgcHVibGljIHBsb3RCYW5kRXZlbnQ6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8UGxvdEJhbmQ+PjtcbiAgcHVibGljIHBsb3RMaW5lTW92ZTogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxQbG90TGluZT4+O1xuICBwdWJsaWMgcGxvdEJhbmRDbGljazogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxQbG90QmFuZD4+O1xuICBwdWJsaWMgcG9pbnRNb3ZlOiBPYnNlcnZhYmxlPElDaGFydEV2ZW50PElQb2ludE1vdmU+PjtcblxuICBwcml2YXRlIGNvbmZpZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElDaGFydENvbmZpZz4oZGVmYXVsdENoYXJ0Q29uZmlnKTtcbiAgcHJpdmF0ZSBzaXplJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RE9NUmVjdD4obmV3IERPTVJlY3RSZWFkT25seSgpKTtcbiAgcHJpdmF0ZSBwb2ludGVyTW92ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBvaW50ZXJFdmVudD4obnVsbCk7XG4gIHByaXZhdGUgdG9vbHRpcHMkID0gbmV3IFN1YmplY3Q8SURpc3BsYXlUb29sdGlwPigpO1xuICBwcml2YXRlIHBsb3RCYW5kRXZlbnQkID0gbmV3IFN1YmplY3Q8SUNoYXJ0RXZlbnQ8UGxvdEJhbmQ+PigpO1xuICBwcml2YXRlIHBsb3RMaW5lTW92ZSQgPSBuZXcgU3ViamVjdDxJQ2hhcnRFdmVudDxQbG90TGluZT4+KCk7XG4gIHByaXZhdGUgcG9pbnRNb3ZlJCA9IG5ldyBTdWJqZWN0PElDaGFydEV2ZW50PElQb2ludE1vdmU+PigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuY29uZmlnID0gdGhpcy5jb25maWckXG4gICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgIC5waXBlKG1hcCh0aGlzLnNldERlZmF1bHRzKSwgbWFwKHRoaXMuc2V0cHJlcGFyYXRpb25EYXRhKSk7XG4gICAgdGhpcy5zaXplID0gdGhpcy5zaXplJFxuICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAucGlwZShmaWx0ZXIoKF8pID0+IF8uaGVpZ2h0ID4gMCAmJiBfLndpZHRoID4gMCkpO1xuXG4gICAgdGhpcy5wb2ludGVyTW92ZSA9IHRoaXMucG9pbnRlck1vdmUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMudG9vbHRpcHMgPSB0aGlzLnRvb2x0aXBzJC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLnBsb3RCYW5kRXZlbnQgPSB0aGlzLnBsb3RCYW5kRXZlbnQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMucGxvdExpbmVNb3ZlID0gdGhpcy5wbG90TGluZU1vdmUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMucG9pbnRNb3ZlID0gdGhpcy5wb2ludE1vdmUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMucGxvdEJhbmRDbGljayA9IHRoaXMucGxvdEJhbmRFdmVudCRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUoZmlsdGVyKChfKSA9PiBfPy5ldmVudD8udHlwZSA9PT0gJ2NsaWNrJykpO1xuICB9XG5cbiAgcHVibGljIHNldENvbmZpZyhjb25maWc6IElDaGFydENvbmZpZykge1xuICAgIHRoaXMuY29uZmlnJC5uZXh0KGNvbmZpZyk7XG4gIH1cblxuICBwdWJsaWMgc2V0U2l6ZShzaXplOiBET01SZWN0KSB7XG4gICAgdGhpcy5zaXplJC5uZXh0KHNpemUpO1xuICB9XG5cbiAgcHVibGljIHNldFBvaW50ZXJNb3ZlKGV2ZW50OiBQb2ludGVyRXZlbnQpIHtcbiAgICB0aGlzLnBvaW50ZXJNb3ZlJC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRUb29sdGlwKHRvb2x0aXA6IElEaXNwbGF5VG9vbHRpcCkge1xuICAgIHRoaXMudG9vbHRpcHMkLm5leHQodG9vbHRpcCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdFBsb3RiYW5kKGV2ZW50OiBJQ2hhcnRFdmVudDxQbG90QmFuZD4pIHtcbiAgICB0aGlzLnBsb3RCYW5kRXZlbnQkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGVtaXRQbG90bGluZShldmVudDogSUNoYXJ0RXZlbnQ8UGxvdExpbmU+KSB7XG4gICAgdGhpcy5wbG90TGluZU1vdmUkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGVtaXRQb2ludChldmVudDogSUNoYXJ0RXZlbnQ8SVBvaW50TW92ZT4pIHtcbiAgICB0aGlzLnBvaW50TW92ZSQubmV4dChldmVudCk7XG4gIH1cblxuICBwcml2YXRlIHNldERlZmF1bHRzKGNvbmZpZzogSUNoYXJ0Q29uZmlnKTogSUNoYXJ0Q29uZmlnIHtcbiAgICBjb25zdCBkZWZhdWx0Q29uZmlnID0gKGRlZmF1bHRDb25maWcpID0+IHtcbiAgICAgIHJldHVybiAoc291cmNlKSA9PiB7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0Q29uZmlnLCBzb3VyY2UpO1xuICAgICAgfTtcbiAgICB9O1xuICAgIGNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRDaGFydENvbmZpZywgY29uZmlnKTtcbiAgICBjb25maWcueEF4aXMgPSBjb25maWcueEF4aXMubWFwKGRlZmF1bHRDb25maWcoZGVmYXVsdEF4aXNDb25maWcpKTtcbiAgICBjb25maWcueUF4aXMgPSBjb25maWcueUF4aXMubWFwKGRlZmF1bHRDb25maWcoZGVmYXVsdEF4aXNDb25maWcpKTtcbiAgICBjb25maWcuc2VyaWVzID0gY29uZmlnLnNlcmllcy5tYXAoZGVmYXVsdENvbmZpZyhkZWZhdWx0U2VyaWVzQ29uZmlnKSk7XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIHByaXZhdGUgc2V0cHJlcGFyYXRpb25EYXRhKGNvbmZpZzogSUNoYXJ0Q29uZmlnKTogSUNoYXJ0Q29uZmlnIHtcbiAgICBpZiAoY29uZmlnLmludmVydGVkKSB7XG4gICAgICBjb25maWcuc2VyaWVzID0gY29uZmlnLnNlcmllcz8ubWFwKChzZXJpZSkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnNlcmllLFxuICAgICAgICAgIGRhdGE6IHNlcmllPy5kYXRhPy5tYXAoKHBvaW50KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5wb2ludCxcbiAgICAgICAgICAgICAgeDogcG9pbnQ/LnksXG4gICAgICAgICAgICAgIHk6IHBvaW50Py54LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChjb25maWcuYnJ1c2guZW5hYmxlKSB7XG4gICAgICBjb25maWcueUF4aXMgPSBjb25maWcueUF4aXMubWFwKChfKSA9PiAoeyAuLi5fLCB6b29tOiBmYWxzZSB9KSk7XG4gICAgICBjb25maWcueEF4aXMgPSBjb25maWcueEF4aXMubWFwKChfKSA9PiAoeyAuLi5fLCB6b29tOiBmYWxzZSB9KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxufVxuIl19