@tetacom/svg-charts 1.0.2 → 1.1.3

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 (265) hide show
  1. package/{dist/chart → chart}/base/series-base.component.d.ts +4 -1
  2. package/{dist/chart → chart}/chart/chart.component.d.ts +12 -9
  3. package/chart/chart-container/chart-container.component.d.ts +37 -0
  4. package/chart/chart-container/gridlines/gridlines.component.d.ts +14 -0
  5. package/{dist/chart/chart-container/plotband/plotband.component.d.ts → chart/chart-container/plotband/plot-band.component.d.ts} +11 -10
  6. package/{dist/chart → chart}/chart-container/plotline/plotline.component.d.ts +5 -5
  7. package/{dist/chart → chart}/chart-container/series/bar/bar-series.component.d.ts +0 -0
  8. package/{dist/chart → chart}/chart-container/series/line/line-series.component.d.ts +2 -2
  9. package/chart/chart-container/series/scatter-series/scatter-series.component.d.ts +28 -0
  10. package/{dist/chart → chart}/chart-container/series-host/series-host.component.d.ts +4 -1
  11. package/{dist/chart → chart}/chart-container/tooltip/tooltip.component.d.ts +6 -3
  12. package/chart/chart-container/x-axis/x-axis.component.d.ts +19 -0
  13. package/chart/chart-container/y-axis/y-axis.component.d.ts +20 -0
  14. package/{dist/chart → chart}/chart.module.d.ts +4 -3
  15. package/{dist/chart → chart}/core/axis/axis.d.ts +8 -3
  16. package/{dist/chart → chart}/core/axis/builders/axis-size-builder.d.ts +0 -0
  17. package/{dist/chart → chart}/core/axis/builders/extremes-builder.d.ts +0 -0
  18. package/{dist/chart → chart}/core/axis/builders/public-api.d.ts +0 -0
  19. package/{dist/chart → chart}/core/utils/generate-ticks.d.ts +0 -0
  20. package/{dist/chart → chart}/core/utils/get-text-width.d.ts +0 -0
  21. package/{dist/chart → chart}/core/utils/public-api.d.ts +0 -0
  22. package/chart/default/default-axis-config.d.ts +2 -0
  23. package/chart/default/default-chart-config.d.ts +2 -0
  24. package/chart/default/default-series-config.d.ts +3 -0
  25. package/{dist/chart → chart}/directives/brushable.directive.d.ts +2 -1
  26. package/{dist/chart → chart}/directives/zoomable.directive.d.ts +1 -3
  27. package/{dist/chart → chart}/legend/legend.component.d.ts +1 -3
  28. package/chart/model/axis-options.d.ts +19 -0
  29. package/{dist/chart → chart}/model/base-point.d.ts +1 -1
  30. package/{dist/chart → chart}/model/chart-bounds.d.ts +0 -0
  31. package/{dist/chart → chart}/model/enum/axis-orientation.d.ts +0 -0
  32. package/{dist/chart → chart}/model/enum/brush-type.d.ts +0 -0
  33. package/{dist/chart → chart}/model/enum/drag-point-type.d.ts +0 -0
  34. package/{dist/chart → chart}/model/enum/public-api.d.ts +1 -1
  35. package/chart/model/enum/scale-type.d.ts +8 -0
  36. package/{dist/chart → chart}/model/enum/series-type.d.ts +2 -1
  37. package/{dist/chart → chart}/model/enum/tooltip-tracking.d.ts +0 -0
  38. package/{dist/chart → chart}/model/enum/zoom-type.d.ts +0 -0
  39. package/chart/model/i-broadcast-message.d.ts +17 -0
  40. package/{dist/chart → chart}/model/i-builder.d.ts +0 -0
  41. package/{dist/chart → chart}/model/i-chart-config.d.ts +1 -0
  42. package/{dist/chart → chart}/model/i-chart-event.d.ts +0 -0
  43. package/{dist/chart → chart}/model/i-display-tooltip.d.ts +0 -0
  44. package/{dist/chart → chart}/model/i-point-move.d.ts +0 -0
  45. package/{dist/chart → chart}/model/marker-options.d.ts +0 -0
  46. package/{dist/chart/model/plotband.d.ts → chart/model/plot-band.d.ts} +7 -5
  47. package/{dist/chart/model/plotline.d.ts → chart/model/plot-line.d.ts} +3 -1
  48. package/{dist/chart → chart}/model/public-api.d.ts +2 -2
  49. package/{dist/chart → chart}/model/series.d.ts +0 -0
  50. package/{dist/chart → chart}/model/svg-attributes.d.ts +0 -0
  51. package/{dist/chart → chart}/model/tooltip-options.d.ts +0 -0
  52. package/{dist/chart → chart}/service/broadcast.service.d.ts +0 -0
  53. package/{dist/chart → chart}/service/brush.service.d.ts +2 -5
  54. package/{dist/chart → chart}/service/chart.service.d.ts +16 -17
  55. package/chart/service/scale.service.d.ts +19 -0
  56. package/{dist/chart → chart}/service/zoom.service.d.ts +6 -14
  57. package/esm2020/chart/base/series-base.component.mjs +32 -0
  58. package/esm2020/chart/chart/chart.component.mjs +71 -0
  59. package/esm2020/chart/chart-container/chart-container.component.mjs +133 -0
  60. package/esm2020/chart/chart-container/gridlines/gridlines.component.mjs +29 -0
  61. package/esm2020/chart/chart-container/plotband/plot-band.component.mjs +150 -0
  62. package/esm2020/chart/chart-container/plotline/plotline.component.mjs +76 -0
  63. package/esm2020/chart/chart-container/series/bar/bar-series.component.mjs +48 -0
  64. package/esm2020/chart/chart-container/series/line/line-series.component.mjs +152 -0
  65. package/esm2020/chart/chart-container/series/scatter-series/scatter-series.component.mjs +174 -0
  66. package/esm2020/chart/chart-container/series-host/series-host.component.mjs +68 -0
  67. package/esm2020/chart/chart-container/tooltip/tooltip.component.mjs +83 -0
  68. package/esm2020/chart/chart-container/x-axis/x-axis.component.mjs +53 -0
  69. package/esm2020/chart/chart-container/y-axis/y-axis.component.mjs +58 -0
  70. package/{dist/esm2020 → esm2020}/chart/chart.module.mjs +8 -5
  71. package/esm2020/chart/core/axis/axis.mjs +105 -0
  72. package/{dist/esm2020 → esm2020}/chart/core/axis/builders/axis-size-builder.mjs +0 -0
  73. package/esm2020/chart/core/axis/builders/extremes-builder.mjs +31 -0
  74. package/{dist/esm2020 → esm2020}/chart/core/axis/builders/public-api.mjs +0 -0
  75. package/{dist/esm2020 → esm2020}/chart/core/utils/generate-ticks.mjs +0 -0
  76. package/{dist/esm2020 → esm2020}/chart/core/utils/get-text-width.mjs +0 -0
  77. package/{dist/esm2020 → esm2020}/chart/core/utils/public-api.mjs +0 -0
  78. package/esm2020/chart/default/default-axis-config.mjs +9 -0
  79. package/esm2020/chart/default/default-chart-config.mjs +23 -0
  80. package/esm2020/chart/default/default-series-config.mjs +8 -0
  81. package/{dist/esm2020 → esm2020}/chart/directives/brushable.directive.mjs +5 -3
  82. package/esm2020/chart/directives/zoomable.directive.mjs +36 -0
  83. package/esm2020/chart/legend/legend.component.mjs +27 -0
  84. package/esm2020/chart/model/axis-options.mjs +2 -0
  85. package/{dist/esm2020 → esm2020}/chart/model/base-point.mjs +1 -1
  86. package/{dist/esm2020 → esm2020}/chart/model/chart-bounds.mjs +0 -0
  87. package/{dist/esm2020 → esm2020}/chart/model/enum/axis-orientation.mjs +0 -0
  88. package/{dist/esm2020 → esm2020}/chart/model/enum/brush-type.mjs +0 -0
  89. package/{dist/esm2020 → esm2020}/chart/model/enum/drag-point-type.mjs +0 -0
  90. package/{dist/esm2020 → esm2020}/chart/model/enum/public-api.mjs +2 -2
  91. package/esm2020/chart/model/enum/scale-type.mjs +10 -0
  92. package/{dist/esm2020 → esm2020}/chart/model/enum/series-type.mjs +2 -1
  93. package/{dist/esm2020 → esm2020}/chart/model/enum/tooltip-tracking.mjs +0 -0
  94. package/{dist/esm2020 → esm2020}/chart/model/enum/zoom-type.mjs +0 -0
  95. package/esm2020/chart/model/i-broadcast-message.mjs +2 -0
  96. package/{dist/esm2020 → esm2020}/chart/model/i-builder.mjs +0 -0
  97. package/{dist/esm2020 → esm2020}/chart/model/i-chart-config.mjs +1 -1
  98. package/{dist/esm2020 → esm2020}/chart/model/i-chart-event.mjs +0 -0
  99. package/{dist/esm2020 → esm2020}/chart/model/i-display-tooltip.mjs +0 -0
  100. package/{dist/esm2020 → esm2020}/chart/model/i-point-move.mjs +0 -0
  101. package/{dist/esm2020 → esm2020}/chart/model/marker-options.mjs +0 -0
  102. package/esm2020/chart/model/plot-band.mjs +17 -0
  103. package/esm2020/chart/model/plot-line.mjs +13 -0
  104. package/{dist/esm2020 → esm2020}/chart/model/public-api.mjs +3 -3
  105. package/{dist/esm2020 → esm2020}/chart/model/series.mjs +0 -0
  106. package/{dist/esm2020 → esm2020}/chart/model/svg-attributes.mjs +0 -0
  107. package/{dist/esm2020 → esm2020}/chart/model/tooltip-options.mjs +0 -0
  108. package/esm2020/chart/service/broadcast.service.mjs +23 -0
  109. package/esm2020/chart/service/brush.service.mjs +70 -0
  110. package/esm2020/chart/service/chart.service.mjs +95 -0
  111. package/esm2020/chart/service/scale.service.mjs +152 -0
  112. package/esm2020/chart/service/zoom.service.mjs +114 -0
  113. package/esm2020/public-api.mjs +9 -0
  114. package/{dist/esm2020 → esm2020}/tetacom-svg-charts.mjs +0 -0
  115. package/fesm2015/tetacom-svg-charts.mjs +1912 -0
  116. package/fesm2015/tetacom-svg-charts.mjs.map +1 -0
  117. package/fesm2020/tetacom-svg-charts.mjs +1887 -0
  118. package/fesm2020/tetacom-svg-charts.mjs.map +1 -0
  119. package/package.json +22 -2
  120. package/{dist/public-api.d.ts → public-api.d.ts} +0 -0
  121. package/{dist/tetacom-svg-charts.d.ts → tetacom-svg-charts.d.ts} +0 -0
  122. package/dist/README.md +0 -24
  123. package/dist/chart/chart-container/chart-container.component.d.ts +0 -42
  124. package/dist/chart/chart-container/gridlines/gridlines.component.d.ts +0 -23
  125. package/dist/chart/chart-container/x-axis/x-axis.component.d.ts +0 -23
  126. package/dist/chart/chart-container/y-axis/y-axis.component.d.ts +0 -24
  127. package/dist/chart/model/axis-options.d.ts +0 -17
  128. package/dist/chart/model/enum/axis-type.d.ts +0 -7
  129. package/dist/chart/model/i-broadcast-message.d.ts +0 -5
  130. package/dist/chart/service/axes.service.d.ts +0 -11
  131. package/dist/chart/service/scale.service.d.ts +0 -14
  132. package/dist/esm2020/chart/base/series-base.component.mjs +0 -34
  133. package/dist/esm2020/chart/chart/chart.component.mjs +0 -73
  134. package/dist/esm2020/chart/chart-container/chart-container.component.mjs +0 -151
  135. package/dist/esm2020/chart/chart-container/gridlines/gridlines.component.mjs +0 -41
  136. package/dist/esm2020/chart/chart-container/plotband/plotband.component.mjs +0 -139
  137. package/dist/esm2020/chart/chart-container/plotline/plotline.component.mjs +0 -79
  138. package/dist/esm2020/chart/chart-container/series/bar/bar-series.component.mjs +0 -48
  139. package/dist/esm2020/chart/chart-container/series/line/line-series.component.mjs +0 -148
  140. package/dist/esm2020/chart/chart-container/series-host/series-host.component.mjs +0 -59
  141. package/dist/esm2020/chart/chart-container/tooltip/tooltip.component.mjs +0 -81
  142. package/dist/esm2020/chart/chart-container/x-axis/x-axis.component.mjs +0 -56
  143. package/dist/esm2020/chart/chart-container/y-axis/y-axis.component.mjs +0 -63
  144. package/dist/esm2020/chart/core/axis/axis.mjs +0 -96
  145. package/dist/esm2020/chart/core/axis/builders/extremes-builder.mjs +0 -32
  146. package/dist/esm2020/chart/directives/zoomable.directive.mjs +0 -37
  147. package/dist/esm2020/chart/legend/legend.component.mjs +0 -30
  148. package/dist/esm2020/chart/model/axis-options.mjs +0 -2
  149. package/dist/esm2020/chart/model/enum/axis-type.mjs +0 -9
  150. package/dist/esm2020/chart/model/i-broadcast-message.mjs +0 -2
  151. package/dist/esm2020/chart/model/plotband.mjs +0 -16
  152. package/dist/esm2020/chart/model/plotline.mjs +0 -12
  153. package/dist/esm2020/chart/service/axes.service.mjs +0 -29
  154. package/dist/esm2020/chart/service/broadcast.service.mjs +0 -25
  155. package/dist/esm2020/chart/service/brush.service.mjs +0 -67
  156. package/dist/esm2020/chart/service/chart.service.mjs +0 -76
  157. package/dist/esm2020/chart/service/scale.service.mjs +0 -64
  158. package/dist/esm2020/chart/service/zoom.service.mjs +0 -117
  159. package/dist/esm2020/public-api.mjs +0 -8
  160. package/dist/fesm2015/tetacom-svg-charts.mjs +0 -1617
  161. package/dist/fesm2015/tetacom-svg-charts.mjs.map +0 -1
  162. package/dist/fesm2020/tetacom-svg-charts.mjs +0 -1603
  163. package/dist/fesm2020/tetacom-svg-charts.mjs.map +0 -1
  164. package/dist/package.json +0 -35
  165. package/karma.conf.js +0 -44
  166. package/ng-package.json +0 -7
  167. package/src/chart/Chart.stories.ts +0 -397
  168. package/src/chart/base/series-base.component.ts +0 -41
  169. package/src/chart/chart/chart.component.html +0 -5
  170. package/src/chart/chart/chart.component.scss +0 -6
  171. package/src/chart/chart/chart.component.spec.ts +0 -25
  172. package/src/chart/chart/chart.component.ts +0 -97
  173. package/src/chart/chart-container/chart-container.component.html +0 -78
  174. package/src/chart/chart-container/chart-container.component.scss +0 -15
  175. package/src/chart/chart-container/chart-container.component.spec.ts +0 -25
  176. package/src/chart/chart-container/chart-container.component.ts +0 -242
  177. package/src/chart/chart-container/gridlines/gridlines.component.html +0 -7
  178. package/src/chart/chart-container/gridlines/gridlines.component.scss +0 -8
  179. package/src/chart/chart-container/gridlines/gridlines.component.spec.ts +0 -25
  180. package/src/chart/chart-container/gridlines/gridlines.component.ts +0 -55
  181. package/src/chart/chart-container/plotband/plotband.component.html +0 -58
  182. package/src/chart/chart-container/plotband/plotband.component.scss +0 -13
  183. package/src/chart/chart-container/plotband/plotband.component.spec.ts +0 -25
  184. package/src/chart/chart-container/plotband/plotband.component.ts +0 -206
  185. package/src/chart/chart-container/plotline/plotline.component.html +0 -22
  186. package/src/chart/chart-container/plotline/plotline.component.scss +0 -6
  187. package/src/chart/chart-container/plotline/plotline.component.spec.ts +0 -25
  188. package/src/chart/chart-container/plotline/plotline.component.ts +0 -113
  189. package/src/chart/chart-container/series/bar/bar-series.component.html +0 -3
  190. package/src/chart/chart-container/series/bar/bar-series.component.scss +0 -0
  191. package/src/chart/chart-container/series/bar/bar-series.component.ts +0 -71
  192. package/src/chart/chart-container/series/line/line-series.component.html +0 -38
  193. package/src/chart/chart-container/series/line/line-series.component.scss +0 -9
  194. package/src/chart/chart-container/series/line/line-series.component.spec.ts +0 -25
  195. package/src/chart/chart-container/series/line/line-series.component.ts +0 -245
  196. package/src/chart/chart-container/series-host/series-host.component.ts +0 -80
  197. package/src/chart/chart-container/tooltip/tooltip.component.html +0 -14
  198. package/src/chart/chart-container/tooltip/tooltip.component.scss +0 -7
  199. package/src/chart/chart-container/tooltip/tooltip.component.spec.ts +0 -25
  200. package/src/chart/chart-container/tooltip/tooltip.component.ts +0 -134
  201. package/src/chart/chart-container/x-axis/x-axis.component.html +0 -1
  202. package/src/chart/chart-container/x-axis/x-axis.component.scss +0 -3
  203. package/src/chart/chart-container/x-axis/x-axis.component.spec.ts +0 -25
  204. package/src/chart/chart-container/x-axis/x-axis.component.ts +0 -80
  205. package/src/chart/chart-container/y-axis/y-axis.component.html +0 -4
  206. package/src/chart/chart-container/y-axis/y-axis.component.scss +0 -13
  207. package/src/chart/chart-container/y-axis/y-axis.component.spec.ts +0 -25
  208. package/src/chart/chart-container/y-axis/y-axis.component.ts +0 -90
  209. package/src/chart/chart.module.ts +0 -40
  210. package/src/chart/core/axis/axis.ts +0 -132
  211. package/src/chart/core/axis/builders/axis-size-builder.ts +0 -37
  212. package/src/chart/core/axis/builders/extremes-builder.ts +0 -45
  213. package/src/chart/core/axis/builders/public-api.ts +0 -2
  214. package/src/chart/core/utils/generate-ticks.ts +0 -14
  215. package/src/chart/core/utils/get-text-width.ts +0 -10
  216. package/src/chart/core/utils/public-api.ts +0 -2
  217. package/src/chart/default/default-chart-config.ts +0 -12
  218. package/src/chart/directives/brushable.directive.ts +0 -30
  219. package/src/chart/directives/zoomable.directive.ts +0 -31
  220. package/src/chart/legend/legend.component.html +0 -6
  221. package/src/chart/legend/legend.component.scss +0 -20
  222. package/src/chart/legend/legend.component.spec.ts +0 -25
  223. package/src/chart/legend/legend.component.ts +0 -35
  224. package/src/chart/model/axis-options.ts +0 -18
  225. package/src/chart/model/base-point.ts +0 -10
  226. package/src/chart/model/chart-bounds.ts +0 -18
  227. package/src/chart/model/enum/axis-orientation.ts +0 -4
  228. package/src/chart/model/enum/axis-type.ts +0 -7
  229. package/src/chart/model/enum/brush-type.ts +0 -5
  230. package/src/chart/model/enum/drag-point-type.ts +0 -5
  231. package/src/chart/model/enum/public-api.ts +0 -7
  232. package/src/chart/model/enum/series-type.ts +0 -4
  233. package/src/chart/model/enum/tooltip-tracking.ts +0 -4
  234. package/src/chart/model/enum/zoom-type.ts +0 -5
  235. package/src/chart/model/i-broadcast-message.ts +0 -5
  236. package/src/chart/model/i-builder.ts +0 -3
  237. package/src/chart/model/i-chart-config.ts +0 -33
  238. package/src/chart/model/i-chart-event.ts +0 -4
  239. package/src/chart/model/i-display-tooltip.ts +0 -7
  240. package/src/chart/model/i-drag-event.ts +0 -5
  241. package/src/chart/model/i-point-move.ts +0 -7
  242. package/src/chart/model/marker-options.ts +0 -8
  243. package/src/chart/model/plotband.ts +0 -45
  244. package/src/chart/model/plotline.ts +0 -29
  245. package/src/chart/model/public-api.ts +0 -14
  246. package/src/chart/model/series.ts +0 -18
  247. package/src/chart/model/svg-attributes.ts +0 -14
  248. package/src/chart/model/tooltip-options.ts +0 -37
  249. package/src/chart/service/axes.service.spec.ts +0 -16
  250. package/src/chart/service/axes.service.ts +0 -27
  251. package/src/chart/service/broadcast.service.spec.ts +0 -16
  252. package/src/chart/service/broadcast.service.ts +0 -24
  253. package/src/chart/service/brush.service.spec.ts +0 -16
  254. package/src/chart/service/brush.service.ts +0 -87
  255. package/src/chart/service/chart.service.spec.ts +0 -16
  256. package/src/chart/service/chart.service.ts +0 -100
  257. package/src/chart/service/scale.service.spec.ts +0 -16
  258. package/src/chart/service/scale.service.ts +0 -74
  259. package/src/chart/service/zoom.service.spec.ts +0 -16
  260. package/src/chart/service/zoom.service.ts +0 -153
  261. package/src/public-api.ts +0 -8
  262. package/src/test.ts +0 -27
  263. package/tsconfig.lib.json +0 -15
  264. package/tsconfig.lib.prod.json +0 -10
  265. package/tsconfig.spec.json +0 -17
