@tetacom/ng-components 1.0.26 → 1.0.29

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 (119) hide show
  1. package/component/filter/filter.module.d.ts +2 -1
  2. package/component/public-api.d.ts +0 -1
  3. package/component/table/table-body/table-body.component.d.ts +0 -4
  4. package/component/table/table.module.d.ts +5 -6
  5. package/directive/click-outside/click-outside.directive.d.ts +3 -2
  6. package/directive/hint/hint.directive.d.ts +1 -0
  7. package/esm2020/component/chart-3d/chart3d/chart3d.component.mjs +4 -4
  8. package/esm2020/component/file-upload/file-item/file-item.component.mjs +4 -4
  9. package/esm2020/component/filter/filter.module.mjs +6 -2
  10. package/esm2020/component/filter/numeric-filter/numeric-filter.component.mjs +4 -3
  11. package/esm2020/component/message/message.service.mjs +3 -3
  12. package/esm2020/component/public-api.mjs +1 -3
  13. package/esm2020/component/table/default/numeric-cell/numeric-cell.component.mjs +2 -1
  14. package/esm2020/component/table/default/string-cell/string-cell.component.mjs +3 -2
  15. package/esm2020/component/table/table-body/table-body.component.mjs +1 -31
  16. package/esm2020/component/table/table.module.mjs +1 -5
  17. package/esm2020/directive/click-outside/click-outside.directive.mjs +10 -5
  18. package/esm2020/directive/hint/hint.directive.mjs +4 -1
  19. package/esm2020/directive/only-number/only-number.directive.mjs +3 -2
  20. package/esm2020/pipe/public-api.mjs +2 -1
  21. package/esm2020/util/date-util.mjs +8 -5
  22. package/fesm2015/tetacom-ng-components.mjs +63 -2353
  23. package/fesm2015/tetacom-ng-components.mjs.map +1 -1
  24. package/fesm2020/tetacom-ng-components.mjs +61 -2343
  25. package/fesm2020/tetacom-ng-components.mjs.map +1 -1
  26. package/package.json +1 -1
  27. package/pipe/public-api.d.ts +1 -0
  28. package/component/chart/chart/chart.component.d.ts +0 -39
  29. package/component/chart/chart.module.d.ts +0 -8
  30. package/component/chart/core/axis-creator.d.ts +0 -29
  31. package/component/chart/core/chart.d.ts +0 -70
  32. package/component/chart/core/public-api.d.ts +0 -2
  33. package/component/chart/drawer/area-drawer.d.ts +0 -7
  34. package/component/chart/drawer/bar-drawer.d.ts +0 -8
  35. package/component/chart/drawer/contour-drawer.d.ts +0 -7
  36. package/component/chart/drawer/default-drawer-mapping.d.ts +0 -4
  37. package/component/chart/drawer/line-drawer.d.ts +0 -11
  38. package/component/chart/drawer/pie-drawer.d.ts +0 -7
  39. package/component/chart/drawer/public-api.d.ts +0 -6
  40. package/component/chart/drawer/scatter-drawer.d.ts +0 -15
  41. package/component/chart/drawer/spline-drawer.d.ts +0 -7
  42. package/component/chart/legend-drawer/default-drawer-legend-mapping.d.ts +0 -3
  43. package/component/chart/legend-drawer/gradient-drawer.d.ts +0 -5
  44. package/component/chart/legend-drawer/swatch-drawer.d.ts +0 -6
  45. package/component/chart/model/annotation.d.ts +0 -59
  46. package/component/chart/model/axis-options.d.ts +0 -43
  47. package/component/chart/model/chart-bounds.d.ts +0 -12
  48. package/component/chart/model/chart-options.d.ts +0 -51
  49. package/component/chart/model/enum/axis-type.d.ts +0 -4
  50. package/component/chart/model/enum/dispatch-type.d.ts +0 -4
  51. package/component/chart/model/enum/drag-point-type.d.ts +0 -5
  52. package/component/chart/model/enum/legend-type.d.ts +0 -4
  53. package/component/chart/model/enum/public-api.d.ts +0 -7
  54. package/component/chart/model/enum/scale-type.d.ts +0 -7
  55. package/component/chart/model/enum/scale.d.ts +0 -5
  56. package/component/chart/model/enum/series-type.d.ts +0 -10
  57. package/component/chart/model/enum/zoom-type.d.ts +0 -5
  58. package/component/chart/model/i-drag-event.d.ts +0 -5
  59. package/component/chart/model/i-drawer-legend.d.ts +0 -12
  60. package/component/chart/model/i-drawer.d.ts +0 -9
  61. package/component/chart/model/i-zoom-event.d.ts +0 -8
  62. package/component/chart/model/plot-band.d.ts +0 -28
  63. package/component/chart/model/plot-line.d.ts +0 -20
  64. package/component/chart/model/point/bar-point.d.ts +0 -6
  65. package/component/chart/model/point/base-point.d.ts +0 -9
  66. package/component/chart/model/point/contour-point.d.ts +0 -4
  67. package/component/chart/model/point/marker-options.d.ts +0 -11
  68. package/component/chart/model/point/public-api.d.ts +0 -3
  69. package/component/chart/model/point/scatter-point.d.ts +0 -5
  70. package/component/chart/model/public-api.d.ts +0 -15
  71. package/component/chart/model/series.d.ts +0 -62
  72. package/component/chart/model/tooltip-options.d.ts +0 -14
  73. package/component/chart/public-api.d.ts +0 -5
  74. package/esm2020/component/chart/chart/chart.component.mjs +0 -164
  75. package/esm2020/component/chart/chart.module.mjs +0 -18
  76. package/esm2020/component/chart/core/axis-creator.mjs +0 -82
  77. package/esm2020/component/chart/core/chart.mjs +0 -1339
  78. package/esm2020/component/chart/core/public-api.mjs +0 -3
  79. package/esm2020/component/chart/drawer/area-drawer.mjs +0 -20
  80. package/esm2020/component/chart/drawer/bar-drawer.mjs +0 -23
  81. package/esm2020/component/chart/drawer/contour-drawer.mjs +0 -29
  82. package/esm2020/component/chart/drawer/default-drawer-mapping.mjs +0 -17
  83. package/esm2020/component/chart/drawer/line-drawer.mjs +0 -152
  84. package/esm2020/component/chart/drawer/pie-drawer.mjs +0 -4
  85. package/esm2020/component/chart/drawer/public-api.mjs +0 -7
  86. package/esm2020/component/chart/drawer/scatter-drawer.mjs +0 -93
  87. package/esm2020/component/chart/drawer/spline-drawer.mjs +0 -23
  88. package/esm2020/component/chart/legend-drawer/default-drawer-legend-mapping.mjs +0 -7
  89. package/esm2020/component/chart/legend-drawer/gradient-drawer.mjs +0 -45
  90. package/esm2020/component/chart/legend-drawer/swatch-drawer.mjs +0 -62
  91. package/esm2020/component/chart/model/annotation.mjs +0 -30
  92. package/esm2020/component/chart/model/axis-options.mjs +0 -26
  93. package/esm2020/component/chart/model/chart-bounds.mjs +0 -13
  94. package/esm2020/component/chart/model/chart-options.mjs +0 -37
  95. package/esm2020/component/chart/model/enum/axis-type.mjs +0 -6
  96. package/esm2020/component/chart/model/enum/dispatch-type.mjs +0 -6
  97. package/esm2020/component/chart/model/enum/drag-point-type.mjs +0 -7
  98. package/esm2020/component/chart/model/enum/legend-type.mjs +0 -6
  99. package/esm2020/component/chart/model/enum/public-api.mjs +0 -8
  100. package/esm2020/component/chart/model/enum/scale-type.mjs +0 -9
  101. package/esm2020/component/chart/model/enum/scale.mjs +0 -7
  102. package/esm2020/component/chart/model/enum/series-type.mjs +0 -12
  103. package/esm2020/component/chart/model/enum/zoom-type.mjs +0 -7
  104. package/esm2020/component/chart/model/i-drag-event.mjs +0 -2
  105. package/esm2020/component/chart/model/i-drawer-legend.mjs +0 -2
  106. package/esm2020/component/chart/model/i-drawer.mjs +0 -2
  107. package/esm2020/component/chart/model/i-zoom-event.mjs +0 -2
  108. package/esm2020/component/chart/model/plot-band.mjs +0 -18
  109. package/esm2020/component/chart/model/plot-line.mjs +0 -13
  110. package/esm2020/component/chart/model/point/bar-point.mjs +0 -2
  111. package/esm2020/component/chart/model/point/base-point.mjs +0 -2
  112. package/esm2020/component/chart/model/point/contour-point.mjs +0 -2
  113. package/esm2020/component/chart/model/point/marker-options.mjs +0 -2
  114. package/esm2020/component/chart/model/point/public-api.mjs +0 -4
  115. package/esm2020/component/chart/model/point/scatter-point.mjs +0 -2
  116. package/esm2020/component/chart/model/public-api.mjs +0 -16
  117. package/esm2020/component/chart/model/series.mjs +0 -27
  118. package/esm2020/component/chart/model/tooltip-options.mjs +0 -19
  119. package/esm2020/component/chart/public-api.mjs +0 -6
@@ -1,3 +0,0 @@
1
- export * from './axis-creator';
2
- export * from './chart';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvY2hhcnQvY29yZS9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F4aXMtY3JlYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2NoYXJ0JztcbiJdfQ==
@@ -1,20 +0,0 @@
1
- import * as d3 from 'd3';
2
- export class AreaDrawer {
3
- draw(series, context, scaleX, scaleY) {
4
- const points = series.data;
5
- const path = d3
6
- .area()
7
- .x1((d) => (d.x1 != null ? scaleX(d.x1) : scaleX(0)))
8
- .x0((d) => scaleX(d.x))
9
- .y((d) => scaleY(d.y));
10
- context
11
- .append('path')
12
- .attr('transform', `translate(${0}, 0)`)
13
- .attr('fill', series.color)
14
- .attr('stroke', series.color)
15
- .attr('stroke-width', series.strokeWidth ? series.strokeWidth : 1)
16
- .datum(points)
17
- .attr('d', path);
18
- }
19
- }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJlYS1kcmF3ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2NoYXJ0L2RyYXdlci9hcmVhLWRyYXdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUV6QixNQUFNLE9BQU8sVUFBVTtJQUNyQixJQUFJLENBQ0YsTUFBeUIsRUFDekIsT0FBMkQsRUFDM0QsTUFBVyxFQUNYLE1BQVc7UUFFWCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBRTNCLE1BQU0sSUFBSSxHQUFHLEVBQUU7YUFDWixJQUFJLEVBQUU7YUFDTixFQUFFLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3pELEVBQUUsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMzQixDQUFDLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU5QixPQUFPO2FBQ0osTUFBTSxDQUFDLE1BQU0sQ0FBQzthQUNkLElBQUksQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQzthQUN2QyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUM7YUFDMUIsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDO2FBQzVCLElBQUksQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2pFLEtBQUssQ0FBQyxNQUFNLENBQUM7YUFDYixJQUFJLENBQUMsR0FBRyxFQUFFLElBQVcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElEcmF3ZXIgfSBmcm9tICcuLi9tb2RlbC9pLWRyYXdlcic7XG5pbXBvcnQgeyBCYXNlUG9pbnQgfSBmcm9tICcuLi9tb2RlbC9wb2ludC9iYXNlLXBvaW50JztcbmltcG9ydCB7IFNlcmllcyB9IGZyb20gJy4uL21vZGVsL3Nlcmllcyc7XG5pbXBvcnQgKiBhcyBkMyBmcm9tICdkMyc7XG5cbmV4cG9ydCBjbGFzcyBBcmVhRHJhd2VyIGltcGxlbWVudHMgSURyYXdlcjxCYXNlUG9pbnQ+IHtcbiAgZHJhdyhcbiAgICBzZXJpZXM6IFNlcmllczxCYXNlUG9pbnQ+LFxuICAgIGNvbnRleHQ6IGQzLlNlbGVjdGlvbjxTVkdFbGVtZW50LCB1bmtub3duLCBudWxsLCB1bmRlZmluZWQ+LFxuICAgIHNjYWxlWDogYW55LFxuICAgIHNjYWxlWTogYW55XG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHBvaW50cyA9IHNlcmllcy5kYXRhO1xuXG4gICAgY29uc3QgcGF0aCA9IGQzXG4gICAgICAuYXJlYSgpXG4gICAgICAueDEoKGQ6IGFueSkgPT4gKGQueDEgIT0gbnVsbCA/IHNjYWxlWChkLngxKSA6IHNjYWxlWCgwKSkpXG4gICAgICAueDAoKGQ6IGFueSkgPT4gc2NhbGVYKGQueCkpXG4gICAgICAueSgoZDogYW55KSA9PiBzY2FsZVkoZC55KSk7XG5cbiAgICBjb250ZXh0XG4gICAgICAuYXBwZW5kKCdwYXRoJylcbiAgICAgIC5hdHRyKCd0cmFuc2Zvcm0nLCBgdHJhbnNsYXRlKCR7MH0sIDApYClcbiAgICAgIC5hdHRyKCdmaWxsJywgc2VyaWVzLmNvbG9yKVxuICAgICAgLmF0dHIoJ3N0cm9rZScsIHNlcmllcy5jb2xvcilcbiAgICAgIC5hdHRyKCdzdHJva2Utd2lkdGgnLCBzZXJpZXMuc3Ryb2tlV2lkdGggPyBzZXJpZXMuc3Ryb2tlV2lkdGggOiAxKVxuICAgICAgLmRhdHVtKHBvaW50cylcbiAgICAgIC5hdHRyKCdkJywgcGF0aCBhcyBhbnkpO1xuICB9XG59XG4iXX0=
@@ -1,23 +0,0 @@
1
- import * as d3 from 'd3';
2
- export class BarDrawer {
3
- draw(series, context, scaleX, scaleY) {
4
- const points = series.data.filter((_) => _.visible);
5
- const barScale = d3
6
- .scaleBand()
7
- .domain(d3.range(points.length))
8
- .range(scaleX.range())
9
- .paddingInner(0.2)
10
- .paddingOuter(0.2);
11
- const u = context.selectAll('rect').data(points);
12
- u.enter()
13
- .append('rect')
14
- .merge(u)
15
- .attr('x', (d, i) => barScale(i))
16
- .attr('y', (d) => scaleY(d.y))
17
- .attr('width', barScale.bandwidth())
18
- .attr('height', (d) => Math.abs(scaleY(0) - scaleY(d.y)))
19
- .attr('fill', (d) => d.color);
20
- u.exit().remove();
21
- }
22
- }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyLWRyYXdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvY2hhcnQvZHJhd2VyL2Jhci1kcmF3ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFHekIsTUFBTSxPQUFPLFNBQVM7SUFDcEIsSUFBSSxDQUNGLE1BQXdCLEVBQ3hCLE9BQTJELEVBQzNELE1BQVcsRUFDWCxNQUFXO1FBRVgsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVwRCxNQUFNLFFBQVEsR0FBRyxFQUFFO2FBQ2hCLFNBQVMsRUFBVTthQUNuQixNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDL0IsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNyQixZQUFZLENBQUMsR0FBRyxDQUFDO2FBQ2pCLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVyQixNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQVEsQ0FBQztRQUV4RCxDQUFDLENBQUMsS0FBSyxFQUFFO2FBQ04sTUFBTSxDQUFDLE1BQU0sQ0FBQzthQUNkLEtBQUssQ0FBQyxDQUFRLENBQUM7YUFDZixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBWSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzNDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFZLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDeEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDbkMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ25FLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUzQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDcEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSURyYXdlciB9IGZyb20gJy4uL21vZGVsL2ktZHJhd2VyJztcbmltcG9ydCB7IEJhc2VQb2ludCB9IGZyb20gJy4uL21vZGVsL3BvaW50L2Jhc2UtcG9pbnQnO1xuaW1wb3J0IHsgU2VyaWVzIH0gZnJvbSAnLi4vbW9kZWwvc2VyaWVzJztcbmltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcbmltcG9ydCB7IEJhclBvaW50IH0gZnJvbSAnLi4vbW9kZWwvcG9pbnQvYmFyLXBvaW50JztcblxuZXhwb3J0IGNsYXNzIEJhckRyYXdlciBpbXBsZW1lbnRzIElEcmF3ZXI8QmFzZVBvaW50PiB7XG4gIGRyYXcoXG4gICAgc2VyaWVzOiBTZXJpZXM8QmFyUG9pbnQ+LFxuICAgIGNvbnRleHQ6IGQzLlNlbGVjdGlvbjxTVkdFbGVtZW50LCB1bmtub3duLCBudWxsLCB1bmRlZmluZWQ+LFxuICAgIHNjYWxlWDogYW55LFxuICAgIHNjYWxlWTogYW55XG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHBvaW50cyA9IHNlcmllcy5kYXRhLmZpbHRlcigoXykgPT4gXy52aXNpYmxlKTtcblxuICAgIGNvbnN0IGJhclNjYWxlID0gZDNcbiAgICAgIC5zY2FsZUJhbmQ8bnVtYmVyPigpXG4gICAgICAuZG9tYWluKGQzLnJhbmdlKHBvaW50cy5sZW5ndGgpKVxuICAgICAgLnJhbmdlKHNjYWxlWC5yYW5nZSgpKVxuICAgICAgLnBhZGRpbmdJbm5lcigwLjIpXG4gICAgICAucGFkZGluZ091dGVyKDAuMik7XG5cbiAgICBjb25zdCB1ID0gY29udGV4dC5zZWxlY3RBbGwoJ3JlY3QnKS5kYXRhKHBvaW50cykgYXMgYW55O1xuXG4gICAgdS5lbnRlcigpXG4gICAgICAuYXBwZW5kKCdyZWN0JylcbiAgICAgIC5tZXJnZSh1IGFzIGFueSlcbiAgICAgIC5hdHRyKCd4JywgKGQ6IEJhc2VQb2ludCwgaSkgPT4gYmFyU2NhbGUoaSkpXG4gICAgICAuYXR0cigneScsIChkOiBCYXNlUG9pbnQpID0+IHNjYWxlWShkLnkpKVxuICAgICAgLmF0dHIoJ3dpZHRoJywgYmFyU2NhbGUuYmFuZHdpZHRoKCkpXG4gICAgICAuYXR0cignaGVpZ2h0JywgKGQ6IEJhc2VQb2ludCkgPT4gTWF0aC5hYnMoc2NhbGVZKDApIC0gc2NhbGVZKGQueSkpKVxuICAgICAgLmF0dHIoJ2ZpbGwnLCAoZDogQmFzZVBvaW50KSA9PiBkLmNvbG9yKTtcblxuICAgIHUuZXhpdCgpLnJlbW92ZSgpO1xuICB9XG59XG4iXX0=
@@ -1,29 +0,0 @@
1
- import * as d3 from 'd3';
2
- import { tricontour } from 'd3-tricontour';
3
- export class ContourDrawer {
4
- draw(series, context, scaleX, scaleY) {
5
- const points = series.data;
6
- const tricontourFn = tricontour()
7
- .x((d) => scaleX(d.x))
8
- .y((d) => scaleY(d.y))
9
- .value((d) => d.value)
10
- .thresholds(30);
11
- let contours = tricontourFn(points);
12
- const geoFn = d3.geoPath();
13
- const color = series?.colorScale.domain(d3.extent(contours, (d) => d.value));
14
- contours = contours.map((_) => ({
15
- ..._,
16
- color: color(_.value),
17
- }));
18
- const u = context.selectAll('path').data(contours);
19
- u.enter()
20
- .append('path')
21
- .merge(u)
22
- .attr('d', (_) => geoFn(_))
23
- .attr('stroke', 'rgba(255, 255,255,0.5)')
24
- .attr('stroke-width', 0.5)
25
- .attr('fill', (_) => _.color);
26
- u.exit().remove();
27
- }
28
- }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udG91ci1kcmF3ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2NoYXJ0L2RyYXdlci9jb250b3VyLWRyYXdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUN6QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLElBQUksQ0FDRixNQUE0QixFQUM1QixPQUEyRCxFQUMzRCxNQUFXLEVBQ1gsTUFBVztRQUVYLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFFM0IsTUFBTSxZQUFZLEdBQUcsVUFBVSxFQUFFO2FBQzlCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNyQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDckIsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2FBQ3JCLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVsQixJQUFJLFFBQVEsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFcEMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRTNCLE1BQU0sS0FBSyxHQUFHLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUNyQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBUSxDQUN6RCxDQUFDO1FBRUYsUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDOUIsR0FBRyxDQUFDO1lBQ0osS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1NBQ3RCLENBQUMsQ0FBQyxDQUFDO1FBRUosTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFRLENBQUM7UUFFMUQsQ0FBQyxDQUFDLEtBQUssRUFBRTthQUNOLE1BQU0sQ0FBQyxNQUFNLENBQUM7YUFDZCxLQUFLLENBQUMsQ0FBUSxDQUFDO2FBQ2YsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQy9CLElBQUksQ0FBQyxRQUFRLEVBQUUsd0JBQXdCLENBQUM7YUFDeEMsSUFBSSxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUM7YUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTlDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNwQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRHJhd2VyIH0gZnJvbSAnLi4vbW9kZWwvaS1kcmF3ZXInO1xuaW1wb3J0IHsgU2VyaWVzIH0gZnJvbSAnLi4vbW9kZWwvc2VyaWVzJztcbmltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcbmltcG9ydCB7IHRyaWNvbnRvdXIgfSBmcm9tICdkMy10cmljb250b3VyJztcbmltcG9ydCB7IENvbnRvdXJQb2ludCB9IGZyb20gJy4uL21vZGVsL3BvaW50L2NvbnRvdXItcG9pbnQnO1xuXG5leHBvcnQgY2xhc3MgQ29udG91ckRyYXdlciBpbXBsZW1lbnRzIElEcmF3ZXI8Q29udG91clBvaW50PiB7XG4gIGRyYXcoXG4gICAgc2VyaWVzOiBTZXJpZXM8Q29udG91clBvaW50PixcbiAgICBjb250ZXh0OiBkMy5TZWxlY3Rpb248U1ZHRWxlbWVudCwgdW5rbm93biwgbnVsbCwgdW5kZWZpbmVkPixcbiAgICBzY2FsZVg6IGFueSxcbiAgICBzY2FsZVk6IGFueVxuICApOiB2b2lkIHtcbiAgICBjb25zdCBwb2ludHMgPSBzZXJpZXMuZGF0YTtcblxuICAgIGNvbnN0IHRyaWNvbnRvdXJGbiA9IHRyaWNvbnRvdXIoKVxuICAgICAgLngoKGQpID0+IHNjYWxlWChkLngpKVxuICAgICAgLnkoKGQpID0+IHNjYWxlWShkLnkpKVxuICAgICAgLnZhbHVlKChkKSA9PiBkLnZhbHVlKVxuICAgICAgLnRocmVzaG9sZHMoMzApO1xuXG4gICAgbGV0IGNvbnRvdXJzID0gdHJpY29udG91ckZuKHBvaW50cyk7XG5cbiAgICBjb25zdCBnZW9GbiA9IGQzLmdlb1BhdGgoKTtcblxuICAgIGNvbnN0IGNvbG9yID0gc2VyaWVzPy5jb2xvclNjYWxlLmRvbWFpbihcbiAgICAgIGQzLmV4dGVudChjb250b3VycywgKGQ6IENvbnRvdXJQb2ludCkgPT4gZC52YWx1ZSkgYXMgYW55XG4gICAgKTtcblxuICAgIGNvbnRvdXJzID0gY29udG91cnMubWFwKChfKSA9PiAoe1xuICAgICAgLi4uXyxcbiAgICAgIGNvbG9yOiBjb2xvcihfLnZhbHVlKSxcbiAgICB9KSk7XG5cbiAgICBjb25zdCB1ID0gY29udGV4dC5zZWxlY3RBbGwoJ3BhdGgnKS5kYXRhKGNvbnRvdXJzKSBhcyBhbnk7XG5cbiAgICB1LmVudGVyKClcbiAgICAgIC5hcHBlbmQoJ3BhdGgnKVxuICAgICAgLm1lcmdlKHUgYXMgYW55KVxuICAgICAgLmF0dHIoJ2QnLCAoXzogYW55KSA9PiBnZW9GbihfKSlcbiAgICAgIC5hdHRyKCdzdHJva2UnLCAncmdiYSgyNTUsIDI1NSwyNTUsMC41KScpXG4gICAgICAuYXR0cignc3Ryb2tlLXdpZHRoJywgMC41KVxuICAgICAgLmF0dHIoJ2ZpbGwnLCAoXzogQ29udG91clBvaW50KSA9PiBfLmNvbG9yKTtcblxuICAgIHUuZXhpdCgpLnJlbW92ZSgpO1xuICB9XG59XG4iXX0=
@@ -1,17 +0,0 @@
1
- import { SeriesType } from '../model/enum/series-type';
2
- import { AreaDrawer } from './area-drawer';
3
- import { BarDrawer } from './bar-drawer';
4
- import { LineDrawer } from './line-drawer';
5
- import { PieDrawer } from './pie-drawer';
6
- import { SplineDrawer } from './spline-drawer';
7
- import { ScatterDrawer } from './scatter-drawer';
8
- import { ContourDrawer } from './contour-drawer';
9
- export const defaultDrawerMapping = new Map()
10
- .set(SeriesType.area, new AreaDrawer())
11
- .set(SeriesType.bar, new BarDrawer())
12
- .set(SeriesType.line, new LineDrawer())
13
- .set(SeriesType.pie, new PieDrawer())
14
- .set(SeriesType.scatter, new ScatterDrawer())
15
- .set(SeriesType.spline, new SplineDrawer())
16
- .set(SeriesType.contour, new ContourDrawer());
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1kcmF3ZXItbWFwcGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvY2hhcnQvZHJhd2VyL2RlZmF1bHQtZHJhd2VyLW1hcHBpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxHQUFHLEVBQWtDO0tBQzFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksVUFBVSxFQUFFLENBQUM7S0FDdEMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxTQUFTLEVBQUUsQ0FBQztLQUNwQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLFVBQVUsRUFBRSxDQUFDO0tBQ3RDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLElBQUksU0FBUyxFQUFFLENBQUM7S0FDcEMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxhQUFhLEVBQUUsQ0FBQztLQUM1QyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLFlBQVksRUFBRSxDQUFDO0tBQzFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLElBQUksYUFBYSxFQUFFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlcmllc1R5cGUgfSBmcm9tICcuLi9tb2RlbC9lbnVtL3Nlcmllcy10eXBlJztcbmltcG9ydCB7IElEcmF3ZXIgfSBmcm9tICcuLi9tb2RlbC9pLWRyYXdlcic7XG5pbXBvcnQgeyBCYXNlUG9pbnQgfSBmcm9tICcuLi9tb2RlbC9wb2ludC9iYXNlLXBvaW50JztcbmltcG9ydCB7IEFyZWFEcmF3ZXIgfSBmcm9tICcuL2FyZWEtZHJhd2VyJztcbmltcG9ydCB7IEJhckRyYXdlciB9IGZyb20gJy4vYmFyLWRyYXdlcic7XG5pbXBvcnQgeyBMaW5lRHJhd2VyIH0gZnJvbSAnLi9saW5lLWRyYXdlcic7XG5pbXBvcnQgeyBQaWVEcmF3ZXIgfSBmcm9tICcuL3BpZS1kcmF3ZXInO1xuaW1wb3J0IHsgU3BsaW5lRHJhd2VyIH0gZnJvbSAnLi9zcGxpbmUtZHJhd2VyJztcbmltcG9ydCB7IFNjYXR0ZXJEcmF3ZXIgfSBmcm9tICcuL3NjYXR0ZXItZHJhd2VyJztcbmltcG9ydCB7IENvbnRvdXJEcmF3ZXIgfSBmcm9tICcuL2NvbnRvdXItZHJhd2VyJztcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHREcmF3ZXJNYXBwaW5nID0gbmV3IE1hcDxTZXJpZXNUeXBlLCBJRHJhd2VyPEJhc2VQb2ludD4+KClcbiAgLnNldChTZXJpZXNUeXBlLmFyZWEsIG5ldyBBcmVhRHJhd2VyKCkpXG4gIC5zZXQoU2VyaWVzVHlwZS5iYXIsIG5ldyBCYXJEcmF3ZXIoKSlcbiAgLnNldChTZXJpZXNUeXBlLmxpbmUsIG5ldyBMaW5lRHJhd2VyKCkpXG4gIC5zZXQoU2VyaWVzVHlwZS5waWUsIG5ldyBQaWVEcmF3ZXIoKSlcbiAgLnNldChTZXJpZXNUeXBlLnNjYXR0ZXIsIG5ldyBTY2F0dGVyRHJhd2VyKCkpXG4gIC5zZXQoU2VyaWVzVHlwZS5zcGxpbmUsIG5ldyBTcGxpbmVEcmF3ZXIoKSlcbiAgLnNldChTZXJpZXNUeXBlLmNvbnRvdXIsIG5ldyBDb250b3VyRHJhd2VyKCkpO1xuIl19
@@ -1,152 +0,0 @@
1
- import * as d3 from 'd3';
2
- import { DispatchType } from '../model/enum/dispatch-type';
3
- import { DragPointType } from '../model/enum/drag-point-type';
4
- export class LineDrawer {
5
- constructor() {
6
- this.dispatch = d3.dispatch(DispatchType.moveLine, DispatchType.movePoint);
7
- }
8
- draw(series, context, scaleX, scaleY, options) {
9
- const points = series.data;
10
- const markerPoints = points.filter((_) => _.marker);
11
- const path = d3
12
- .line()
13
- .curve(series.curveType)
14
- .defined((d) => d.x != null && d.y != null)
15
- .x((d) => scaleX(d.x))
16
- .y((d) => scaleY(d.y));
17
- const seriesIndex = options.series.findIndex((_) => _.id === series.id);
18
- context
19
- .append('path')
20
- .attr('class', (d) => series?.drag.enable ? 'draggable' : `series-${seriesIndex}`)
21
- .attr('data-draggable-id', seriesIndex)
22
- .attr('fill', 'none')
23
- .attr('stroke', series.color)
24
- .attr('stroke-dasharray', series?.strokeDasharray)
25
- .attr('stroke-width', series.strokeWidth ? series.strokeWidth : 1)
26
- .style('cursor', series?.drag?.enable ? 'move' : 'default')
27
- .datum(points)
28
- .attr('d', path);
29
- const u = context.append('g').attr('class', 'grabbers');
30
- const emit = (event, target) => {
31
- this.dispatch.apply(DispatchType.moveLine, {
32
- target,
33
- event,
34
- });
35
- };
36
- if (series.drag.enable) {
37
- u.selectAll('circle')
38
- .data(points)
39
- .enter()
40
- .append('circle')
41
- .attr('data-grabber-id', seriesIndex)
42
- .attr('stroke', series?.drag?.grabbers?.stroke ?? series?.color)
43
- .attr('stroke-width', series?.drag?.grabbers?.strokeWidth ?? 1)
44
- .attr('fill', series?.drag?.grabbers?.fill ?? series?.color)
45
- .attr('r', series?.drag?.grabbers?.radius ?? 4)
46
- .attr('cx', function (d) {
47
- return scaleX(d.x);
48
- })
49
- .attr('cy', function (d) {
50
- return scaleY(d.y);
51
- })
52
- .style('cursor', 'move')
53
- .call(d3.drag().on('start drag end', function (event, d) {
54
- d.x = scaleX.invert(event.sourceEvent?.offsetX);
55
- d.y = scaleY.invert(event.sourceEvent?.offsetY);
56
- d3.select(this).attr('cx', scaleX(d.x)).attr('cy', scaleY(d.y));
57
- context
58
- .select(`[data-draggable-id='${seriesIndex}']`)
59
- .attr('d', path);
60
- emit(event, series);
61
- if (series?.drag?.extendLine) {
62
- drawExtendedLine();
63
- }
64
- }));
65
- u.exit().remove();
66
- }
67
- const drawExtendedLine = () => {
68
- context.selectAll(`[data-extended-id='${seriesIndex}']`).remove();
69
- const p1 = points[0];
70
- const p2 = points[points.length - 1];
71
- const distance = Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p2.y, 2));
72
- if (distance <= 0) {
73
- return;
74
- }
75
- const extendLength = 50;
76
- const extendedEndX = p2.x + ((p2.x - p1.x) / distance) * extendLength;
77
- const extendedEndY = p2.y + ((p2.y - p1.y) / distance) * extendLength;
78
- const extendedStartX = p1.x - ((p2.x - p1.x) / distance) * extendLength;
79
- const extendedStartY = p1.y - ((p2.y - p1.y) / distance) * extendLength;
80
- context
81
- .append('line')
82
- .attr('class', 'extendedLine')
83
- .attr('data-extended-id', seriesIndex)
84
- .attr('stroke', series?.color)
85
- .attr('stroke-width', series?.strokeWidth)
86
- .attr('stroke-dasharray', series?.strokeDasharray)
87
- .attr('x1', scaleX(p1.x))
88
- .attr('y1', scaleY(p1.y))
89
- .attr('x2', scaleX(extendedStartX))
90
- .attr('y2', scaleY(extendedStartY));
91
- context
92
- .append('line')
93
- .attr('class', 'extendedLine')
94
- .attr('data-extended-id', seriesIndex)
95
- .attr('stroke', series?.color)
96
- .attr('stroke-width', series?.strokeWidth)
97
- .attr('stroke-dasharray', series?.strokeDasharray)
98
- .attr('x1', scaleX(p2.x))
99
- .attr('y1', scaleY(p2.y))
100
- .attr('x2', scaleX(extendedEndX))
101
- .attr('y2', scaleY(extendedEndY));
102
- };
103
- if (series?.drag?.extendLine && points?.length) {
104
- drawExtendedLine();
105
- }
106
- if (markerPoints?.length) {
107
- const emit = (event, target) => {
108
- this.dispatch.apply(DispatchType.movePoint, {
109
- target: series,
110
- point: {
111
- ...target,
112
- },
113
- event,
114
- });
115
- };
116
- context
117
- .selectAll(`draggable-marker-${seriesIndex}`)
118
- .data(markerPoints)
119
- .enter()
120
- .append('circle')
121
- .attr('class', `draggable-marker-${seriesIndex}`)
122
- .attr('r', (d) => d.marker?.style?.radius || 5)
123
- .attr('cx', function (d) {
124
- return scaleX(d.x);
125
- })
126
- .attr('cy', function (d) {
127
- return scaleY(d.y);
128
- })
129
- .style('cursor', 'pointer')
130
- .style('fill', (d) => d.marker?.style?.color || 'none')
131
- .attr('stroke', (d) => d.marker?.style?.stroke || 'none')
132
- .attr('stroke-width', (d) => d.marker?.style?.strokeWidth || 0);
133
- context.selectAll(`.draggable-marker-${seriesIndex}`).call(d3.drag().on('drag start end', function dragged(event, d) {
134
- const node = d3.select(this);
135
- if (event.type === 'start') {
136
- node.raise().classed('active', true);
137
- }
138
- if (d.marker?.dragType === DragPointType.x) {
139
- d.x = scaleX.invert(event.sourceEvent?.offsetX);
140
- node.attr('cx', scaleX(d.x));
141
- }
142
- if (d.marker?.dragType === DragPointType.y) {
143
- d.y = scaleY.invert(event.sourceEvent?.offsetY);
144
- node.attr('cy', scaleY(d.y));
145
- }
146
- context.select(`.series-${seriesIndex}`).attr('d', path);
147
- emit(event, d);
148
- }));
149
- }
150
- }
151
- }
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1kcmF3ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2NoYXJ0L2RyYXdlci9saW5lLWRyYXdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUd6QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTlELE1BQU0sT0FBTyxVQUFVO0lBR3JCO1FBQ0UsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxJQUFJLENBQ0YsTUFBeUIsRUFDekIsT0FBMkQsRUFDM0QsTUFBVyxFQUNYLE1BQVcsRUFDWCxPQUFxQjtRQUVyQixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBRTNCLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVwRCxNQUFNLElBQUksR0FBRyxFQUFFO2FBQ1osSUFBSSxFQUFhO2FBQ2pCLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO2FBQ3ZCLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7YUFDMUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3JCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENB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Q0FBQztpQkFDOUI7Z0JBRUQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLFdBQVcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFFekQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNqQixDQUFDLENBQUMsQ0FDSCxDQUFDO1NBQ0g7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRHJhd2VyIH0gZnJvbSAnLi4vbW9kZWwvaS1kcmF3ZXInO1xuaW1wb3J0IHsgQmFzZVBvaW50IH0gZnJvbSAnLi4vbW9kZWwvcG9pbnQvYmFzZS1wb2ludCc7XG5pbXBvcnQgeyBTZXJpZXMgfSBmcm9tICcuLi9tb2RlbC9zZXJpZXMnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuaW1wb3J0IHsgQ2hhcnRPcHRpb25zIH0gZnJvbSAnLi4vbW9kZWwvY2hhcnQtb3B0aW9ucyc7XG5pbXBvcnQgeyBJRHJhZ0V2ZW50IH0gZnJvbSAnLi4vbW9kZWwvaS1kcmFnLWV2ZW50JztcbmltcG9ydCB7IERpc3BhdGNoVHlwZSB9IGZyb20gJy4uL21vZGVsL2VudW0vZGlzcGF0Y2gtdHlwZSc7XG5pbXBvcnQgeyBEcmFnUG9pbnRUeXBlIH0gZnJvbSAnLi4vbW9kZWwvZW51bS9kcmFnLXBvaW50LXR5cGUnO1xuXG5leHBvcnQgY2xhc3MgTGluZURyYXdlciBpbXBsZW1lbnRzIElEcmF3ZXI8QmFzZVBvaW50PiB7XG4gIGRpc3BhdGNoOiBkMy5EaXNwYXRjaDxJRHJhZ0V2ZW50PFNlcmllczxCYXNlUG9pbnQ+Pj47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5kaXNwYXRjaCA9IGQzLmRpc3BhdGNoKERpc3BhdGNoVHlwZS5tb3ZlTGluZSwgRGlzcGF0Y2hUeXBlLm1vdmVQb2ludCk7XG4gIH1cblxuICBkcmF3KFxuICAgIHNlcmllczogU2VyaWVzPEJhc2VQb2ludD4sXG4gICAgY29udGV4dDogZDMuU2VsZWN0aW9uPFNWR0VsZW1lbnQsIHVua25vd24sIG51bGwsIHVuZGVmaW5lZD4sXG4gICAgc2NhbGVYOiBhbnksXG4gICAgc2NhbGVZOiBhbnksXG4gICAgb3B0aW9uczogQ2hhcnRPcHRpb25zXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHBvaW50cyA9IHNlcmllcy5kYXRhO1xuXG4gICAgY29uc3QgbWFya2VyUG9pbnRzID0gcG9pbnRzLmZpbHRlcigoXykgPT4gXy5tYXJrZXIpO1xuXG4gICAgY29uc3QgcGF0aCA9IGQzXG4gICAgICAubGluZTxCYXNlUG9pbnQ+KClcbiAgICAgIC5jdXJ2ZShzZXJpZXMuY3VydmVUeXBlKVxuICAgICAgLmRlZmluZWQoKGQpID0+IGQueCAhPSBudWxsICYmIGQueSAhPSBudWxsKVxuICAgICAgLngoKGQpID0+IHNjYWxlWChkLngpKVxuICAgICAgLnkoKGQpID0+IHNjYWxlWShkLnkpKTtcblxuICAgIGNvbnN0IHNlcmllc0luZGV4ID0gb3B0aW9ucy5zZXJpZXMuZmluZEluZGV4KChfKSA9PiBfLmlkID09PSBzZXJpZXMuaWQpO1xuXG4gICAgY29udGV4dFxuICAgICAgLmFwcGVuZCgncGF0aCcpXG4gICAgICAuYXR0cignY2xhc3MnLCAoZDogQmFzZVBvaW50KSA9PlxuICAgICAgICBzZXJpZXM/LmRyYWcuZW5hYmxlID8gJ2RyYWdnYWJsZScgOiBgc2VyaWVzLSR7c2VyaWVzSW5kZXh9YFxuICAgICAgKVxuICAgICAgLmF0dHIoJ2RhdGEtZHJhZ2dhYmxlLWlkJywgc2VyaWVzSW5kZXgpXG4gICAgICAuYXR0cignZmlsbCcsICdub25lJylcbiAgICAgIC5hdHRyKCdzdHJva2UnLCBzZXJpZXMuY29sb3IpXG4gICAgICAuYXR0cignc3Ryb2tlLWRhc2hhcnJheScsIHNlcmllcz8uc3Ryb2tlRGFzaGFycmF5KVxuICAgICAgLmF0dHIoJ3N0cm9rZS13aWR0aCcsIHNlcmllcy5zdHJva2VXaWR0aCA/IHNlcmllcy5zdHJva2VXaWR0aCA6IDEpXG4gICAgICAuc3R5bGUoJ2N1cnNvcicsIHNlcmllcz8uZHJhZz8uZW5hYmxlID8gJ21vdmUnIDogJ2RlZmF1bHQnKVxuICAgICAgLmRhdHVtKHBvaW50cylcbiAgICAgIC5hdHRyKCdkJywgcGF0aCk7XG5cbiAgICBjb25zdCB1ID0gY29udGV4dC5hcHBlbmQoJ2cnKS5hdHRyKCdjbGFzcycsICdncmFiYmVycycpO1xuXG4gICAgY29uc3QgZW1pdCA9IChldmVudDogRHJhZ0V2ZW50LCB0YXJnZXQ6IFNlcmllczxCYXNlUG9pbnQ+KSA9PiB7XG4gICAgICB0aGlzLmRpc3BhdGNoLmFwcGx5KERpc3BhdGNoVHlwZS5tb3ZlTGluZSwge1xuICAgICAgICB0YXJnZXQsXG4gICAgICAgIGV2ZW50LFxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGlmIChzZXJpZXMuZHJhZy5lbmFibGUpIHtcbiAgICAgIHUuc2VsZWN0QWxsKCdjaXJjbGUnKVxuICAgICAgICAuZGF0YShwb2ludHMpXG4gICAgICAgIC5lbnRlcigpXG4gICAgICAgIC5hcHBlbmQoJ2NpcmNsZScpXG4gICAgICAgIC5hdHRyKCdkYXRhLWdyYWJiZXItaWQnLCBzZXJpZXNJbmRleClcbiAgICAgICAgLmF0dHIoJ3N0cm9rZScsIHNlcmllcz8uZHJhZz8uZ3JhYmJlcnM/LnN0cm9rZSA/PyBzZXJpZXM/LmNvbG9yKVxuICAgICAgICAuYXR0cignc3Ryb2tlLXdpZHRoJywgc2VyaWVzPy5kcmFnPy5ncmFiYmVycz8uc3Ryb2tlV2lkdGggPz8gMSlcbiAgICAgICAgLmF0dHIoJ2ZpbGwnLCBzZXJpZXM/LmRyYWc/LmdyYWJiZXJzPy5maWxsID8/IHNlcmllcz8uY29sb3IpXG4gICAgICAgIC5hdHRyKCdyJywgc2VyaWVzPy5kcmFnPy5ncmFiYmVycz8ucmFkaXVzID8/IDQpXG4gICAgICAgIC5hdHRyKCdjeCcsIGZ1bmN0aW9uIChkKSB7XG4gICAgICAgICAgcmV0dXJuIHNjYWxlWChkLngpO1xuICAgICAgICB9KVxuICAgICAgICAuYXR0cignY3knLCBmdW5jdGlvbiAoZCkge1xuICAgICAgICAgIHJldHVybiBzY2FsZVkoZC55KTtcbiAgICAgICAgfSlcbiAgICAgICAgLnN0eWxlKCdjdXJzb3InLCAnbW92ZScpXG4gICAgICAgIC5jYWxsKFxuICAgICAgICAgIGQzLmRyYWcoKS5vbignc3RhcnQgZHJhZyBlbmQnLCBmdW5jdGlvbiAoZXZlbnQsIGQ6IEJhc2VQb2ludCkge1xuICAgICAgICAgICAgZC54ID0gc2NhbGVYLmludmVydChldmVudC5zb3VyY2VFdmVudD8ub2Zmc2V0WCk7XG4gICAgICAgICAgICBkLnkgPSBzY2FsZVkuaW52ZXJ0KGV2ZW50LnNvdXJjZUV2ZW50Py5vZmZzZXRZKTtcbiAgICAgICAgICAgIGQzLnNlbGVjdCh0aGlzKS5hdHRyKCdjeCcsIHNjYWxlWChkLngpKS5hdHRyKCdjeScsIHNjYWxlWShkLnkpKTtcblxuICAgICAgICAgICAgY29udGV4dFxuICAgICAgICAgICAgICAuc2VsZWN0KGBbZGF0YS1kcmFnZ2FibGUtaWQ9JyR7c2VyaWVzSW5kZXh9J11gKVxuICAgICAgICAgICAgICAuYXR0cignZCcsIHBhdGgpO1xuXG4gICAgICAgICAgICBlbWl0KGV2ZW50LCBzZXJpZXMpO1xuXG4gICAgICAgICAgICBpZiAoc2VyaWVzPy5kcmFnPy5leHRlbmRMaW5lKSB7XG4gICAgICAgICAgICAgIGRyYXdFeHRlbmRlZExpbmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICB1LmV4aXQoKS5yZW1vdmUoKTtcbiAgICB9XG5cbiAgICBjb25zdCBkcmF3RXh0ZW5kZWRMaW5lID0gKCkgPT4ge1xuICAgICAgY29udGV4dC5zZWxlY3RBbGwoYFtkYXRhLWV4dGVuZGVkLWlkPScke3Nlcmllc0luZGV4fSddYCkucmVtb3ZlKCk7XG5cbiAgICAgIGNvbnN0IHAxID0gcG9pbnRzWzBdO1xuICAgICAgY29uc3QgcDIgPSBwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdO1xuXG4gICAgICBjb25zdCBkaXN0YW5jZSA9IE1hdGguc3FydChcbiAgICAgICAgTWF0aC5wb3cocDIueCAtIHAxLngsIDIpICsgTWF0aC5wb3cocDIueSAtIHAyLnksIDIpXG4gICAgICApO1xuXG4gICAgICBpZiAoZGlzdGFuY2UgPD0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGV4dGVuZExlbmd0aCA9IDUwO1xuXG4gICAgICBjb25zdCBleHRlbmRlZEVuZFggPSBwMi54ICsgKChwMi54IC0gcDEueCkgLyBkaXN0YW5jZSkgKiBleHRlbmRMZW5ndGg7XG4gICAgICBjb25zdCBleHRlbmRlZEVuZFkgPSBwMi55ICsgKChwMi55IC0gcDEueSkgLyBkaXN0YW5jZSkgKiBleHRlbmRMZW5ndGg7XG5cbiAgICAgIGNvbnN0IGV4dGVuZGVkU3RhcnRYID0gcDEueCAtICgocDIueCAtIHAxLngpIC8gZGlzdGFuY2UpICogZXh0ZW5kTGVuZ3RoO1xuICAgICAgY29uc3QgZXh0ZW5kZWRTdGFydFkgPSBwMS55IC0gKChwMi55IC0gcDEueSkgLyBkaXN0YW5jZSkgKiBleHRlbmRMZW5ndGg7XG5cbiAgICAgIGNvbnRleHRcbiAgICAgICAgLmFwcGVuZCgnbGluZScpXG4gICAgICAgIC5hdHRyKCdjbGFzcycsICdleHRlbmRlZExpbmUnKVxuICAgICAgICAuYXR0cignZGF0YS1leHRlbmRlZC1pZCcsIHNlcmllc0luZGV4KVxuICAgICAgICAuYXR0cignc3Ryb2tlJywgc2VyaWVzPy5jb2xvcilcbiAgICAgICAgLmF0dHIoJ3N0cm9rZS13aWR0aCcsIHNlcmllcz8uc3Ryb2tlV2lkdGgpXG4gICAgICAgIC5hdHRyKCdzdHJva2UtZGFzaGFycmF5Jywgc2VyaWVzPy5zdHJva2VEYXNoYXJyYXkpXG4gICAgICAgIC5hdHRyKCd4MScsIHNjYWxlWChwMS54KSlcbiAgICAgICAgLmF0dHIoJ3kxJywgc2NhbGVZKHAxLnkpKVxuICAgICAgICAuYXR0cigneDInLCBzY2FsZVgoZXh0ZW5kZWRTdGFydFgpKVxuICAgICAgICAuYXR0cigneTInLCBzY2FsZVkoZXh0ZW5kZWRTdGFydFkpKTtcblxuICAgICAgY29udGV4dFxuICAgICAgICAuYXBwZW5kKCdsaW5lJylcbiAgICAgICAgLmF0dHIoJ2NsYXNzJywgJ2V4dGVuZGVkTGluZScpXG4gICAgICAgIC5hdHRyKCdkYXRhLWV4dGVuZGVkLWlkJywgc2VyaWVzSW5kZXgpXG4gICAgICAgIC5hdHRyKCdzdHJva2UnLCBzZXJpZXM/LmNvbG9yKVxuICAgICAgICAuYXR0cignc3Ryb2tlLXdpZHRoJywgc2VyaWVzPy5zdHJva2VXaWR0aClcbiAgICAgICAgLmF0dHIoJ3N0cm9rZS1kYXNoYXJyYXknLCBzZXJpZXM/LnN0cm9rZURhc2hhcnJheSlcbiAgICAgICAgLmF0dHIoJ3gxJywgc2NhbGVYKHAyLngpKVxuICAgICAgICAuYXR0cigneTEnLCBzY2FsZVkocDIueSkpXG4gICAgICAgIC5hdHRyKCd4MicsIHNjYWxlWChleHRlbmRlZEVuZFgpKVxuICAgICAgICAuYXR0cigneTInLCBzY2FsZVkoZXh0ZW5kZWRFbmRZKSk7XG4gICAgfTtcblxuICAgIGlmIChzZXJpZXM/LmRyYWc/LmV4dGVuZExpbmUgJiYgcG9pbnRzPy5sZW5ndGgpIHtcbiAgICAgIGRyYXdFeHRlbmRlZExpbmUoKTtcbiAgICB9XG5cbiAgICBpZiAobWFya2VyUG9pbnRzPy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGVtaXQgPSAoZXZlbnQ6IERyYWdFdmVudCwgdGFyZ2V0OiBCYXNlUG9pbnQpID0+IHtcbiAgICAgICAgdGhpcy5kaXNwYXRjaC5hcHBseShEaXNwYXRjaFR5cGUubW92ZVBvaW50LCB7XG4gICAgICAgICAgdGFyZ2V0OiBzZXJpZXMsXG4gICAgICAgICAgcG9pbnQ6IHtcbiAgICAgICAgICAgIC4uLnRhcmdldCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGV2ZW50LFxuICAgICAgICB9KTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnRleHRcbiAgICAgICAgLnNlbGVjdEFsbChgZHJhZ2dhYmxlLW1hcmtlci0ke3Nlcmllc0luZGV4fWApXG4gICAgICAgIC5kYXRhKG1hcmtlclBvaW50cylcbiAgICAgICAgLmVudGVyKClcbiAgICAgICAgLmFwcGVuZCgnY2lyY2xlJylcbiAgICAgICAgLmF0dHIoJ2NsYXNzJywgYGRyYWdnYWJsZS1tYXJrZXItJHtzZXJpZXNJbmRleH1gKVxuICAgICAgICAuYXR0cigncicsIChkKSA9PiBkLm1hcmtlcj8uc3R5bGU/LnJhZGl1cyB8fCA1KVxuICAgICAgICAuYXR0cignY3gnLCBmdW5jdGlvbiAoZCkge1xuICAgICAgICAgIHJldHVybiBzY2FsZVgoZC54KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmF0dHIoJ2N5JywgZnVuY3Rpb24gKGQpIHtcbiAgICAgICAgICByZXR1cm4gc2NhbGVZKGQueSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5zdHlsZSgnY3Vyc29yJywgJ3BvaW50ZXInKVxuICAgICAgICAuc3R5bGUoJ2ZpbGwnLCAoZCkgPT4gZC5tYXJrZXI/LnN0eWxlPy5jb2xvciB8fCAnbm9uZScpXG4gICAgICAgIC5hdHRyKCdzdHJva2UnLCAoZCkgPT4gZC5tYXJrZXI/LnN0eWxlPy5zdHJva2UgfHwgJ25vbmUnKVxuICAgICAgICAuYXR0cignc3Ryb2tlLXdpZHRoJywgKGQpID0+IGQubWFya2VyPy5zdHlsZT8uc3Ryb2tlV2lkdGggfHwgMCk7XG5cbiAgICAgIGNvbnRleHQuc2VsZWN0QWxsKGAuZHJhZ2dhYmxlLW1hcmtlci0ke3Nlcmllc0luZGV4fWApLmNhbGwoXG4gICAgICAgIGQzLmRyYWcoKS5vbignZHJhZyBzdGFydCBlbmQnLCBmdW5jdGlvbiBkcmFnZ2VkKGV2ZW50LCBkOiBCYXNlUG9pbnQpIHtcbiAgICAgICAgICBjb25zdCBub2RlID0gZDMuc2VsZWN0KHRoaXMpO1xuXG4gICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdzdGFydCcpIHtcbiAgICAgICAgICAgIG5vZGUucmFpc2UoKS5jbGFzc2VkKCdhY3RpdmUnLCB0cnVlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZC5tYXJrZXI/LmRyYWdUeXBlID09PSBEcmFnUG9pbnRUeXBlLngpIHtcbiAgICAgICAgICAgIGQueCA9IHNjYWxlWC5pbnZlcnQoZXZlbnQuc291cmNlRXZlbnQ/Lm9mZnNldFgpO1xuICAgICAgICAgICAgbm9kZS5hdHRyKCdjeCcsIHNjYWxlWChkLngpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZC5tYXJrZXI/LmRyYWdUeXBlID09PSBEcmFnUG9pbnRUeXBlLnkpIHtcbiAgICAgICAgICAgIGQueSA9IHNjYWxlWS5pbnZlcnQoZXZlbnQuc291cmNlRXZlbnQ/Lm9mZnNldFkpO1xuICAgICAgICAgICAgbm9kZS5hdHRyKCdjeScsIHNjYWxlWShkLnkpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb250ZXh0LnNlbGVjdChgLnNlcmllcy0ke3Nlcmllc0luZGV4fWApLmF0dHIoJ2QnLCBwYXRoKTtcblxuICAgICAgICAgIGVtaXQoZXZlbnQsIGQpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,4 +0,0 @@
1
- export class PieDrawer {
2
- draw(series, context, scaleX, scaleY) { }
3
- }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGllLWRyYXdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvY2hhcnQvZHJhd2VyL3BpZS1kcmF3ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxPQUFPLFNBQVM7SUFDcEIsSUFBSSxDQUNGLE1BQXlCLEVBQ3pCLE9BQTJELEVBQzNELE1BQVcsRUFDWCxNQUFXLElBQ0osQ0FBQztDQUNYIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSURyYXdlciB9IGZyb20gJy4uL21vZGVsL2ktZHJhd2VyJztcbmltcG9ydCB7IEJhc2VQb2ludCB9IGZyb20gJy4uL21vZGVsL3BvaW50L2Jhc2UtcG9pbnQnO1xuaW1wb3J0IHsgU2VyaWVzIH0gZnJvbSAnLi4vbW9kZWwvc2VyaWVzJztcbmltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcblxuZXhwb3J0IGNsYXNzIFBpZURyYXdlciBpbXBsZW1lbnRzIElEcmF3ZXI8QmFzZVBvaW50PiB7XG4gIGRyYXcoXG4gICAgc2VyaWVzOiBTZXJpZXM8QmFzZVBvaW50PixcbiAgICBjb250ZXh0OiBkMy5TZWxlY3Rpb248U1ZHRWxlbWVudCwgdW5rbm93biwgbnVsbCwgdW5kZWZpbmVkPixcbiAgICBzY2FsZVg6IGFueSxcbiAgICBzY2FsZVk6IGFueVxuICApOiB2b2lkIHt9XG59XG4iXX0=
@@ -1,7 +0,0 @@
1
- export * from './area-drawer';
2
- export * from './bar-drawer';
3
- export * from './line-drawer';
4
- export * from './pie-drawer';
5
- export * from './scatter-drawer';
6
- export * from './spline-drawer';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvY2hhcnQvZHJhd2VyL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hcmVhLWRyYXdlcic7XG5leHBvcnQgKiBmcm9tICcuL2Jhci1kcmF3ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saW5lLWRyYXdlcic7XG5leHBvcnQgKiBmcm9tICcuL3BpZS1kcmF3ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9zY2F0dGVyLWRyYXdlcic7XG5leHBvcnQgKiBmcm9tICcuL3NwbGluZS1kcmF3ZXInO1xuIl19
@@ -1,93 +0,0 @@
1
- import * as d3 from 'd3';
2
- export class ScatterDrawer {
3
- constructor() {
4
- this._colorToData = {};
5
- }
6
- draw(series, context, scaleX, scaleY, options) {
7
- this._options = options;
8
- d3.select(context.node().parentNode).select('.virtual-canvas').remove();
9
- if (series.renderTo === 'canvas') {
10
- this._context = context;
11
- const height = context.node().clientHeight;
12
- const width = context.node().clientWidth;
13
- const points = series.data;
14
- const context2D = context.node().getContext('2d');
15
- this._virtualCanvas = d3
16
- .select(context.node().parentNode)
17
- .append('canvas')
18
- .attr('class', 'virtual-canvas')
19
- .style('display', 'none');
20
- this._virtualCanvas.attr('width', width).attr('height', height);
21
- const virtualContext = this._virtualCanvas.node().getContext('2d');
22
- context.on('mouseout', () => {
23
- d3.select(this._context.node().parentNode)
24
- .select('.tooltip-chart')
25
- .style('display', 'none');
26
- context.on('mousemove', null);
27
- });
28
- context.on('mouseenter', () => {
29
- d3.select(this._context.node().parentNode)
30
- .select('.tooltip-chart')
31
- .style('display', null);
32
- context.on('mousemove', (e) => this.handleMouseMove(e));
33
- });
34
- points.forEach((d, idx) => {
35
- const color = this.getColor(idx);
36
- this._colorToData[color] = d;
37
- virtualContext.fillStyle = color;
38
- context2D.fillStyle = d.color;
39
- const cx = scaleX(d.x);
40
- const cy = scaleY(d.y);
41
- context2D.beginPath();
42
- context2D.arc(cx, cy, d.radius, 0, 2 * Math.PI);
43
- context2D.closePath();
44
- context2D.fill();
45
- virtualContext.beginPath();
46
- virtualContext.arc(cx, cy, d.radius, 0, 2 * Math.PI);
47
- virtualContext.closePath();
48
- virtualContext.fill();
49
- });
50
- }
51
- }
52
- getColor(index) {
53
- return d3
54
- .rgb(Math.floor(index / 256 / 256) % 256, Math.floor(index / 256) % 256, index % 256)
55
- .toString();
56
- }
57
- tooltipPosition(event) {
58
- const centerX = this._context.node().clientWidth / 2;
59
- const centerY = this._context.node().clientHeight / 2;
60
- const padding = { x: 10, y: 10 };
61
- const scene = {
62
- left: event.pageX > centerX ? 'initial' : `${event.pageX + padding.x}px`,
63
- top: event.pageY > centerY ? 'initial' : `${event.pageY + padding.y}px`,
64
- bottom: event.pageY > centerY
65
- ? `${window.innerHeight - event.pageY}px`
66
- : 'initial',
67
- right: event.pageX > centerX
68
- ? `${window.innerWidth - event.pageX + padding.x}px`
69
- : 'initial',
70
- };
71
- return scene;
72
- }
73
- handleMouseMove(event) {
74
- const mouse = d3.pointer(event);
75
- const virtualContext = this._virtualCanvas.node().getContext('2d');
76
- const image = virtualContext.getImageData(mouse[0], mouse[1], 1, 1);
77
- const color = d3.rgb.apply(null, image.data).toString();
78
- const possibleDatum = this._colorToData[color];
79
- const { top, right, bottom, left } = this.tooltipPosition(event);
80
- if (possibleDatum) {
81
- const formatted = this._options.tooltip?.format([possibleDatum]);
82
- d3.select(this._context.node().parentNode)
83
- .select('.tooltip-chart')
84
- .style('z-index', 3)
85
- .style('top', top)
86
- .style('right', right)
87
- .style('bottom', bottom)
88
- .style('left', left)
89
- .html(formatted);
90
- }
91
- }
92
- }
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhdHRlci1kcmF3ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2NoYXJ0L2RyYXdlci9zY2F0dGVyLWRyYXdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUl6QixNQUFNLE9BQU8sYUFBYTtJQUExQjtRQUVVLGlCQUFZLEdBQUcsRUFBRSxDQUFDO0lBaUk1QixDQUFDO0lBM0hDLElBQUksQ0FDRixNQUE0QixFQUM1QixPQUU2RCxFQUM3RCxNQUFXLEVBQ1gsTUFBVyxFQUNYLE9BQXFCO1FBRXJCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBRXhCLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLFVBQWlCLENBQUMsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUUvRSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssUUFBUSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1lBRXhCLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUM7WUFDM0MsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQztZQUV6QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBRTNCLE1BQU0sU0FBUyxHQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQXdCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pFLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRTtpQkFDckIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFpQixDQUFDO2lCQUN4QyxNQUFNLENBQUMsUUFBUSxDQUFDO2lCQUNoQixJQUFJLENBQUMsT0FBTyxF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U0FBUyxDQUFDLENBQUM7U0FDcEI7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRHJhd2VyIH0gZnJvbSAnLi4vbW9kZWwvaS1kcmF3ZXInO1xuaW1wb3J0IHsgU2VyaWVzIH0gZnJvbSAnLi4vbW9kZWwvc2VyaWVzJztcbmltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcbmltcG9ydCB7IFNjYXR0ZXJQb2ludCB9IGZyb20gJy4uL21vZGVsL3BvaW50L3NjYXR0ZXItcG9pbnQnO1xuaW1wb3J0IHsgQ2hhcnRPcHRpb25zIH0gZnJvbSAnLi4vbW9kZWwvY2hhcnQtb3B0aW9ucyc7XG5cbmV4cG9ydCBjbGFzcyBTY2F0dGVyRHJhd2VyIGltcGxlbWVudHMgSURyYXdlcjxTY2F0dGVyUG9pbnQ+IHtcbiAgcHJpdmF0ZSBfdmlydHVhbENhbnZhczogYW55O1xuICBwcml2YXRlIF9jb2xvclRvRGF0YSA9IHt9O1xuICBwcml2YXRlIF9vcHRpb25zOiBDaGFydE9wdGlvbnM7XG4gIHByaXZhdGUgX2NvbnRleHQ6XG4gICAgfCBkMy5TZWxlY3Rpb248U1ZHRWxlbWVudCwgdW5rbm93biwgbnVsbCwgdW5kZWZpbmVkPlxuICAgIHwgZDMuU2VsZWN0aW9uPEhUTUxDYW52YXNFbGVtZW50LCB1bmtub3duLCBudWxsLCB1bmRlZmluZWQ+O1xuXG4gIGRyYXcoXG4gICAgc2VyaWVzOiBTZXJpZXM8U2NhdHRlclBvaW50PixcbiAgICBjb250ZXh0OlxuICAgICAgfCBkMy5TZWxlY3Rpb248U1ZHRWxlbWVudCwgdW5rbm93biwgbnVsbCwgdW5kZWZpbmVkPlxuICAgICAgfCBkMy5TZWxlY3Rpb248SFRNTENhbnZhc0VsZW1lbnQsIHVua25vd24sIG51bGwsIHVuZGVmaW5lZD4sXG4gICAgc2NhbGVYOiBhbnksXG4gICAgc2NhbGVZOiBhbnksXG4gICAgb3B0aW9uczogQ2hhcnRPcHRpb25zXG4gICk6IHZvaWQge1xuICAgIHRoaXMuX29wdGlvbnMgPSBvcHRpb25zO1xuXG4gICAgZDMuc2VsZWN0KGNvbnRleHQubm9kZSgpLnBhcmVudE5vZGUgYXMgYW55KS5zZWxlY3QoJy52aXJ0dWFsLWNhbnZhcycpLnJlbW92ZSgpO1xuXG4gICAgaWYgKHNlcmllcy5yZW5kZXJUbyA9PT0gJ2NhbnZhcycpIHtcbiAgICAgIHRoaXMuX2NvbnRleHQgPSBjb250ZXh0O1xuXG4gICAgICBjb25zdCBoZWlnaHQgPSBjb250ZXh0Lm5vZGUoKS5jbGllbnRIZWlnaHQ7XG4gICAgICBjb25zdCB3aWR0aCA9IGNvbnRleHQubm9kZSgpLmNsaWVudFdpZHRoO1xuXG4gICAgICBjb25zdCBwb2ludHMgPSBzZXJpZXMuZGF0YTtcblxuICAgICAgY29uc3QgY29udGV4dDJEID0gKGNvbnRleHQubm9kZSgpIGFzIEhUTUxDYW52YXNFbGVtZW50KS5nZXRDb250ZXh0KCcyZCcpO1xuICAgICAgdGhpcy5fdmlydHVhbENhbnZhcyA9IGQzXG4gICAgICAgIC5zZWxlY3QoY29udGV4dC5ub2RlKCkucGFyZW50Tm9kZSBhcyBhbnkpXG4gICAgICAgIC5hcHBlbmQoJ2NhbnZhcycpXG4gICAgICAgIC5hdHRyKCdjbGFzcycsICd2aXJ0dWFsLWNhbnZhcycpXG4gICAgICAgIC5zdHlsZSgnZGlzcGxheScsICdub25lJyk7XG5cbiAgICAgIHRoaXMuX3ZpcnR1YWxDYW52YXMuYXR0cignd2lkdGgnLCB3aWR0aCkuYXR0cignaGVpZ2h0JywgaGVpZ2h0KTtcbiAgICAgIGNvbnN0IHZpcnR1YWxDb250ZXh0ID0gdGhpcy5fdmlydHVhbENhbnZhcy5ub2RlKCkuZ2V0Q29udGV4dCgnMmQnKTtcblxuICAgICAgY29udGV4dC5vbignbW91c2VvdXQnLCAoKSA9PiB7XG4gICAgICAgIGQzLnNlbGVjdCh0aGlzLl9jb250ZXh0Lm5vZGUoKS5wYXJlbnROb2RlIGFzIGFueSlcbiAgICAgICAgICAuc2VsZWN0KCcudG9vbHRpcC1jaGFydCcpXG4gICAgICAgICAgLnN0eWxlKCdkaXNwbGF5JywgJ25vbmUnKTtcblxuICAgICAgICBjb250ZXh0Lm9uKCdtb3VzZW1vdmUnLCBudWxsKTtcbiAgICAgIH0pO1xuXG4gICAgICBjb250ZXh0Lm9uKCdtb3VzZWVudGVyJywgKCkgPT4ge1xuICAgICAgICBkMy5zZWxlY3QodGhpcy5fY29udGV4dC5ub2RlKCkucGFyZW50Tm9kZSBhcyBhbnkpXG4gICAgICAgICAgLnNlbGVjdCgnLnRvb2x0aXAtY2hhcnQnKVxuICAgICAgICAgIC5zdHlsZSgnZGlzcGxheScsIG51bGwpO1xuICAgICAgICBjb250ZXh0Lm9uKCdtb3VzZW1vdmUnLCAoZSkgPT4gdGhpcy5oYW5kbGVNb3VzZU1vdmUoZSkpO1xuICAgICAgfSk7XG5cbiAgICAgIHBvaW50cy5mb3JFYWNoKChkOiBhbnksIGlkeCkgPT4ge1xuICAgICAgICBjb25zdCBjb2xvciA9IHRoaXMuZ2V0Q29sb3IoaWR4KTtcbiAgICAgICAgdGhpcy5fY29sb3JUb0RhdGFbY29sb3JdID0gZDtcbiAgICAgICAgdmlydHVhbENvbnRleHQuZmlsbFN0eWxlID0gY29sb3I7XG4gICAgICAgIGNvbnRleHQyRC5maWxsU3R5bGUgPSBkLmNvbG9yO1xuXG4gICAgICAgIGNvbnN0IGN4ID0gc2NhbGVYKGQueCk7XG4gICAgICAgIGNvbnN0IGN5ID0gc2NhbGVZKGQueSk7XG5cbiAgICAgICAgY29udGV4dDJELmJlZ2luUGF0aCgpO1xuICAgICAgICBjb250ZXh0MkQuYXJjKGN4LCBjeSwgZC5yYWRpdXMsIDAsIDIgKiBNYXRoLlBJKTtcbiAgICAgICAgY29udGV4dDJELmNsb3NlUGF0aCgpO1xuICAgICAgICBjb250ZXh0MkQuZmlsbCgpO1xuXG4gICAgICAgIHZpcnR1YWxDb250ZXh0LmJlZ2luUGF0aCgpO1xuICAgICAgICB2aXJ0dWFsQ29udGV4dC5hcmMoY3gsIGN5LCBkLnJhZGl1cywgMCwgMiAqIE1hdGguUEkpO1xuICAgICAgICB2aXJ0dWFsQ29udGV4dC5jbG9zZVBhdGgoKTtcbiAgICAgICAgdmlydHVhbENvbnRleHQuZmlsbCgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb2xvcihpbmRleCkge1xuICAgIHJldHVybiBkM1xuICAgICAgLnJnYihcbiAgICAgICAgTWF0aC5mbG9vcihpbmRleCAvIDI1NiAvIDI1NikgJSAyNTYsXG4gICAgICAgIE1hdGguZmxvb3IoaW5kZXggLyAyNTYpICUgMjU2LFxuICAgICAgICBpbmRleCAlIDI1NlxuICAgICAgKVxuICAgICAgLnRvU3RyaW5nKCk7XG4gIH1cblxuICBwcml2YXRlIHRvb2x0aXBQb3NpdGlvbihldmVudCkge1xuICAgIGNvbnN0IGNlbnRlclggPSB0aGlzLl9jb250ZXh0Lm5vZGUoKS5jbGllbnRXaWR0aCAvIDI7XG4gICAgY29uc3QgY2VudGVyWSA9IHRoaXMuX2NvbnRleHQubm9kZSgpLmNsaWVudEhlaWdodCAvIDI7XG5cbiAgICBjb25zdCBwYWRkaW5nID0geyB4OiAxMCwgeTogMTAgfTtcblxuICAgIGNvbnN0IHNjZW5lID0ge1xuICAgICAgbGVmdDogZXZlbnQucGFnZVggPiBjZW50ZXJYID8gJ2luaXRpYWwnIDogYCR7ZXZlbnQucGFnZVggKyBwYWRkaW5nLnh9cHhgLFxuICAgICAgdG9wOiBldmVudC5wYWdlWSA+IGNlbnRlclkgPyAnaW5pdGlhbCcgOiBgJHtldmVudC5wYWdlWSArIHBhZGRpbmcueX1weGAsXG4gICAgICBib3R0b206XG4gICAgICAgIGV2ZW50LnBhZ2VZID4gY2VudGVyWVxuICAgICAgICAgID8gYCR7d2luZG93LmlubmVySGVpZ2h0IC0gZXZlbnQucGFnZVl9cHhgXG4gICAgICAgICAgOiAnaW5pdGlhbCcsXG4gICAgICByaWdodDpcbiAgICAgICAgZXZlbnQucGFnZVggPiBjZW50ZXJYXG4gICAgICAgICAgPyBgJHt3aW5kb3cuaW5uZXJXaWR0aCAtIGV2ZW50LnBhZ2VYICsgcGFkZGluZy54fXB4YFxuICAgICAgICAgIDogJ2luaXRpYWwnLFxuICAgIH07XG5cbiAgICByZXR1cm4gc2NlbmU7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU1vdXNlTW92ZShldmVudDogTW91c2VFdmVudCkge1xuICAgIGNvbnN0IG1vdXNlID0gZDMucG9pbnRlcihldmVudCk7XG5cbiAgICBjb25zdCB2aXJ0dWFsQ29udGV4dCA9IHRoaXMuX3ZpcnR1YWxDYW52YXMubm9kZSgpLmdldENvbnRleHQoJzJkJyk7XG5cbiAgICBjb25zdCBpbWFnZSA9IHZpcnR1YWxDb250ZXh0LmdldEltYWdlRGF0YShtb3VzZVswXSwgbW91c2VbMV0sIDEsIDEpO1xuICAgIGNvbnN0IGNvbG9yID0gZDMucmdiLmFwcGx5KG51bGwsIGltYWdlLmRhdGEpLnRvU3RyaW5nKCk7XG4gICAgY29uc3QgcG9zc2libGVEYXR1bSA9IHRoaXMuX2NvbG9yVG9EYXRhW2NvbG9yXTtcblxuICAgIGNvbnN0IHsgdG9wLCByaWdodCwgYm90dG9tLCBsZWZ0IH0gPSB0aGlzLnRvb2x0aXBQb3NpdGlvbihldmVudCk7XG5cbiAgICBpZiAocG9zc2libGVEYXR1bSkge1xuICAgICAgY29uc3QgZm9ybWF0dGVkID0gdGhpcy5fb3B0aW9ucy50b29sdGlwPy5mb3JtYXQoW3Bvc3NpYmxlRGF0dW1dKTtcbiAgICAgIGQzLnNlbGVjdCh0aGlzLl9jb250ZXh0Lm5vZGUoKS5wYXJlbnROb2RlIGFzIGFueSlcbiAgICAgICAgLnNlbGVjdCgnLnRvb2x0aXAtY2hhcnQnKVxuICAgICAgICAuc3R5bGUoJ3otaW5kZXgnLCAzKVxuICAgICAgICAuc3R5bGUoJ3RvcCcsIHRvcClcbiAgICAgICAgLnN0eWxlKCdyaWdodCcsIHJpZ2h0KVxuICAgICAgICAuc3R5bGUoJ2JvdHRvbScsIGJvdHRvbSlcbiAgICAgICAgLnN0eWxlKCdsZWZ0JywgbGVmdClcbiAgICAgICAgLmh0bWwoZm9ybWF0dGVkKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,23 +0,0 @@
1
- import * as d3 from 'd3';
2
- export class SplineDrawer {
3
- draw(series, context, scaleX, scaleY) {
4
- const points = series.data;
5
- const path = d3
6
- .line()
7
- .curve(d3.curveCatmullRom)
8
- .defined((d) => d.x != null && d.y != null)
9
- .x((d) => scaleX(d.x))
10
- .y((d) => scaleY(d.y));
11
- context
12
- .append('path')
13
- .attr('transform', `translate(${0}, 0)`)
14
- .attr('fill', 'none')
15
- .attr('stroke', series.color)
16
- .attr('stroke-width', series.strokeWidth ? series.strokeWidth : 1)
17
- .datum(points)
18
- .attr('d', path)
19
- .transition()
20
- .duration(750);
21
- }
22
- }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaW5lLWRyYXdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvY2hhcnQvZHJhd2VyL3NwbGluZS1kcmF3ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFFekIsTUFBTSxPQUFPLFlBQVk7SUFDdkIsSUFBSSxDQUNGLE1BQXlCLEVBQ3pCLE9BQTJELEVBQzNELE1BQVcsRUFDWCxNQUFXO1FBRVgsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUUzQixNQUFNLElBQUksR0FBRyxFQUFFO2FBQ1osSUFBSSxFQUFFO2FBQ04sS0FBSyxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUM7YUFDekIsT0FBTyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQzthQUMvQyxDQUFDLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUIsQ0FBQyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFOUIsT0FBTzthQUNKLE1BQU0sQ0FBQyxNQUFNLENBQUM7YUFDZCxJQUFJLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUM7YUFDdkMsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7YUFDcEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDO2FBQzVCLElBQUksQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2pFLEtBQUssQ0FBQyxNQUFNLENBQUM7YUFDYixJQUFJLENBQUMsR0FBRyxFQUFFLElBQVcsQ0FBQzthQUN0QixVQUFVLEVBQUU7YUFDWixRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSURyYXdlciB9IGZyb20gJy4uL21vZGVsL2ktZHJhd2VyJztcbmltcG9ydCB7IEJhc2VQb2ludCB9IGZyb20gJy4uL21vZGVsL3BvaW50L2Jhc2UtcG9pbnQnO1xuaW1wb3J0IHsgU2VyaWVzIH0gZnJvbSAnLi4vbW9kZWwvc2VyaWVzJztcbmltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcblxuZXhwb3J0IGNsYXNzIFNwbGluZURyYXdlciBpbXBsZW1lbnRzIElEcmF3ZXI8QmFzZVBvaW50PiB7XG4gIGRyYXcoXG4gICAgc2VyaWVzOiBTZXJpZXM8QmFzZVBvaW50PixcbiAgICBjb250ZXh0OiBkMy5TZWxlY3Rpb248U1ZHRWxlbWVudCwgdW5rbm93biwgbnVsbCwgdW5kZWZpbmVkPixcbiAgICBzY2FsZVg6IGFueSxcbiAgICBzY2FsZVk6IGFueVxuICApOiB2b2lkIHtcbiAgICBjb25zdCBwb2ludHMgPSBzZXJpZXMuZGF0YTtcblxuICAgIGNvbnN0IHBhdGggPSBkM1xuICAgICAgLmxpbmUoKVxuICAgICAgLmN1cnZlKGQzLmN1cnZlQ2F0bXVsbFJvbSlcbiAgICAgIC5kZWZpbmVkKChkOiBhbnkpID0+IGQueCAhPSBudWxsICYmIGQueSAhPSBudWxsKVxuICAgICAgLngoKGQ6IGFueSkgPT4gc2NhbGVYKGQueCkpXG4gICAgICAueSgoZDogYW55KSA9PiBzY2FsZVkoZC55KSk7XG5cbiAgICBjb250ZXh0XG4gICAgICAuYXBwZW5kKCdwYXRoJylcbiAgICAgIC5hdHRyKCd0cmFuc2Zvcm0nLCBgdHJhbnNsYXRlKCR7MH0sIDApYClcbiAgICAgIC5hdHRyKCdmaWxsJywgJ25vbmUnKVxuICAgICAgLmF0dHIoJ3N0cm9rZScsIHNlcmllcy5jb2xvcilcbiAgICAgIC5hdHRyKCdzdHJva2Utd2lkdGgnLCBzZXJpZXMuc3Ryb2tlV2lkdGggPyBzZXJpZXMuc3Ryb2tlV2lkdGggOiAxKVxuICAgICAgLmRhdHVtKHBvaW50cylcbiAgICAgIC5hdHRyKCdkJywgcGF0aCBhcyBhbnkpXG4gICAgICAudHJhbnNpdGlvbigpXG4gICAgICAuZHVyYXRpb24oNzUwKTtcbiAgfVxufVxuIl19
@@ -1,7 +0,0 @@
1
- import { LegendType } from '../model/enum/legend-type';
2
- import { SwatchDrawer } from './swatch-drawer';
3
- import { GradientDrawer } from './gradient-drawer';
4
- export const defaultLegendDrawerMapping = new Map()
5
- .set(LegendType.swatches, new SwatchDrawer())
6
- .set(LegendType.gradient, new GradientDrawer());
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1kcmF3ZXItbGVnZW5kLW1hcHBpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2NoYXJ0L2xlZ2VuZC1kcmF3ZXIvZGVmYXVsdC1kcmF3ZXItbGVnZW5kLW1hcHBpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxHQUFHLEVBQTZCO0tBQzNFLEdBQUcsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLElBQUksWUFBWSxFQUFFLENBQUM7S0FDNUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxjQUFjLEVBQUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUxlZ2VuZERyYXdlciB9IGZyb20gJy4uL21vZGVsL2ktZHJhd2VyLWxlZ2VuZCc7XG5pbXBvcnQgeyBMZWdlbmRUeXBlIH0gZnJvbSAnLi4vbW9kZWwvZW51bS9sZWdlbmQtdHlwZSc7XG5pbXBvcnQgeyBTd2F0Y2hEcmF3ZXIgfSBmcm9tICcuL3N3YXRjaC1kcmF3ZXInO1xuaW1wb3J0IHsgR3JhZGllbnREcmF3ZXIgfSBmcm9tICcuL2dyYWRpZW50LWRyYXdlcic7XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0TGVnZW5kRHJhd2VyTWFwcGluZyA9IG5ldyBNYXA8TGVnZW5kVHlwZSwgSUxlZ2VuZERyYXdlcj4oKVxuICAuc2V0KExlZ2VuZFR5cGUuc3dhdGNoZXMsIG5ldyBTd2F0Y2hEcmF3ZXIoKSlcbiAgLnNldChMZWdlbmRUeXBlLmdyYWRpZW50LCBuZXcgR3JhZGllbnREcmF3ZXIoKSk7XG4iXX0=
@@ -1,45 +0,0 @@
1
- import * as d3 from 'd3';
2
- export class GradientDrawer {
3
- draw(options) {
4
- const container = d3
5
- .select(options.context.parentElement)
6
- .select('.legend-container');
7
- container.selectAll('.gradient-legend').remove();
8
- const svg = container
9
- .append('svg')
10
- .attr('class', 'gradient-legend')
11
- .attr('width', options.width)
12
- .attr('height', 32);
13
- svg.selectAll('.legend-defs').remove();
14
- const extent = d3.extent(options.series[0]?.data, (d) => d.value);
15
- const defs = svg.append('defs').attr('class', 'legend-defs');
16
- const linearGradient = defs
17
- .append('linearGradient')
18
- .attr('id', 'legend-gradient');
19
- linearGradient
20
- .selectAll('stop')
21
- .data([...options.series[0]?.data].reverse())
22
- .enter()
23
- .append('stop')
24
- .attr('offset', (d) => ((d.value - extent[0]) / (extent[1] - extent[0])) * 100 + '%')
25
- .attr('stop-color', (d) => d.color);
26
- const g = svg.append('g').attr('class', 'gradient-legend');
27
- g.append('rect')
28
- .attr('width', options.width - 80)
29
- .attr('transform', 'translate(40, 0)')
30
- .attr('height', 4)
31
- .style('fill', 'url(#legend-gradient)');
32
- const xScale = d3
33
- .scaleLinear()
34
- .range([80, options.width - 80])
35
- .domain(extent)
36
- .nice();
37
- const tickCount = options.width / 80;
38
- const xAxis = d3.axisBottom(xScale).tickSize(8).ticks(tickCount);
39
- g.call(xAxis).call((node) => {
40
- node.select('.domain').remove();
41
- node.selectAll('line').remove();
42
- });
43
- }
44
- }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhZGllbnQtZHJhd2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9jaGFydC9sZWdlbmQtZHJhd2VyL2dyYWRpZW50LWRyYXdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUl6QixNQUFNLE9BQU8sY0FBYztJQUN6QixJQUFJLENBQUMsT0FBcUM7UUFDeEMsTUFBTSxTQUFTLEdBQUcsRUFBRTthQUNqQixNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7YUFDckMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFL0IsU0FBUyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRWpELE1BQU0sR0FBRyxHQUFHLFNBQVM7YUFDbEIsTUFBTSxDQUFDLEtBQUssQ0FBQzthQUNiLElBQUksQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUM7YUFDaEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDO2FBQzVCLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFdEIsR0FBRyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUV2QyxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsTUFBTSxDQUN0QixPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQVcsRUFDOUIsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQ2IsQ0FBQztRQUVULE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQVEsQ0FBQztRQUVwRSxNQUFNLGNBQWMsR0FBRyxJQUFJO2FBQ3hCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQzthQUN4QixJQUFJLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFFakMsY0FBYzthQUNYLFNBQVMsQ0FBQyxNQUFNLENBQUM7YUFDakIsSUFBSSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQzVDLEtBQUssRUFBRTthQUNQLE1BQU0sQ0FBQyxNQUFNLENBQUM7YUFDZCxJQUFJLENBQ0gsUUFBUSxFQUNSLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQ3JFO2FBQ0EsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXRDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBRTNELENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO2FBQ2IsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQzthQUNqQyxJQUFJLENBQUMsV0FBVyxFQUFFLGtCQUFrQixDQUFDO2FBQ3JDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQ2pCLEtBQUssQ0FBQyxNQUFNLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztRQUUxQyxNQUFNLE1BQU0sR0FBRyxFQUFFO2FBQ2QsV0FBVyxFQUFFO2FBQ2IsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7YUFDL0IsTUFBTSxDQUFDLE1BQU0sQ0FBQzthQUNkLElBQUksRUFBRSxDQUFDO1FBQ1YsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFFckMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWpFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuaW1wb3J0IHsgSUxlZ2VuZERyYXdlciwgTGVnZW5kRHJhd09wdGlvbnMgfSBmcm9tICcuLi9tb2RlbC9pLWRyYXdlci1sZWdlbmQnO1xuaW1wb3J0IHsgQmFzZVBvaW50IH0gZnJvbSAnLi4vbW9kZWwvcG9pbnQvYmFzZS1wb2ludCc7XG5cbmV4cG9ydCBjbGFzcyBHcmFkaWVudERyYXdlciBpbXBsZW1lbnRzIElMZWdlbmREcmF3ZXIge1xuICBkcmF3KG9wdGlvbnM6IExlZ2VuZERyYXdPcHRpb25zPEJhc2VQb2ludD4pOiB2b2lkIHtcbiAgICBjb25zdCBjb250YWluZXIgPSBkM1xuICAgICAgLnNlbGVjdChvcHRpb25zLmNvbnRleHQucGFyZW50RWxlbWVudClcbiAgICAgIC5zZWxlY3QoJy5sZWdlbmQtY29udGFpbmVyJyk7XG5cbiAgICBjb250YWluZXIuc2VsZWN0QWxsKCcuZ3JhZGllbnQtbGVnZW5kJykucmVtb3ZlKCk7XG5cbiAgICBjb25zdCBzdmcgPSBjb250YWluZXJcbiAgICAgIC5hcHBlbmQoJ3N2ZycpXG4gICAgICAuYXR0cignY2xhc3MnLCAnZ3JhZGllbnQtbGVnZW5kJylcbiAgICAgIC5hdHRyKCd3aWR0aCcsIG9wdGlvbnMud2lkdGgpXG4gICAgICAuYXR0cignaGVpZ2h0JywgMzIpO1xuXG4gICAgc3ZnLnNlbGVjdEFsbCgnLmxlZ2VuZC1kZWZzJykucmVtb3ZlKCk7XG5cbiAgICBjb25zdCBleHRlbnQgPSBkMy5leHRlbnQoXG4gICAgICBvcHRpb25zLnNlcmllc1swXT8uZGF0YSBhcyBhbnksXG4gICAgICAoZDogYW55KSA9PiBkLnZhbHVlXG4gICAgKSBhcyBhbnk7XG5cbiAgICBjb25zdCBkZWZzID0gc3ZnLmFwcGVuZCgnZGVmcycpLmF0dHIoJ2NsYXNzJywgJ2xlZ2VuZC1kZWZzJykgYXMgYW55O1xuXG4gICAgY29uc3QgbGluZWFyR3JhZGllbnQgPSBkZWZzXG4gICAgICAuYXBwZW5kKCdsaW5lYXJHcmFkaWVudCcpXG4gICAgICAuYXR0cignaWQnLCAnbGVnZW5kLWdyYWRpZW50Jyk7XG5cbiAgICBsaW5lYXJHcmFkaWVudFxuICAgICAgLnNlbGVjdEFsbCgnc3RvcCcpXG4gICAgICAuZGF0YShbLi4ub3B0aW9ucy5zZXJpZXNbMF0/LmRhdGFdLnJldmVyc2UoKSlcbiAgICAgIC5lbnRlcigpXG4gICAgICAuYXBwZW5kKCdzdG9wJylcbiAgICAgIC5hdHRyKFxuICAgICAgICAnb2Zmc2V0JyxcbiAgICAgICAgKGQpID0+ICgoZC52YWx1ZSAtIGV4dGVudFswXSkgLyAoZXh0ZW50WzFdIC0gZXh0ZW50WzBdKSkgKiAxMDAgKyAnJSdcbiAgICAgIClcbiAgICAgIC5hdHRyKCdzdG9wLWNvbG9yJywgKGQpID0+IGQuY29sb3IpO1xuXG4gICAgY29uc3QgZyA9IHN2Zy5hcHBlbmQoJ2cnKS5hdHRyKCdjbGFzcycsICdncmFkaWVudC1sZWdlbmQnKTtcblxuICAgIGcuYXBwZW5kKCdyZWN0JylcbiAgICAgIC5hdHRyKCd3aWR0aCcsIG9wdGlvbnMud2lkdGggLSA4MClcbiAgICAgIC5hdHRyKCd0cmFuc2Zvcm0nLCAndHJhbnNsYXRlKDQwLCAwKScpXG4gICAgICAuYXR0cignaGVpZ2h0JywgNClcbiAgICAgIC5zdHlsZSgnZmlsbCcsICd1cmwoI2xlZ2VuZC1ncmFkaWVudCknKTtcblxuICAgIGNvbnN0IHhTY2FsZSA9IGQzXG4gICAgICAuc2NhbGVMaW5lYXIoKVxuICAgICAgLnJhbmdlKFs4MCwgb3B0aW9ucy53aWR0aCAtIDgwXSlcbiAgICAgIC5kb21haW4oZXh0ZW50KVxuICAgICAgLm5pY2UoKTtcbiAgICBjb25zdCB0aWNrQ291bnQgPSBvcHRpb25zLndpZHRoIC8gODA7XG5cbiAgICBjb25zdCB4QXhpcyA9IGQzLmF4aXNCb3R0b20oeFNjYWxlKS50aWNrU2l6ZSg4KS50aWNrcyh0aWNrQ291bnQpO1xuXG4gICAgZy5jYWxsKHhBeGlzKS5jYWxsKChub2RlKSA9PiB7XG4gICAgICBub2RlLnNlbGVjdCgnLmRvbWFpbicpLnJlbW92ZSgpO1xuICAgICAgbm9kZS5zZWxlY3RBbGwoJ2xpbmUnKS5yZW1vdmUoKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,62 +0,0 @@
1
- import * as d3 from 'd3';
2
- import { SeriesType } from '../model/enum/series-type';
3
- const classTypeLegendMapping = new Map()
4
- .set(SeriesType.line, 'line')
5
- .set(SeriesType.spline, 'line');
6
- export class SwatchDrawer {
7
- draw(options) {
8
- d3.select(options.context.parentElement)
9
- .select('.legend-container')
10
- .selectAll('.legend')
11
- .remove();
12
- const defaultData = options.series?.filter((serie) => serie.type !== SeriesType.bar);
13
- const barData = options?.series
14
- ?.filter((serie) => serie.type === SeriesType.bar)
15
- .reduce((acc, serie) => {
16
- const data = serie.data.map((_) => ({
17
- ..._,
18
- serieType: serie.type,
19
- serieIndex: serie.id,
20
- }));
21
- return acc.concat(data);
22
- }, []);
23
- const legendContainer = d3
24
- .select(options.context.parentElement)
25
- .select('.legend-container')
26
- .append('div')
27
- .attr('class', 'legend padding-bottom-4');
28
- const defaultLegend = legendContainer
29
- .selectAll('div')
30
- .data(defaultData)
31
- .enter()
32
- .append('div')
33
- .attr('class', 'item')
34
- .style('user-select', 'none');
35
- const barLegend = legendContainer
36
- .selectAll('.bar')
37
- .data(barData)
38
- .enter()
39
- .append('div')
40
- .attr('class', 'item bar')
41
- .style('user-select', 'none');
42
- defaultLegend
43
- .append('div')
44
- .attr('class', (_) => classTypeLegendMapping.get(_.type) || 'swatch')
45
- .style('background', (_) => _.visible ? _.color ?? 'black' : 'var(--color-text-10)');
46
- defaultLegend
47
- .append('div')
48
- .attr('class', 'label')
49
- .text((_) => _.name ?? 'Без названия')
50
- .style('text-decoration', (_) => (_.visible ? 'unset' : 'line-through'));
51
- barLegend
52
- .append('div')
53
- .attr('class', 'swatch')
54
- .style('background', (_) => _.visible ? _.color ?? 'black' : 'var(--color-text-10)');
55
- barLegend
56
- .append('div')
57
- .attr('class', 'label')
58
- .text((_) => _.label ?? 'Без названия')
59
- .style('text-decoration', (_) => (_.visible ? 'unset' : 'line-through'));
60
- }
61
- }
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dhdGNoLWRyYXdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvY2hhcnQvbGVnZW5kLWRyYXdlci9zd2F0Y2gtZHJhd2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUt2RCxNQUFNLHNCQUFzQixHQUFHLElBQUksR0FBRyxFQUFzQjtLQUN6RCxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7S0FDNUIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFFbEMsTUFBTSxPQUFPLFlBQVk7SUFDdkIsSUFBSSxDQUFDLE9BQWdEO1FBQ25ELEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7YUFDckMsTUFBTSxDQUFDLG1CQUFtQixDQUFDO2FBQzNCLFNBQVMsQ0FBQyxTQUFTLENBQUM7YUFDcEIsTUFBTSxFQUFFLENBQUM7UUFFWixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FDeEMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLEdBQUcsQ0FDekMsQ0FBQztRQUNGLE1BQU0sT0FBTyxHQUFHLE9BQU8sRUFBRSxNQUFNO1lBQzdCLEVBQUUsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxHQUFHLENBQUM7YUFDakQsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3JCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFF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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBkMyBmcm9tICdkMyc7XG5pbXBvcnQgeyBTZXJpZXNUeXBlIH0gZnJvbSAnLi4vbW9kZWwvZW51bS9zZXJpZXMtdHlwZSc7XG5pbXBvcnQgeyBJTGVnZW5kRHJhd2VyLCBMZWdlbmREcmF3T3B0aW9ucyB9IGZyb20gJy4uL21vZGVsL2ktZHJhd2VyLWxlZ2VuZCc7XG5pbXBvcnQgeyBCYXNlUG9pbnQgfSBmcm9tICcuLi9tb2RlbC9wb2ludC9iYXNlLXBvaW50JztcbmltcG9ydCB7IEJhclBvaW50IH0gZnJvbSAnLi4vbW9kZWwvcG9pbnQvYmFyLXBvaW50JztcblxuY29uc3QgY2xhc3NUeXBlTGVnZW5kTWFwcGluZyA9IG5ldyBNYXA8U2VyaWVzVHlwZSwgc3RyaW5nPigpXG4gIC5zZXQoU2VyaWVzVHlwZS5saW5lLCAnbGluZScpXG4gIC5zZXQoU2VyaWVzVHlwZS5zcGxpbmUsICdsaW5lJyk7XG5cbmV4cG9ydCBjbGFzcyBTd2F0Y2hEcmF3ZXIgaW1wbGVtZW50cyBJTGVnZW5kRHJhd2VyIHtcbiAgZHJhdyhvcHRpb25zOiBMZWdlbmREcmF3T3B0aW9uczxCYXNlUG9pbnQgfCBCYXJQb2ludD4pOiB2b2lkIHtcbiAgICBkMy5zZWxlY3Qob3B0aW9ucy5jb250ZXh0LnBhcmVudEVsZW1lbnQpXG4gICAgICAuc2VsZWN0KCcubGVnZW5kLWNvbnRhaW5lcicpXG4gICAgICAuc2VsZWN0QWxsKCcubGVnZW5kJylcbiAgICAgIC5yZW1vdmUoKTtcblxuICAgIGNvbnN0IGRlZmF1bHREYXRhID0gb3B0aW9ucy5zZXJpZXM/LmZpbHRlcihcbiAgICAgIChzZXJpZSkgPT4gc2VyaWUudHlwZSAhPT0gU2VyaWVzVHlwZS5iYXJcbiAgICApO1xuICAgIGNvbnN0IGJhckRhdGEgPSBvcHRpb25zPy5zZXJpZXNcbiAgICAgID8uZmlsdGVyKChzZXJpZSkgPT4gc2VyaWUudHlwZSA9PT0gU2VyaWVzVHlwZS5iYXIpXG4gICAgICAucmVkdWNlKChhY2MsIHNlcmllKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBzZXJpZS5kYXRhLm1hcCgoXykgPT4gKHtcbiAgICAgICAgICAuLi5fLFxuICAgICAgICAgIHNlcmllVHlwZTogc2VyaWUudHlwZSxcbiAgICAgICAgICBzZXJpZUluZGV4OiBzZXJpZS5pZCxcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIHJldHVybiBhY2MuY29uY2F0KGRhdGEpO1xuICAgICAgfSwgW10pO1xuXG4gICAgY29uc3QgbGVnZW5kQ29udGFpbmVyID0gZDNcbiAgICAgIC5zZWxlY3Qob3B0aW9ucy5jb250ZXh0LnBhcmVudEVsZW1lbnQpXG4gICAgICAuc2VsZWN0KCcubGVnZW5kLWNvbnRhaW5lcicpXG4gICAgICAuYXBwZW5kKCdkaXYnKVxuICAgICAgLmF0dHIoJ2NsYXNzJywgJ2xlZ2VuZCBwYWRkaW5nLWJvdHRvbS00Jyk7XG5cbiAgICBjb25zdCBkZWZhdWx0TGVnZW5kID0gbGVnZW5kQ29udGFpbmVyXG4gICAgICAuc2VsZWN0QWxsKCdkaXYnKVxuICAgICAgLmRhdGEoZGVmYXVsdERhdGEpXG4gICAgICAuZW50ZXIoKVxuICAgICAgLmFwcGVuZCgnZGl2JylcbiAgICAgIC5hdHRyKCdjbGFzcycsICdpdGVtJylcbiAgICAgIC5zdHlsZSgndXNlci1zZWxlY3QnLCAnbm9uZScpO1xuXG4gICAgY29uc3QgYmFyTGVnZW5kID0gbGVnZW5kQ29udGFpbmVyXG4gICAgICAuc2VsZWN0QWxsKCcuYmFyJylcbiAgICAgIC5kYXRhKGJhckRhdGEpXG4gICAgICAuZW50ZXIoKVxuICAgICAgLmFwcGVuZCgnZGl2JylcbiAgICAgIC5hdHRyKCdjbGFzcycsICdpdGVtIGJhcicpXG4gICAgICAuc3R5bGUoJ3VzZXItc2VsZWN0JywgJ25vbmUnKTtcblxuICAgIGRlZmF1bHRMZWdlbmRcbiAgICAgIC5hcHBlbmQoJ2RpdicpXG4gICAgICAuYXR0cignY2xhc3MnLCAoXykgPT4gY2xhc3NUeXBlTGVnZW5kTWFwcGluZy5nZXQoXy50eXBlKSB8fCAnc3dhdGNoJylcbiAgICAgIC5zdHlsZSgnYmFja2dyb3VuZCcsIChfKSA9PlxuICAgICAgICBfLnZpc2libGUgPyBfLmNvbG9yID8/ICdibGFjaycgOiAndmFyKC0tY29sb3ItdGV4dC0xMCknXG4gICAgICApO1xuXG4gICAgZGVmYXVsdExlZ2VuZFxuICAgICAgLmFwcGVuZCgnZGl2JylcbiAgICAgIC5hdHRyKCdjbGFzcycsICdsYWJlbCcpXG4gICAgICAudGV4dCgoXykgPT4gXy5uYW1lID8/ICfQkdC10Lcg0L3QsNC30LLQsNC90LjRjycpXG4gICAgICAuc3R5bGUoJ3RleHQtZGVjb3JhdGlvbicsIChfKSA9PiAoXy52aXNpYmxlID8gJ3Vuc2V0JyA6ICdsaW5lLXRocm91Z2gnKSk7XG5cbiAgICBiYXJMZWdlbmRcbiAgICAgIC5hcHBlbmQoJ2RpdicpXG4gICAgICAuYXR0cignY2xhc3MnLCAnc3dhdGNoJylcbiAgICAgIC5zdHlsZSgnYmFja2dyb3VuZCcsIChfKSA9PlxuICAgICAgICBfLnZpc2libGUgPyBfLmNvbG9yID8/ICdibGFjaycgOiAndmFyKC0tY29sb3ItdGV4dC0xMCknXG4gICAgICApO1xuXG4gICAgYmFyTGVnZW5kXG4gICAgICAuYXBwZW5kKCdkaXYnKVxuICAgICAgLmF0dHIoJ2NsYXNzJywgJ2xhYmVsJylcbiAgICAgIC50ZXh0KChfKSA9PiBfLmxhYmVsID8/ICfQkdC10Lcg0L3QsNC30LLQsNC90LjRjycpXG4gICAgICAuc3R5bGUoJ3RleHQtZGVjb3JhdGlvbicsIChfKSA9PiAoXy52aXNpYmxlID8gJ3Vuc2V0JyA6ICdsaW5lLXRocm91Z2gnKSk7XG4gIH1cbn1cbiJdfQ==