@@ -0,0 +1,95 @@
1
+ import { Injectable } from '@angular/core';
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';
6
+ import * as i0 from "@angular/core";
7
+ export class ChartService {
8
+ constructor() {
9
+ this.config$ = new BehaviorSubject(defaultChartConfig);
10
+ this.size$ = new BehaviorSubject(new DOMRectReadOnly());
11
+ this.pointerMove$ = new BehaviorSubject(null);
12
+ this.tooltips$ = new Subject();
13
+ this.plotBandEvent$ = new Subject();
14
+ this.plotLineMove$ = new Subject();
15
+ this.pointMove$ = new Subject();
16
+ this.config = this.config$
17
+ .asObservable()
18
+ .pipe(map(this.setDefaults), map(this.setpreparationData));
19
+ this.size = this.size$.asObservable().pipe(filter((_) => {
20
+ return _.height > 0 && _.width > 0;
21
+ }));
22
+ this.pointerMove = this.pointerMove$.asObservable();
23
+ this.tooltips = this.tooltips$.asObservable();
24
+ this.plotBandEvent = this.plotBandEvent$.asObservable();
25
+ this.plotLineMove = this.plotLineMove$.asObservable();
26
+ this.pointMove = this.pointMove$.asObservable();
27
+ this.plotBandClick = this.plotBandEvent$
28
+ .asObservable()
29
+ .pipe(filter((_) => _?.event?.type === 'click'));
30
+ }
31
+ setConfig(config) {
32
+ this.config$.next(config);
33
+ }
34
+ setSize(size) {
35
+ this.size$.next(size);
36
+ }
37
+ setPointerMove(event) {
38
+ this.pointerMove$.next(event);
39
+ }
40
+ setTooltip(tooltip) {
41
+ this.tooltips$.next(tooltip);
42
+ }
43
+ emitPlotband(event) {
44
+ this.plotBandEvent$.next(event);
45
+ }
46
+ emitPlotline(event) {
47
+ this.plotLineMove$.next(event);
48
+ }
49
+ emitPoint(event) {
50
+ this.pointMove$.next(event);
51
+ }
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
+ config.tooltip = Object.assign({}, defaultChartConfig.tooltip, config.tooltip);
63
+ return config;
64
+ }
65
+ setpreparationData(config) {
66
+ if (config.inverted) {
67
+ config.series = config.series?.map((serie) => {
68
+ return {
69
+ ...serie,
70
+ data: serie?.data?.map((point) => {
71
+ return {
72
+ ...point,
73
+ x: point?.y,
74
+ y: point?.x,
75
+ };
76
+ }),
77
+ };
78
+ });
79
+ }
80
+ if (config.brush?.enable) {
81
+ config.yAxis = config.yAxis.map((_) => ({ ..._, zoom: false }));
82
+ config.xAxis = config.xAxis.map((_) => ({ ..._, zoom: false }));
83
+ }
84
+ return config;
85
+ }
86
+ }
87
+ ChartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ChartService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
88
+ ChartService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ChartService, providedIn: 'root' });
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ChartService, decorators: [{
90
+ type: Injectable,
91
+ args: [{
92
+ providedIn: 'root',
93
+ }]
94
+ }], ctorParameters: function () { return []; } });
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBTXpFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQUt2RSxNQUFNLE9BQU8sWUFBWTtJQWtCdkI7UUFSUSxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQWUsa0JBQWtCLENBQUMsQ0FBQztRQUNoRSxVQUFLLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQzVELGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQWUsSUFBSSxDQUFDLENBQUM7UUFDdkQsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFtQixDQUFDO1FBQzNDLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQXlCLENBQUM7UUFDdEQsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBeUIsQ0FBQztRQUNyRCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQTJCLENBQUM7UUFHMUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTzthQUN2QixZQUFZLEVBQUU7YUFDZCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxL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bkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJQ2hhcnRDb25maWcgfSBmcm9tICcuLi9tb2RlbC9pLWNoYXJ0LWNvbmZpZyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJQ2hhcnRFdmVudCB9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtZXZlbnQnO1xuaW1wb3J0IHsgSURpc3BsYXlUb29sdGlwIH0gZnJvbSAnLi4vbW9kZWwvaS1kaXNwbGF5LXRvb2x0aXAnO1xuaW1wb3J0IHsgUGxvdEJhbmQgfSBmcm9tICcuLi9tb2RlbC9wbG90LWJhbmQnO1xuaW1wb3J0IHsgUGxvdExpbmUgfSBmcm9tICcuLi9tb2RlbC9wbG90LWxpbmUnO1xuaW1wb3J0IHsgSVBvaW50TW92ZSB9IGZyb20gJy4uL21vZGVsL2ktcG9pbnQtbW92ZSc7XG5pbXBvcnQgeyBkZWZhdWx0Q2hhcnRDb25maWcgfSBmcm9tICcuLi9kZWZhdWx0L2RlZmF1bHQtY2hhcnQtY29uZmlnJztcbmltcG9ydCB7IGRlZmF1bHRBeGlzQ29uZmlnIH0gZnJvbSAnLi4vZGVmYXVsdC9kZWZhdWx0LWF4aXMtY29uZmlnJztcbmltcG9ydCB7IGRlZmF1bHRTZXJpZXNDb25maWcgfSBmcm9tICcuLi9kZWZhdWx0L2RlZmF1bHQtc2VyaWVzLWNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDaGFydFNlcnZpY2Uge1xuICBwdWJsaWMgY29uZmlnOiBPYnNlcnZhYmxlPElDaGFydENvbmZpZz47XG4gIHB1YmxpYyBzaXplOiBPYnNlcnZhYmxlPERPTVJlY3Q+O1xuICBwdWJsaWMgcG9pbnRlck1vdmU6IE9ic2VydmFibGU8UG9pbnRlckV2ZW50PjtcbiAgcHVibGljIHRvb2x0aXBzOiBPYnNlcnZhYmxlPElEaXNwbGF5VG9vbHRpcD47XG4gIHB1YmxpYyBwbG90QmFuZEV2ZW50OiBPYnNlcnZhYmxlPElDaGFydEV2ZW50PFBsb3RCYW5kPj47XG4gIHB1YmxpYyBwbG90TGluZU1vdmU6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8UGxvdExpbmU+PjtcbiAgcHVibGljIHBsb3RCYW5kQ2xpY2s6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8UGxvdEJhbmQ+PjtcbiAgcHVibGljIHBvaW50TW92ZTogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxJUG9pbnRNb3ZlPj47XG5cbiAgcHJpdmF0ZSBjb25maWckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJQ2hhcnRDb25maWc+KGRlZmF1bHRDaGFydENvbmZpZyk7XG4gIHByaXZhdGUgc2l6ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERPTVJlY3Q+KG5ldyBET01SZWN0UmVhZE9ubHkoKSk7XG4gIHByaXZhdGUgcG9pbnRlck1vdmUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQb2ludGVyRXZlbnQ+KG51bGwpO1xuICBwcml2YXRlIHRvb2x0aXBzJCA9IG5ldyBTdWJqZWN0PElEaXNwbGF5VG9vbHRpcD4oKTtcbiAgcHJpdmF0ZSBwbG90QmFuZEV2ZW50JCA9IG5ldyBTdWJqZWN0PElDaGFydEV2ZW50PFBsb3RCYW5kPj4oKTtcbiAgcHJpdmF0ZSBwbG90TGluZU1vdmUkID0gbmV3IFN1YmplY3Q8SUNoYXJ0RXZlbnQ8UGxvdExpbmU+PigpO1xuICBwcml2YXRlIHBvaW50TW92ZSQgPSBuZXcgU3ViamVjdDxJQ2hhcnRFdmVudDxJUG9pbnRNb3ZlPj4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmNvbmZpZyA9IHRoaXMuY29uZmlnJFxuICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAucGlwZShtYXAodGhpcy5zZXREZWZhdWx0cyksIG1hcCh0aGlzLnNldHByZXBhcmF0aW9uRGF0YSkpO1xuICAgIHRoaXMuc2l6ZSA9IHRoaXMuc2l6ZSQuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgIGZpbHRlcigoXykgPT4ge1xuICAgICAgICByZXR1cm4gXy5oZWlnaHQgPiAwICYmIF8ud2lkdGggPiAwO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5wb2ludGVyTW92ZSA9IHRoaXMucG9pbnRlck1vdmUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMudG9vbHRpcHMgPSB0aGlzLnRvb2x0aXBzJC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLnBsb3RCYW5kRXZlbnQgPSB0aGlzLnBsb3RCYW5kRXZlbnQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMucGxvdExpbmVNb3ZlID0gdGhpcy5wbG90TGluZU1vdmUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMucG9pbnRNb3ZlID0gdGhpcy5wb2ludE1vdmUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMucGxvdEJhbmRDbGljayA9IHRoaXMucGxvdEJhbmRFdmVudCRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUoZmlsdGVyKChfKSA9PiBfPy5ldmVudD8udHlwZSA9PT0gJ2NsaWNrJykpO1xuICB9XG5cbiAgcHVibGljIHNldENvbmZpZyhjb25maWc6IElDaGFydENvbmZpZykge1xuICAgIHRoaXMuY29uZmlnJC5uZXh0KGNvbmZpZyk7XG4gIH1cblxuICBwdWJsaWMgc2V0U2l6ZShzaXplOiBET01SZWN0KSB7XG4gICAgdGhpcy5zaXplJC5uZXh0KHNpemUpO1xuICB9XG5cbiAgcHVibGljIHNldFBvaW50ZXJNb3ZlKGV2ZW50OiBQb2ludGVyRXZlbnQpIHtcbiAgICB0aGlzLnBvaW50ZXJNb3ZlJC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRUb29sdGlwKHRvb2x0aXA6IElEaXNwbGF5VG9vbHRpcCkge1xuICAgIHRoaXMudG9vbHRpcHMkLm5leHQodG9vbHRpcCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdFBsb3RiYW5kKGV2ZW50OiBJQ2hhcnRFdmVudDxQbG90QmFuZD4pIHtcbiAgICB0aGlzLnBsb3RCYW5kRXZlbnQkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGVtaXRQbG90bGluZShldmVudDogSUNoYXJ0RXZlbnQ8UGxvdExpbmU+KSB7XG4gICAgdGhpcy5wbG90TGluZU1vdmUkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGVtaXRQb2ludChldmVudDogSUNoYXJ0RXZlbnQ8SVBvaW50TW92ZT4pIHtcbiAgICB0aGlzLnBvaW50TW92ZSQubmV4dChldmVudCk7XG4gIH1cblxuICBwcml2YXRlIHNldERlZmF1bHRzKGNvbmZpZzogSUNoYXJ0Q29uZmlnKTogSUNoYXJ0Q29uZmlnIHtcbiAgICBjb25zdCBkZWZhdWx0Q29uZmlnID0gKGRlZmF1bHRDb25maWcpID0+IHtcbiAgICAgIHJldHVybiAoc291cmNlKSA9PiB7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0Q29uZmlnLCBzb3VyY2UpO1xuICAgICAgfTtcbiAgICB9O1xuICAgIGNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRDaGFydENvbmZpZywgY29uZmlnKTtcblxuICAgIGNvbmZpZy54QXhpcyA9IGNvbmZpZy54QXhpcy5tYXAoZGVmYXVsdENvbmZpZyhkZWZhdWx0QXhpc0NvbmZpZykpO1xuICAgIGNvbmZpZy55QXhpcyA9IGNvbmZpZy55QXhpcy5tYXAoZGVmYXVsdENvbmZpZyhkZWZhdWx0QXhpc0NvbmZpZykpO1xuICAgIGNvbmZpZy5zZXJpZXMgPSBjb25maWcuc2VyaWVzLm1hcChkZWZhdWx0Q29uZmlnKGRlZmF1bHRTZXJpZXNDb25maWcpKTtcblxuICAgIGNvbmZpZy50b29sdGlwID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgZGVmYXVsdENoYXJ0Q29uZmlnLnRvb2x0aXAsXG4gICAgICBjb25maWcudG9vbHRpcFxuICAgICk7XG5cbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRwcmVwYXJhdGlvbkRhdGEoY29uZmlnOiBJQ2hhcnRDb25maWcpOiBJQ2hhcnRDb25maWcge1xuICAgIGlmIChjb25maWcuaW52ZXJ0ZWQpIHtcbiAgICAgIGNvbmZpZy5zZXJpZXMgPSBjb25maWcuc2VyaWVzPy5tYXAoKHNlcmllKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc2VyaWUsXG4gICAgICAgICAgZGF0YTogc2VyaWU/LmRhdGE/Lm1hcCgocG9pbnQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLnBvaW50LFxuICAgICAgICAgICAgICB4OiBwb2ludD8ueSxcbiAgICAgICAgICAgICAgeTogcG9pbnQ/LngsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0pLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5icnVzaD8uZW5hYmxlKSB7XG4gICAgICBjb25maWcueUF4aXMgPSBjb25maWcueUF4aXMubWFwKChfKSA9PiAoeyAuLi5fLCB6b29tOiBmYWxzZSB9KSk7XG4gICAgICBjb25maWcueEF4aXMgPSBjb25maWcueEF4aXMubWFwKChfKSA9PiAoeyAuLi5fLCB6b29tOiBmYWxzZSB9KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxufVxuIl19
@@ -0,0 +1,152 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as d3 from 'd3';
3
+ import { Axis } from '../core/axis/axis';
4
+ import { AxisOrientation } from '../model/enum/axis-orientation';
5
+ import { combineLatest, map, shareReplay, withLatestFrom, } from 'rxjs';
6
+ import { ScaleType } from '../model/enum/scale-type';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./chart.service";
9
+ import * as i2 from "./zoom.service";
10
+ export class ScaleService {
11
+ constructor(chartService, zoomService) {
12
+ this.chartService = chartService;
13
+ this.zoomService = zoomService;
14
+ this.transformCacheX = new Map();
15
+ this.transformCacheY = new Map();
16
+ this.scaleMapping = new Map()
17
+ .set(ScaleType.linear, d3.scaleLinear)
18
+ .set(ScaleType.time, d3.scaleTime)
19
+ .set(ScaleType.category, d3.scaleOrdinal)
20
+ .set(ScaleType.log, d3.scaleLog)
21
+ .set(ScaleType.pow, d3.scalePow)
22
+ .set(ScaleType.sqrt, d3.scaleSqrt);
23
+ this.xAxisMap = combineLatest([
24
+ this.chartService.size,
25
+ this.chartService.config,
26
+ ]).pipe(map((data) => {
27
+ const [, config] = data;
28
+ const map = new Map();
29
+ config.xAxis.map((_, index) => {
30
+ map.set(index, Axis.createAxis(AxisOrientation.x, config, index));
31
+ });
32
+ return map;
33
+ }));
34
+ this.yAxisMap = combineLatest([
35
+ this.chartService.size,
36
+ this.chartService.config,
37
+ ]).pipe(map((data) => {
38
+ const [, config] = data;
39
+ const map = new Map();
40
+ config.yAxis.map((_, index) => {
41
+ map.set(index, Axis.createAxis(AxisOrientation.y, config, index));
42
+ });
43
+ return map;
44
+ }));
45
+ this.xScaleMap = combineLatest([
46
+ this.chartService.size,
47
+ this.chartService.config,
48
+ this.zoomService.zoomed,
49
+ ]).pipe(withLatestFrom(this.yAxisMap, this.xAxisMap), map((data) => {
50
+ const [[size, config, zoom], yAxes, xAxes] = data;
51
+ const map = new Map();
52
+ const left = [...yAxes.values()]
53
+ .filter((_) => _.options?.visible && _.options?.opposite)
54
+ .reduce((acc, cur) => acc + cur.selfSize, 0);
55
+ const right = [...yAxes.values()]
56
+ .filter((_) => _.options?.visible && _.options?.opposite !== true)
57
+ .reduce((acc, cur) => acc + cur.selfSize, 0);
58
+ const finalWidth = (size.width || 0) - left - right;
59
+ xAxes.forEach((axis) => {
60
+ let domain = axis.extremes;
61
+ if (axis?.options.inverted) {
62
+ domain = [...axis.extremes].reverse();
63
+ }
64
+ const scale = this.scaleMapping
65
+ .get(axis.options.scaleType.type)()
66
+ .domain(domain)
67
+ .range([0, finalWidth]);
68
+ if (axis.options.scaleType.type === ScaleType.log) {
69
+ scale.base(axis.options.scaleType.base);
70
+ }
71
+ map.set(axis.index, scale);
72
+ const hasCache = this.transformCacheX.has(axis.index);
73
+ const shouldRestore = zoom?.target?.orientation !== AxisOrientation.x ||
74
+ zoom.target?.index !== axis.index;
75
+ if (hasCache && shouldRestore) {
76
+ const restoredTransform = this.transformCacheX.get(axis.index);
77
+ map.set(axis.index, restoredTransform.rescaleX(scale));
78
+ }
79
+ });
80
+ if (zoom) {
81
+ const event = zoom.event;
82
+ if (zoom.target?.orientation === AxisOrientation.x) {
83
+ const currentScale = map.get(zoom.target.index);
84
+ const rescaled = event.transform.rescaleX(currentScale);
85
+ map.set(zoom.target.index, rescaled);
86
+ const axis = xAxes.get(zoom.target.index);
87
+ this.transformCacheX.set(axis.index, event.transform);
88
+ }
89
+ }
90
+ return map;
91
+ }), shareReplay(1));
92
+ this.yScaleMap = combineLatest([
93
+ this.chartService.size,
94
+ this.chartService.config,
95
+ this.zoomService.zoomed,
96
+ ]).pipe(withLatestFrom(this.yAxisMap, this.xAxisMap), map((data) => {
97
+ const [[size, config, zoom], yAxes, xAxes] = data;
98
+ const map = new Map();
99
+ const top = [...xAxes.values()]
100
+ .filter((_) => _.options?.visible && _.options?.opposite)
101
+ .reduce((acc, cur) => acc + cur.selfSize, 0);
102
+ const bottom = [...xAxes.values()]
103
+ .filter((_) => _.options?.visible && _.options?.opposite !== true)
104
+ .reduce((acc, cur) => acc + cur.selfSize, 0);
105
+ const finalHeight = (size.height || 0) - top - bottom;
106
+ yAxes.forEach((axis) => {
107
+ let domain = axis.extremes;
108
+ if (axis.orientation === AxisOrientation.y) {
109
+ domain = [...axis.extremes].reverse();
110
+ }
111
+ if (axis?.options.inverted) {
112
+ domain = domain.reverse();
113
+ }
114
+ const scale = this.scaleMapping
115
+ .get(axis.options.scaleType.type)()
116
+ .domain(domain)
117
+ .range([0, finalHeight]);
118
+ if (axis.options.scaleType.type === ScaleType.log) {
119
+ scale.base(axis.options.scaleType.base);
120
+ }
121
+ map.set(axis.index, scale);
122
+ const hasCache = this.transformCacheY.has(axis.index);
123
+ const shouldRestore = zoom?.target?.orientation !== AxisOrientation.y ||
124
+ zoom.target?.index !== axis.index;
125
+ if (hasCache && shouldRestore) {
126
+ const restoredTransform = this.transformCacheY.get(axis.index);
127
+ map.set(axis.index, restoredTransform.rescaleY(scale));
128
+ }
129
+ });
130
+ if (zoom) {
131
+ const event = zoom.event;
132
+ if (zoom.target?.orientation === AxisOrientation.y) {
133
+ const currentScale = map.get(zoom.target.index);
134
+ const rescaled = event.transform.rescaleY(currentScale);
135
+ map.set(zoom.target.index, rescaled);
136
+ const axis = yAxes.get(zoom.target.index);
137
+ this.transformCacheY.set(axis.index, event.transform);
138
+ }
139
+ }
140
+ return map;
141
+ }), shareReplay(1));
142
+ }
143
+ }
144
+ ScaleService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ScaleService, deps: [{ token: i1.ChartService }, { token: i2.ZoomService }], target: i0.ɵɵFactoryTarget.Injectable });
145
+ ScaleService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ScaleService, providedIn: 'root' });
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ScaleService, decorators: [{
147
+ type: Injectable,
148
+ args: [{
149
+ providedIn: 'root',
150
+ }]
151
+ }], ctorParameters: function () { return [{ type: i1.ChartService }, { type: i2.ZoomService }]; } });
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJ2aWNlL3NjYWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUV6QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR2pFLE9BQU8sRUFDTCxhQUFhLEVBQ2IsR0FBRyxFQUVILFdBQVcsRUFDWCxjQUFjLEdBQ2YsTUFBTSxNQUFNLENBQUM7QUFHZCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFLckQsTUFBTSxPQUFPLFlBQVk7SUFrQnZCLFlBQ1UsWUFBMEIsRUFDMUIsV0FBd0I7UUFEeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFiMUIsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQztRQUNuRCxvQkFBZSxHQUFHLElBQUksR0FBRyxFQUF5QixDQUFDO1FBRW5ELGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQWtCO2FBQzdDLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUM7YUFDckMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQzthQUNqQyxHQUFHLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDO2FBQ3hDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUM7YUFDL0IsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFD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LFlBQVk7NkdBQVosWUFBWSxjQUZYLE1BQU07MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBkMyBmcm9tICdkMyc7XG5pbXBvcnQgeyBEM1pvb21FdmVudCwgWm9vbVRyYW5zZm9ybSB9IGZyb20gJ2QzJztcbmltcG9ydCB7IEF4aXMgfSBmcm9tICcuLi9jb3JlL2F4aXMvYXhpcyc7XG5pbXBvcnQgeyBBeGlzT3JpZW50YXRpb24gfSBmcm9tICcuLi9tb2RlbC9lbnVtL2F4aXMtb3JpZW50YXRpb24nO1xuaW1wb3J0IHsgSUNoYXJ0Q29uZmlnIH0gZnJvbSAnLi4vbW9kZWwvaS1jaGFydC1jb25maWcnO1xuaW1wb3J0IHsgQ2hhcnRTZXJ2aWNlIH0gZnJvbSAnLi9jaGFydC5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIGNvbWJpbmVMYXRlc3QsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgc2hhcmVSZXBsYXksXG4gIHdpdGhMYXRlc3RGcm9tLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElDaGFydEV2ZW50IH0gZnJvbSAnLi4vbW9kZWwvaS1jaGFydC1ldmVudCc7XG5pbXBvcnQgeyBab29tU2VydmljZSB9IGZyb20gJy4vem9vbS5zZXJ2aWNlJztcbmltcG9ydCB7IFNjYWxlVHlwZSB9IGZyb20gJy4uL21vZGVsL2VudW0vc2NhbGUtdHlwZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY2FsZVNlcnZpY2Uge1xuICBwdWJsaWMgeUF4aXNNYXA6IE9ic2VydmFibGU8TWFwPG51bWJlciwgQXhpcz4+O1xuICBwdWJsaWMgeEF4aXNNYXA6IE9ic2VydmFibGU8TWFwPG51bWJlciwgQXhpcz4+O1xuXG4gIHB1YmxpYyB5U2NhbGVNYXA6IE9ic2VydmFibGU8TWFwPG51bWJlciwgYW55Pj47XG4gIHB1YmxpYyB4U2NhbGVNYXA6IE9ic2VydmFibGU8TWFwPG51bWJlciwgYW55Pj47XG5cbiAgcHJpdmF0ZSB0cmFuc2Zvcm1DYWNoZVggPSBuZXcgTWFwPG51bWJlciwgWm9vbVRyYW5zZm9ybT4oKTtcbiAgcHJpdmF0ZSB0cmFuc2Zvcm1DYWNoZVkgPSBuZXcgTWFwPG51bWJlciwgWm9vbVRyYW5zZm9ybT4oKTtcblxuICBwcml2YXRlIHNjYWxlTWFwcGluZyA9IG5ldyBNYXA8U2NhbGVUeXBlLCBhbnk+KClcbiAgICAuc2V0KFNjYWxlVHlwZS5saW5lYXIsIGQzLnNjYWxlTGluZWFyKVxuICAgIC5zZXQoU2NhbGVUeXBlLnRpbWUsIGQzLnNjYWxlVGltZSlcbiAgICAuc2V0KFNjYWxlVHlwZS5jYXRlZ29yeSwgZDMuc2NhbGVPcmRpbmFsKVxuICAgIC5zZXQoU2NhbGVUeXBlLmxvZywgZDMuc2NhbGVMb2cpXG4gICAgLnNldChTY2FsZVR5cGUucG93LCBkMy5zY2FsZVBvdylcbiAgICAuc2V0KFNjYWxlVHlwZS5zcXJ0LCBkMy5zY2FsZVNxcnQpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hhcnRTZXJ2aWNlOiBDaGFydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB6b29tU2VydmljZTogWm9vbVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy54QXhpc01hcCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jaGFydFNlcnZpY2Uuc2l6ZSxcbiAgICAgIHRoaXMuY2hhcnRTZXJ2aWNlLmNvbmZpZyxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChkYXRhOiBbRE9NUmVjdFJlYWRPbmx5LCBJQ2hhcnRDb25maWddKSA9PiB7XG4gICAgICAgIGNvbnN0IFssIGNvbmZpZ10gPSBkYXRhO1xuICAgICAgICBjb25zdCBtYXAgPSBuZXcgTWFwPG51bWJlciwgQXhpcz4oKTtcbiAgICAgICAgY29uZmlnLnhBeGlzLm1hcCgoXywgaW5kZXgpID0+IHtcbiAgICAgICAgICBtYXAuc2V0KGluZGV4LCBBeGlzLmNyZWF0ZUF4aXMoQXhpc09yaWVudGF0aW9uLngsIGNvbmZpZywgaW5kZXgpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBtYXA7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnlBeGlzTWFwID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmNoYXJ0U2VydmljZS5zaXplLFxuICAgICAgdGhpcy5jaGFydFNlcnZpY2UuY29uZmlnLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKGRhdGE6IFtET01SZWN0UmVhZE9ubHksIElDaGFydENvbmZpZ10pID0+IHtcbiAgICAgICAgY29uc3QgWywgY29uZmlnXSA9IGRhdGE7XG4gICAgICAgIGNvbnN0IG1hcCA9IG5ldyBNYXA8bnVtYmVyLCBBeGlzPigpO1xuICAgICAgICBjb25maWcueUF4aXMubWFwKChfLCBpbmRleCkgPT4ge1xuICAgICAgICAgIG1hcC5zZXQoaW5kZXgsIEF4aXMuY3JlYXRlQXhpcyhBeGlzT3JpZW50YXRpb24ueSwgY29uZmlnLCBpbmRleCkpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gbWFwO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy54U2NhbGVNYXAgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuY2hhcnRTZXJ2aWNlLnNpemUsXG4gICAgICB0aGlzLmNoYXJ0U2VydmljZS5jb25maWcsXG4gICAgICB0aGlzLnpvb21TZXJ2aWNlLnpvb21lZCxcbiAgICBdKS5waXBlKFxuICAgICAgd2l0aExhdGVzdEZyb20odGhpcy55QXhpc01hcCwgdGhpcy54QXhpc01hcCksXG4gICAgICBtYXAoXG4gICAgICAgIChcbiAgICAgICAgICBkYXRhOiBbXG4gICAgICAgICAgICBbRE9NUmVjdFJlYWRPbmx5LCBJQ2hhcnRDb25maWcsIElDaGFydEV2ZW50PEF4aXM+XSxcbiAgICAgICAgICAgIE1hcDxudW1iZXIsIEF4aXM+LFxuICAgICAgICAgICAgTWFwPG51bWJlciwgQXhpcz5cbiAgICAgICAgICBdXG4gICAgICAgICkgPT4ge1xuICAgICAgICAgIGNvbnN0IFtbc2l6ZSwgY29uZmlnLCB6b29tXSwgeUF4ZXMsIHhBeGVzXSA9IGRhdGE7XG5cbiAgICAgICAgICBjb25zdCBtYXAgPSBuZXcgTWFwPG51bWJlciwgYW55PigpO1xuXG4gICAgICAgICAgY29uc3QgbGVmdCA9IFsuLi55QXhlcy52YWx1ZXMoKV1cbiAgICAgICAgICAgIC5maWx0ZXIoKF8pID0+IF8ub3B0aW9ucz8udmlzaWJsZSAmJiBfLm9wdGlvbnM/Lm9wcG9zaXRlKVxuICAgICAgICAgICAgLnJlZHVjZSgoYWNjLCBjdXIpID0+IGFjYyArIGN1ci5zZWxmU2l6ZSwgMCk7XG5cbiAgICAgICAgICBjb25zdCByaWdodCA9IFsuLi55QXhlcy52YWx1ZXMoKV1cbiAgICAgICAgICAgIC5maWx0ZXIoKF8pID0+IF8ub3B0aW9ucz8udmlzaWJsZSAmJiBfLm9wdGlvbnM/Lm9wcG9zaXRlICE9PSB0cnVlKVxuICAgICAgICAgICAgLnJlZHVjZSgoYWNjLCBjdXIpID0+IGFjYyArIGN1ci5zZWxmU2l6ZSwgMCk7XG5cbiAgICAgICAgICBjb25zdCBmaW5hbFdpZHRoID0gKHNpemUud2lkdGggfHwgMCkgLSBsZWZ0IC0gcmlnaHQ7XG5cbiAgICAgICAgICB4QXhlcy5mb3JFYWNoKChheGlzKSA9PiB7XG4gICAgICAgICAgICBsZXQgZG9tYWluID0gYXhpcy5leHRyZW1lcztcblxuICAgICAgICAgICAgaWYgKGF4aXM/Lm9wdGlvbnMuaW52ZXJ0ZWQpIHtcbiAgICAgICAgICAgICAgZG9tYWluID0gWy4uLmF4aXMuZXh0cmVtZXNdLnJldmVyc2UoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc2NhbGUgPSB0aGlzLnNjYWxlTWFwcGluZ1xuICAgICAgICAgICAgICAuZ2V0KGF4aXMub3B0aW9ucy5zY2FsZVR5cGUudHlwZSkoKVxuICAgICAgICAgICAgICAuZG9tYWluKGRvbWFpbilcbiAgICAgICAgICAgICAgLnJhbmdlKFswLCBmaW5hbFdpZHRoXSk7XG5cbiAgICAgICAgICAgIGlmIChheGlzLm9wdGlvbnMuc2NhbGVUeXBlLnR5cGUgPT09IFNjYWxlVHlwZS5sb2cpIHtcbiAgICAgICAgICAgICAgc2NhbGUuYmFzZShheGlzLm9wdGlvbnMuc2NhbGVUeXBlLmJhc2UpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBtYXAuc2V0KGF4aXMuaW5kZXgsIHNjYWxlKTtcblxuICAgICAgICAgICAgY29uc3QgaGFzQ2FjaGUgPSB0aGlzLnRyYW5zZm9ybUNhY2hlWC5oYXMoYXhpcy5pbmRleCk7XG4gICAgICAgICAgICBjb25zdCBzaG91bGRSZXN0b3JlID1cbiAgICAgICAgICAgICAgem9vbT8udGFyZ2V0Py5vcmllbnRhdGlvbiAhPT0gQXhpc09yaWVudGF0aW9uLnggfHxcbiAgICAgICAgICAgICAgem9vbS50YXJnZXQ/LmluZGV4ICE9PSBheGlzLmluZGV4O1xuXG4gICAgICAgICAgICBpZiAoaGFzQ2FjaGUgJiYgc2hvdWxkUmVzdG9yZSkge1xuICAgICAgICAgICAgICBjb25zdCByZXN0b3JlZFRyYW5zZm9ybSA9IHRoaXMudHJhbnNmb3JtQ2FjaGVYLmdldChheGlzLmluZGV4KTtcbiAgICAgICAgICAgICAgbWFwLnNldChheGlzLmluZGV4LCByZXN0b3JlZFRyYW5zZm9ybS5yZXNjYWxlWChzY2FsZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKHpvb20pIHtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gem9vbS5ldmVudCBhcyBEM1pvb21FdmVudDxhbnksIGFueT47XG5cbiAgICAgICAgICAgIGlmICh6b29tLnRhcmdldD8ub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi54KSB7XG4gICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTY2FsZSA9IG1hcC5nZXQoem9vbS50YXJnZXQuaW5kZXgpO1xuICAgICAgICAgICAgICBjb25zdCByZXNjYWxlZCA9IGV2ZW50LnRyYW5zZm9ybS5yZXNjYWxlWChjdXJyZW50U2NhbGUpO1xuICAgICAgICAgICAgICBtYXAuc2V0KHpvb20udGFyZ2V0LmluZGV4LCByZXNjYWxlZCk7XG5cbiAgICAgICAgICAgICAgY29uc3QgYXhpcyA9IHhBeGVzLmdldCh6b29tLnRhcmdldC5pbmRleCk7XG4gICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtQ2FjaGVYLnNldChheGlzLmluZGV4LCBldmVudC50cmFuc2Zvcm0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBtYXA7XG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG5cbiAgICB0aGlzLnlTY2FsZU1hcCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jaGFydFNlcnZpY2Uuc2l6ZSxcbiAgICAgIHRoaXMuY2hhcnRTZXJ2aWNlLmNvbmZpZyxcbiAgICAgIHRoaXMuem9vbVNlcnZpY2Uuem9vbWVkLFxuICAgIF0pLnBpcGUoXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnlBeGlzTWFwLCB0aGlzLnhBeGlzTWFwKSxcbiAgICAgIG1hcChcbiAgICAgICAgKFxuICAgICAgICAgIGRhdGE6IFtcbiAgICAgICAgICAgIFtET01SZWN0UmVhZE9ubHksIElDaGFydENvbmZpZywgSUNoYXJ0RXZlbnQ8QXhpcz5dLFxuICAgICAgICAgICAgTWFwPG51bWJlciwgQXhpcz4sXG4gICAgICAgICAgICBNYXA8bnVtYmVyLCBBeGlzPlxuICAgICAgICAgIF1cbiAgICAgICAgKSA9PiB7XG4gICAgICAgICAgY29uc3QgW1tzaXplLCBjb25maWcsIHpvb21dLCB5QXhlcywgeEF4ZXNdID0gZGF0YTtcblxuICAgICAgICAgIGNvbnN0IG1hcCA9IG5ldyBNYXA8bnVtYmVyLCBhbnk+KCk7XG5cbiAgICAgICAgICBjb25zdCB0b3AgPSBbLi4ueEF4ZXMudmFsdWVzKCldXG4gICAgICAgICAgICAuZmlsdGVyKChfKSA9PiBfLm9wdGlvbnM/LnZpc2libGUgJiYgXy5vcHRpb25zPy5vcHBvc2l0ZSlcbiAgICAgICAgICAgIC5yZWR1Y2UoKGFjYywgY3VyKSA9PiBhY2MgKyBjdXIuc2VsZlNpemUsIDApO1xuXG4gICAgICAgICAgY29uc3QgYm90dG9tID0gWy4uLnhBeGVzLnZhbHVlcygpXVxuICAgICAgICAgICAgLmZpbHRlcigoXykgPT4gXy5vcHRpb25zPy52aXNpYmxlICYmIF8ub3B0aW9ucz8ub3Bwb3NpdGUgIT09IHRydWUpXG4gICAgICAgICAgICAucmVkdWNlKChhY2MsIGN1cikgPT4gYWNjICsgY3VyLnNlbGZTaXplLCAwKTtcblxuICAgICAgICAgIGNvbnN0IGZpbmFsSGVpZ2h0ID0gKHNpemUuaGVpZ2h0IHx8IDApIC0gdG9wIC0gYm90dG9tO1xuXG4gICAgICAgICAgeUF4ZXMuZm9yRWFjaCgoYXhpcykgPT4ge1xuICAgICAgICAgICAgbGV0IGRvbWFpbiA9IGF4aXMuZXh0cmVtZXM7XG5cbiAgICAgICAgICAgIGlmIChheGlzLm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueSkge1xuICAgICAgICAgICAgICBkb21haW4gPSBbLi4uYXhpcy5leHRyZW1lc10ucmV2ZXJzZSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoYXhpcz8ub3B0aW9ucy5pbnZlcnRlZCkge1xuICAgICAgICAgICAgICBkb21haW4gPSBkb21haW4ucmV2ZXJzZSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBzY2FsZSA9IHRoaXMuc2NhbGVNYXBwaW5nXG4gICAgICAgICAgICAgIC5nZXQoYXhpcy5vcHRpb25zLnNjYWxlVHlwZS50eXBlKSgpXG4gICAgICAgICAgICAgIC5kb21haW4oZG9tYWluKVxuICAgICAgICAgICAgICAucmFuZ2UoWzAsIGZpbmFsSGVpZ2h0XSk7XG5cbiAgICAgICAgICAgIGlmIChheGlzLm9wdGlvbnMuc2NhbGVUeXBlLnR5cGUgPT09IFNjYWxlVHlwZS5sb2cpIHtcbiAgICAgICAgICAgICAgc2NhbGUuYmFzZShheGlzLm9wdGlvbnMuc2NhbGVUeXBlLmJhc2UpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBtYXAuc2V0KGF4aXMuaW5kZXgsIHNjYWxlKTtcblxuICAgICAgICAgICAgY29uc3QgaGFzQ2FjaGUgPSB0aGlzLnRyYW5zZm9ybUNhY2hlWS5oYXMoYXhpcy5pbmRleCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHNob3VsZFJlc3RvcmUgPVxuICAgICAgICAgICAgICB6b29tPy50YXJnZXQ/Lm9yaWVudGF0aW9uICE9PSBBeGlzT3JpZW50YXRpb24ueSB8fFxuICAgICAgICAgICAgICB6b29tLnRhcmdldD8uaW5kZXggIT09IGF4aXMuaW5kZXg7XG5cbiAgICAgICAgICAgIGlmIChoYXNDYWNoZSAmJiBzaG91bGRSZXN0b3JlKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc3RvcmVkVHJhbnNmb3JtID0gdGhpcy50cmFuc2Zvcm1DYWNoZVkuZ2V0KGF4aXMuaW5kZXgpO1xuICAgICAgICAgICAgICBtYXAuc2V0KGF4aXMuaW5kZXgsIHJlc3RvcmVkVHJhbnNmb3JtLnJlc2NhbGVZKHNjYWxlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoem9vbSkge1xuICAgICAgICAgICAgY29uc3QgZXZlbnQgPSB6b29tLmV2ZW50IGFzIEQzWm9vbUV2ZW50PGFueSwgYW55PjtcblxuICAgICAgICAgICAgaWYgKHpvb20udGFyZ2V0Py5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnkpIHtcbiAgICAgICAgICAgICAgY29uc3QgY3VycmVudFNjYWxlID0gbWFwLmdldCh6b29tLnRhcmdldC5pbmRleCk7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc2NhbGVkID0gZXZlbnQudHJhbnNmb3JtLnJlc2NhbGVZKGN1cnJlbnRTY2FsZSk7XG4gICAgICAgICAgICAgIG1hcC5zZXQoem9vbS50YXJnZXQuaW5kZXgsIHJlc2NhbGVkKTtcblxuICAgICAgICAgICAgICBjb25zdCBheGlzID0geUF4ZXMuZ2V0KHpvb20udGFyZ2V0LmluZGV4KTtcbiAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1DYWNoZVkuc2V0KGF4aXMuaW5kZXgsIGV2ZW50LnRyYW5zZm9ybSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG1hcDtcbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,114 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as d3 from 'd3';
3
+ import { zoomIdentity, zoomTransform } from 'd3';
4
+ import { BehaviorSubject, filter, map, shareReplay, } from 'rxjs';
5
+ import { Axis } from '../core/axis/axis';
6
+ import { AxisOrientation } from '../model/enum/axis-orientation';
7
+ import { ZoomType } from '../model/enum/zoom-type';
8
+ import { BrushType } from '../model/enum/brush-type';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "./broadcast.service";
11
+ export class ZoomService {
12
+ constructor(broadcastService) {
13
+ this.broadcastService = broadcastService;
14
+ this.broadcastSubscription = [];
15
+ this.zoomed$ = new BehaviorSubject(null);
16
+ this.zoomed = this.zoomed$.asObservable().pipe(shareReplay(1));
17
+ }
18
+ applyZoom(svgElement, config, size, axis) {
19
+ const enable = axis?.options?.zoom || config?.zoom?.enable;
20
+ const fakeAxis = Axis.createAxis(config?.zoom.type === ZoomType.x ? AxisOrientation.x : AxisOrientation.y, config, 0, true);
21
+ const _axis = axis ? axis : fakeAxis;
22
+ const zoom = d3
23
+ .zoom()
24
+ .scaleExtent([1, 50])
25
+ .extent([
26
+ [0, 0],
27
+ [size.width, size.height],
28
+ ]);
29
+ if (config?.zoom?.enable) {
30
+ this.zoomed
31
+ .pipe(filter((_) => (_?.target?.orientation === AxisOrientation.x &&
32
+ _?.target.index === 0 &&
33
+ config?.zoom.type === ZoomType.x &&
34
+ _axis.orientation === AxisOrientation.x) ||
35
+ (_?.target?.orientation === AxisOrientation.y &&
36
+ _?.target.index === 0 &&
37
+ config?.zoom.type === ZoomType.y &&
38
+ _axis.orientation === AxisOrientation.y)), filter((_) => _?.event?.type === 'end'), map((_) => {
39
+ const eventTransform = _?.event.transform;
40
+ const currentTransform = zoomTransform(svgElement.nativeElement);
41
+ if (currentTransform !== eventTransform) {
42
+ d3.select(svgElement.nativeElement).call(zoom.transform, eventTransform);
43
+ }
44
+ }))
45
+ .subscribe();
46
+ }
47
+ const zoomed = (event) => {
48
+ if (enable) {
49
+ if (event.sourceEvent) {
50
+ this.zoomed$.next({
51
+ event,
52
+ target: _axis,
53
+ });
54
+ const message = {
55
+ event: event,
56
+ axis: _axis,
57
+ };
58
+ this.broadcastService.broadcast({
59
+ channel: config?.zoom?.syncChannel,
60
+ message,
61
+ });
62
+ }
63
+ }
64
+ };
65
+ if (enable) {
66
+ const element = d3.select(svgElement.nativeElement);
67
+ zoom.on('start zoom end', zoomed);
68
+ element.call(zoom);
69
+ const subscription = this.broadcastService
70
+ .subscribeToChannel(config?.zoom?.syncChannel)
71
+ .pipe(filter((_) => {
72
+ if ('axis' in _.message) {
73
+ return (_axis.index === _.message?.axis?.index &&
74
+ _axis.orientation === _.message?.axis?.orientation);
75
+ }
76
+ if ('selection' in _.message) {
77
+ return (_axis.index === 0 && _axis.orientation === AxisOrientation.x);
78
+ }
79
+ return false;
80
+ }), map((broadcaseMessage) => {
81
+ if ('axis' in broadcaseMessage.message) {
82
+ const currentTransform = d3.zoomTransform(svgElement.nativeElement);
83
+ if (currentTransform !== broadcaseMessage.message.event?.transform) {
84
+ d3.select(svgElement.nativeElement).call(zoom.transform, broadcaseMessage.message.event?.transform, null, {});
85
+ }
86
+ }
87
+ if ('selection' in broadcaseMessage.message) {
88
+ const s = broadcaseMessage.message.selection;
89
+ const domain = broadcaseMessage.message.brushScale.domain();
90
+ const scale = (domain[1] - domain[0]) / (s[1] - s[0]);
91
+ let transform = zoomIdentity.scale(scale);
92
+ if (broadcaseMessage.message?.brushType === BrushType.x) {
93
+ transform = transform.translate(-broadcaseMessage.message.brushScale(s[0]), 0);
94
+ }
95
+ if (broadcaseMessage.message?.brushType === BrushType.y) {
96
+ transform = transform.translate(0, -broadcaseMessage.message.brushScale(s[0]));
97
+ }
98
+ d3.select(svgElement.nativeElement).call(zoom.transform, transform, null, {});
99
+ }
100
+ this.broadcastSubscription.push(subscription);
101
+ }))
102
+ .subscribe();
103
+ }
104
+ }
105
+ }
106
+ ZoomService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ZoomService, deps: [{ token: i1.BroadcastService }], target: i0.ɵɵFactoryTarget.Injectable });
107
+ ZoomService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ZoomService, providedIn: 'root' });
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ZoomService, decorators: [{
109
+ type: Injectable,
110
+ args: [{
111
+ providedIn: 'root',
112
+ }]
113
+ }], ctorParameters: function () { return [{ type: i1.BroadcastService }]; } });
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L3NlcnZpY2Uvem9vbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDekIsT0FBTyxFQUFlLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDOUQsT0FBTyxFQUNMLGVBQWUsRUFDZixNQUFNLEVBQ04sR0FBRyxFQUVILFdBQVcsR0FFWixNQUFNLE1BQU0sQ0FBQztBQUdkLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRW5ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBS3JELE1BQU0sT0FBTyxXQUFXO0lBTXRCLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBTHRELDBCQUFxQixHQUFtQixFQUFFLENBQUM7UUFHbkMsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFvQixJQUFJLENBQUMsQ0FBQztRQUc3RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxTQUFTLENBQ1AsVUFBc0IsRUFDdEIsTUFBb0IsRUFDcEIsSUFBYSxFQUNiLElBQVc7UUFFWCxNQUFNLE1BQU0sR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FB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QVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQ3RDLElBQUksQ0FBQyxTQUFTLEVBQ2QsU0FBUyxFQUNULElBQUksRUFDSixFQUFFLENBQ0gsQ0FBQztpQkFDSDtnQkFFRCxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2hELENBQUMsQ0FBQyxDQUNIO2lCQUNBLFNBQVMsRUFBRSxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQzs7d0dBL0pVLFdBQVc7NEdBQVgsV0FBVyxjQUZWLE1BQU07MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBkMyBmcm9tICdkMyc7XG5pbXBvcnQgeyBEM1pvb21FdmVudCwgem9vbUlkZW50aXR5LCB6b29tVHJhbnNmb3JtIH0gZnJvbSAnZDMnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgc2hhcmVSZXBsYXksXG4gIFN1YnNjcmlwdGlvbixcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJQ2hhcnRDb25maWcgfSBmcm9tICcuLi9tb2RlbC9pLWNoYXJ0LWNvbmZpZyc7XG5pbXBvcnQgeyBCcm9hZGNhc3RTZXJ2aWNlIH0gZnJvbSAnLi9icm9hZGNhc3Quc2VydmljZSc7XG5pbXBvcnQgeyBBeGlzIH0gZnJvbSAnLi4vY29yZS9heGlzL2F4aXMnO1xuaW1wb3J0IHsgSUNoYXJ0RXZlbnQgfSBmcm9tICcuLi9tb2RlbC9pLWNoYXJ0LWV2ZW50JztcbmltcG9ydCB7IEF4aXNPcmllbnRhdGlvbiB9IGZyb20gJy4uL21vZGVsL2VudW0vYXhpcy1vcmllbnRhdGlvbic7XG5pbXBvcnQgeyBab29tVHlwZSB9IGZyb20gJy4uL21vZGVsL2VudW0vem9vbS10eXBlJztcbmltcG9ydCB7IElCcm9hZGNhc3RNZXNzYWdlLCBab29tTWVzc2FnZSB9IGZyb20gJy4uL21vZGVsL2ktYnJvYWRjYXN0LW1lc3NhZ2UnO1xuaW1wb3J0IHsgQnJ1c2hUeXBlIH0gZnJvbSAnLi4vbW9kZWwvZW51bS9icnVzaC10eXBlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFpvb21TZXJ2aWNlIHtcbiAgYnJvYWRjYXN0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIHpvb21lZDogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxBeGlzPj47XG4gIHByaXZhdGUgem9vbWVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUNoYXJ0RXZlbnQ8QXhpcz4+KG51bGwpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYnJvYWRjYXN0U2VydmljZTogQnJvYWRjYXN0U2VydmljZSkge1xuICAgIHRoaXMuem9vbWVkID0gdGhpcy56b29tZWQkLmFzT2JzZXJ2YWJsZSgpLnBpcGUoc2hhcmVSZXBsYXkoMSkpO1xuICB9XG5cbiAgYXBwbHlab29tKFxuICAgIHN2Z0VsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgY29uZmlnOiBJQ2hhcnRDb25maWcsXG4gICAgc2l6ZTogRE9NUmVjdCxcbiAgICBheGlzPzogQXhpc1xuICApIHtcbiAgICBjb25zdCBlbmFibGUgPSBheGlzPy5vcHRpb25zPy56b29tIHx8IGNvbmZpZz8uem9vbT8uZW5hYmxlO1xuXG4gICAgY29uc3QgZmFrZUF4aXMgPSBBeGlzLmNyZWF0ZUF4aXMoXG4gICAgICBjb25maWc/Lnpvb20udHlwZSA9PT0gWm9vbVR5cGUueCA/IEF4aXNPcmllbnRhdGlvbi54IDogQXhpc09yaWVudGF0aW9uLnksXG4gICAgICBjb25maWcsXG4gICAgICAwLFxuICAgICAgdHJ1ZVxuICAgICk7XG5cbiAgICBjb25zdCBfYXhpcyA9IGF4aXMgPyBheGlzIDogZmFrZUF4aXM7XG5cbiAgICBjb25zdCB6b29tID0gZDNcbiAgICAgIC56b29tKClcbiAgICAgIC5zY2FsZUV4dGVudChbMSwgNTBdKVxuICAgICAgLmV4dGVudChbXG4gICAgICAgIFswLCAwXSxcbiAgICAgICAgW3NpemUud2lkdGgsIHNpemUuaGVpZ2h0XSxcbiAgICAgIF0pO1xuXG4gICAgaWYgKGNvbmZpZz8uem9vbT8uZW5hYmxlKSB7XG4gICAgICB0aGlzLnpvb21lZFxuICAgICAgICAucGlwZShcbiAgICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgICAoXykgPT5cbiAgICAgICAgICAgICAgKF8/LnRhcmdldD8ub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi54ICYmXG4gICAgICAgICAgICAgICAgXz8udGFyZ2V0LmluZGV4ID09PSAwICYmXG4gICAgICAgICAgICAgICAgY29uZmlnPy56b29tLnR5cGUgPT09IFpvb21UeXBlLnggJiZcbiAgICAgICAgICAgICAgICBfYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLngpIHx8XG4gICAgICAgICAgICAgIChfPy50YXJnZXQ/Lm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueSAmJlxuICAgICAgICAgICAgICAgIF8/LnRhcmdldC5pbmRleCA9PT0gMCAmJlxuICAgICAgICAgICAgICAgIGNvbmZpZz8uem9vbS50eXBlID09PSBab29tVHlwZS55ICYmXG4gICAgICAgICAgICAgICAgX2F4aXMub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi55KVxuICAgICAgICAgICksXG4gICAgICAgICAgZmlsdGVyKChfKSA9PiBfPy5ldmVudD8udHlwZSA9PT0gJ2VuZCcpLFxuICAgICAgICAgIG1hcCgoXykgPT4ge1xuICAgICAgICAgICAgY29uc3QgZXZlbnRUcmFuc2Zvcm0gPSBfPy5ldmVudC50cmFuc2Zvcm07XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50VHJhbnNmb3JtID0gem9vbVRyYW5zZm9ybShzdmdFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgICAgICAgICBpZiAoY3VycmVudFRyYW5zZm9ybSAhPT0gZXZlbnRUcmFuc2Zvcm0pIHtcbiAgICAgICAgICAgICAgZDMuc2VsZWN0KHN2Z0VsZW1lbnQubmF0aXZlRWxlbWVudCkuY2FsbChcbiAgICAgICAgICAgICAgICB6b29tLnRyYW5zZm9ybSxcbiAgICAgICAgICAgICAgICBldmVudFRyYW5zZm9ybVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGNvbnN0IHpvb21lZCA9IChldmVudDogRDNab29tRXZlbnQ8YW55LCBhbnk+KSA9PiB7XG4gICAgICBpZiAoZW5hYmxlKSB7XG4gICAgICAgIGlmIChldmVudC5zb3VyY2VFdmVudCkge1xuICAgICAgICAgIHRoaXMuem9vbWVkJC5uZXh0KHtcbiAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgdGFyZ2V0OiBfYXhpcyxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGNvbnN0IG1lc3NhZ2U6IFpvb21NZXNzYWdlID0ge1xuICAgICAgICAgICAgZXZlbnQ6IGV2ZW50LFxuICAgICAgICAgICAgYXhpczogX2F4aXMsXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHRoaXMuYnJvYWRjYXN0U2VydmljZS5icm9hZGNhc3Qoe1xuICAgICAgICAgICAgY2hhbm5lbDogY29uZmlnPy56b29tPy5zeW5jQ2hhbm5lbCxcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaWYgKGVuYWJsZSkge1xuICAgICAgY29uc3QgZWxlbWVudCA9IGQzLnNlbGVjdChzdmdFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgem9vbS5vbignc3RhcnQgem9vbSBlbmQnLCB6b29tZWQpO1xuICAgICAgZWxlbWVudC5jYWxsKHpvb20pO1xuXG4gICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLmJyb2FkY2FzdFNlcnZpY2VcbiAgICAgICAgLnN1YnNjcmliZVRvQ2hhbm5lbChjb25maWc/Lnpvb20/LnN5bmNDaGFubmVsKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBmaWx0ZXIoKF8pID0+IHtcbiAgICAgICAgICAgIGlmICgnYXhpcycgaW4gXy5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgX2F4aXMuaW5kZXggPT09IF8ubWVzc2FnZT8uYXhpcz8uaW5kZXggJiZcbiAgICAgICAgICAgICAgICBfYXhpcy5vcmllbnRhdGlvbiA9PT0gXy5tZXNzYWdlPy5heGlzPy5vcmllbnRhdGlvblxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCdzZWxlY3Rpb24nIGluIF8ubWVzc2FnZSkge1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIF9heGlzLmluZGV4ID09PSAwICYmIF9heGlzLm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIG1hcCgoYnJvYWRjYXNlTWVzc2FnZTogSUJyb2FkY2FzdE1lc3NhZ2UpID0+IHtcbiAgICAgICAgICAgIGlmICgnYXhpcycgaW4gYnJvYWRjYXNlTWVzc2FnZS5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRUcmFuc2Zvcm0gPSBkMy56b29tVHJhbnNmb3JtKFxuICAgICAgICAgICAgICAgIHN2Z0VsZW1lbnQubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBjdXJyZW50VHJhbnNmb3JtICE9PSBicm9hZGNhc2VNZXNzYWdlLm1lc3NhZ2UuZXZlbnQ/LnRyYW5zZm9ybVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBkMy5zZWxlY3Qoc3ZnRWxlbWVudC5uYXRpdmVFbGVtZW50KS5jYWxsKFxuICAgICAgICAgICAgICAgICAgem9vbS50cmFuc2Zvcm0sXG4gICAgICAgICAgICAgICAgICBicm9hZGNhc2VNZXNzYWdlLm1lc3NhZ2UuZXZlbnQ/LnRyYW5zZm9ybSxcbiAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICB7fVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCdzZWxlY3Rpb24nIGluIGJyb2FkY2FzZU1lc3NhZ2UubWVzc2FnZSkge1xuICAgICAgICAgICAgICBjb25zdCBzID0gYnJvYWRjYXNlTWVzc2FnZS5tZXNzYWdlLnNlbGVjdGlvbjtcbiAgICAgICAgICAgICAgY29uc3QgZG9tYWluID0gYnJvYWRjYXNlTWVzc2FnZS5tZXNzYWdlLmJydXNoU2NhbGUuZG9tYWluKCk7XG5cbiAgICAgICAgICAgICAgY29uc3Qgc2NhbGUgPSAoZG9tYWluWzFdIC0gZG9tYWluWzBdKSAvIChzWzFdIC0gc1swXSk7XG4gICAgICAgICAgICAgIGxldCB0cmFuc2Zvcm0gPSB6b29tSWRlbnRpdHkuc2NhbGUoc2NhbGUpO1xuXG4gICAgICAgICAgICAgIGlmIChicm9hZGNhc2VNZXNzYWdlLm1lc3NhZ2U/LmJydXNoVHlwZSA9PT0gQnJ1c2hUeXBlLngpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gPSB0cmFuc2Zvcm0udHJhbnNsYXRlKFxuICAgICAgICAgICAgICAgICAgLWJyb2FkY2FzZU1lc3NhZ2UubWVzc2FnZS5icnVzaFNjYWxlKHNbMF0pLFxuICAgICAgICAgICAgICAgICAgMFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKGJyb2FkY2FzZU1lc3NhZ2UubWVzc2FnZT8uYnJ1c2hUeXBlID09PSBCcnVzaFR5cGUueSkge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybSA9IHRyYW5zZm9ybS50cmFuc2xhdGUoXG4gICAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgICAgLWJyb2FkY2FzZU1lc3NhZ2UubWVzc2FnZS5icnVzaFNjYWxlKHNbMF0pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGQzLnNlbGVjdChzdmdFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpLmNhbGwoXG4gICAgICAgICAgICAgICAgem9vbS50cmFuc2Zvcm0sXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtLFxuICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAge31cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5icm9hZGNhc3RTdWJzY3JpcHRpb24ucHVzaChzdWJzY3JpcHRpb24pO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,9 @@
1
+ /*
2
+ * Public API Surface of chart
3
+ */
4
+ window.__zone_symbol__BLACK_LISTED_EVENTS = ['mousemove'];
5
+ export * from './chart/chart.module';
6
+ export * from './chart/service/chart.service';
7
+ export * from './chart/chart/chart.component';
8
+ export * from './chart/model/public-api';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUYsTUFBYyxDQUFDLGtDQUFrQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7QUFHbkUsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgY2hhcnRcbiAqL1xuXG4od2luZG93IGFzIGFueSkuX196b25lX3N5bWJvbF9fQkxBQ0tfTElTVEVEX0VWRU5UUyA9IFsnbW91c2Vtb3ZlJ107XG5cblxuZXhwb3J0ICogZnJvbSAnLi9jaGFydC9jaGFydC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFydC9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFydC9jaGFydC9jaGFydC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFydC9tb2RlbC9wdWJsaWMtYXBpJztcbiJdfQ==
File without changes