@rfprodz/client-d3-charts 1.4.11 → 1.4.12

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 (25) hide show
  1. package/esm2022/lib/components/_base/chart.base.mjs +4 -0
  2. package/esm2022/lib/components/bar-chart/bar-chart.component.mjs +17 -25
  3. package/esm2022/lib/components/force-directed-chart/force-directed-chart.component.mjs +17 -25
  4. package/esm2022/lib/components/gauge-chart/gauge-chart.component.mjs +18 -28
  5. package/esm2022/lib/components/line-chart/line-chart.component.mjs +17 -25
  6. package/esm2022/lib/components/pie-chart/pie-chart.component.mjs +17 -25
  7. package/esm2022/lib/components/radar-chart/radar-chart.component.mjs +17 -25
  8. package/esm2022/lib/interfaces/line-chart.interface.mjs +1 -1
  9. package/esm2022/lib/interfaces/pie-chart.interface.mjs +1 -1
  10. package/esm2022/lib/interfaces/radar-chart.interface.mjs +1 -1
  11. package/esm2022/lib/providers/d3-chart-factory.provider.mjs +3 -1
  12. package/fesm2022/rfprodz-client-d3-charts.mjs +97 -147
  13. package/fesm2022/rfprodz-client-d3-charts.mjs.map +1 -1
  14. package/lib/components/_base/chart.base.d.ts +16 -0
  15. package/lib/components/bar-chart/bar-chart.component.d.ts +22 -30
  16. package/lib/components/force-directed-chart/force-directed-chart.component.d.ts +22 -30
  17. package/lib/components/gauge-chart/gauge-chart.component.d.ts +23 -33
  18. package/lib/components/line-chart/line-chart.component.d.ts +22 -30
  19. package/lib/components/pie-chart/pie-chart.component.d.ts +22 -30
  20. package/lib/components/radar-chart/radar-chart.component.d.ts +22 -30
  21. package/lib/interfaces/line-chart.interface.d.ts +24 -0
  22. package/lib/interfaces/pie-chart.interface.d.ts +4 -0
  23. package/lib/interfaces/radar-chart.interface.d.ts +19 -1
  24. package/lib/providers/d3-chart-factory.provider.d.ts +3 -0
  25. package/package.json +1 -1
@@ -0,0 +1,4 @@
1
+ /** D3 chart base class. */
2
+ export class AppD3ChartBase {
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2xpZW50LWQzLWNoYXJ0cy9zcmMvbGliL2NvbXBvbmVudHMvX2Jhc2UvY2hhcnQuYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSwyQkFBMkI7QUFDM0IsTUFBTSxPQUFnQixjQUFjO0NBa0JuQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqIEQzIGNoYXJ0IGJhc2UgY2xhc3MuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXBwRDNDaGFydEJhc2U8VCwgTz4ge1xuICAvKiogQSBjaGFydCBpZC4gKi9cbiAgcHVibGljIGFic3RyYWN0IGNoYXJ0SWQ6IHN0cmluZztcblxuICAvKiogQSBjaGFydCBkYXRhLiAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZGF0YTogVDtcblxuICAvKiogQSBjaGFydCBvcHRpb25zLiAqL1xuICBwdWJsaWMgYWJzdHJhY3Qgb3B0aW9uczogTztcblxuICAvKiogRDMgY2hhcnQgdmlldyBjaGlsZCByZWZlcmVuY2UuICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBjb250YWluZXI/OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAvKiogVGhlIGNoYXJ0IG9wdGlvbnMgY29uc3RydWN0b3IuICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBjaGFydE9wdGlvbnMoKTogTztcblxuICAvKiogRHJhd3MgdGhlIGNoYXJ0LiAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZHJhd0NoYXJ0KCk6IHZvaWQ7XG59XG4iXX0=
@@ -2,28 +2,26 @@ import { DOCUMENT } from '@angular/common';
2
2
  import { ChangeDetectionStrategy, Component, ElementRef, Inject, Input, ViewChild } from '@angular/core';
3
3
  import { D3_CHART_FACTORY } from '../../providers/d3-chart-factory.provider';
4
4
  import { defaultBarChartConfig } from '../../util/bar-chart.util';
5
+ import { AppD3ChartBase } from '../_base/chart.base';
5
6
  import * as i0 from "@angular/core";
6
- export class AppBarChartComponent {
7
+ /** The bar chart component. */
8
+ export class AppBarChartComponent extends AppD3ChartBase {
9
+ /**
10
+ * @param doc The web page's Document object.
11
+ * @param d3Factory D3 chart factory.
12
+ */
7
13
  constructor(doc, d3Factory) {
14
+ super();
8
15
  this.doc = doc;
9
16
  this.d3Factory = d3Factory;
10
- /**
11
- * The chart id.
12
- */
17
+ /** The chart id. */
13
18
  this.chartId = 'bar-0';
14
- /**
15
- * The chart data.
16
- */
19
+ /** The chart data. */
17
20
  this.data = [];
18
- /**
19
- * The chart options.
20
- */
21
+ /** The chart options. */
21
22
  this.options = {};
22
23
  }
23
- /**
24
- * The chart options constructor.
25
- * @returns chart options
26
- */
24
+ /** The chart options constructor. */
27
25
  chartOptions() {
28
26
  const bodyWidthAdjustment = 10;
29
27
  const width = Math.min(this.options.width ?? defaultBarChartConfig.width, this.doc.body.clientWidth - defaultBarChartConfig.margin.left - defaultBarChartConfig.margin.right - bodyWidthAdjustment);
@@ -37,24 +35,18 @@ export class AppBarChartComponent {
37
35
  };
38
36
  return options;
39
37
  }
40
- /**
41
- * Draws the chart.
42
- */
38
+ /** Draws the chart. */
43
39
  drawChart() {
44
40
  if (typeof this.container !== 'undefined') {
45
41
  const options = this.chartOptions();
46
42
  this.d3Factory.drawBarChart(this.container, this.data, options);
47
43
  }
48
44
  }
49
- /**
50
- * Actually draws the chart after the component view is initialized.
51
- */
45
+ /** Actually draws the chart after the component view is initialized. */
52
46
  ngAfterViewInit() {
53
47
  this.drawChart();
54
48
  }
55
- /**
56
- * Redraws the chart on changes.
57
- */
49
+ /** Redraws the chart on changes. */
58
50
  ngOnChanges(changes) {
59
51
  const data = changes.data?.currentValue;
60
52
  const options = changes.options?.currentValue;
@@ -63,7 +55,7 @@ export class AppBarChartComponent {
63
55
  }
64
56
  }
65
57
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AppBarChartComponent, deps: [{ token: DOCUMENT }, { token: D3_CHART_FACTORY }], target: i0.ɵɵFactoryTarget.Component }); }
66
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: AppBarChartComponent, selector: "app-bar-chart", inputs: { chartId: "chartId", data: "data", options: "options" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"container\" id=\"{{ chartId }}\" #container></div>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center}:host .container{flex:0 1 auto}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
58
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: AppBarChartComponent, selector: "app-bar-chart", inputs: { chartId: "chartId", data: "data", options: "options" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"container\" id=\"{{ chartId }}\" #container></div>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center}:host .container{flex:0 1 auto}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
67
59
  }
68
60
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AppBarChartComponent, decorators: [{
69
61
  type: Component,
@@ -84,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
84
76
  type: ViewChild,
85
77
  args: ['container']
86
78
  }] } });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyLWNoYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2xpZW50LWQzLWNoYXJ0cy9zcmMvbGliL2NvbXBvbmVudHMvYmFyLWNoYXJ0L2Jhci1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NsaWVudC1kMy1jaGFydHMvc3JjL2xpYi9jb21wb25lbnRzL2Jhci1jaGFydC9iYXItY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUluSSxPQUFPLEVBQUUsZ0JBQWdCLEVBQW1CLE1BQU0sMkNBQTJDLENBQUM7QUFDOUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBUWxFLE1BQU0sT0FBTyxvQkFBb0I7SUFxQi9CLFlBQ3FDLEdBQWEsRUFDTCxTQUEwQjtRQURsQyxRQUFHLEdBQUgsR0FBRyxDQUFVO1FBQ0wsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUF0QnZFOztXQUVHO1FBQ2EsWUFBTyxHQUFHLE9BQU8sQ0FBQztRQUVsQzs7V0FFRztRQUNhLFNBQUksR0FBa0IsRUFBRSxDQUFDO1FBRXpDOztXQUVHO1FBQ2EsWUFBTyxHQUE4QixFQUFFLENBQUM7SUFVckQsQ0FBQztJQUVKOzs7T0FHRztJQUNLLFlBQVk7UUFDbEIsTUFBTSxtQkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDL0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUkscUJBQXFCLENBQUMsS0FBSyxFQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLG1CQUFtQixDQUN6SCxDQUFDO1FBQ0YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksS0FBSyxFQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLG1CQUFtQixDQUN6SCxDQUFDO1FBQ0YsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQThCO1lBQ3pDLEtBQUs7WUFDTCxNQUFNO1lBQ04sVUFBVTtZQUNWLEdBQUcsSUFBSSxDQUFDLE9BQU87U0FDaEIsQ0FBQztRQUNGLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNLLFNBQVM7UUFDZixJQUFJLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxXQUFXLEVBQUU7WUFDekMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNqRTtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLGVBQWU7UUFDcEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVcsQ0FBQyxPQUEyQjtRQUM1QyxNQUFNLElBQUksR0FBMEIsT0FBTyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUM7UUFDL0QsTUFBTSxPQUFPLEdBQThCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDO1FBQ3pFLElBQUksQ0FBQyxPQUFPLElBQUksS0FBSyxXQUFXLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxPQUFPLEtBQUssV0FBVyxJQUFJLE9BQU8sS0FBSyxJQUFJLENBQUMsRUFBRTtZQUMxRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDbEI7SUFDSCxDQUFDO2lJQTVFVSxvQkFBb0Isa0JBc0JyQixRQUFRLGFBQ1IsZ0JBQWdCO3FIQXZCZixvQkFBb0Isb1BDZGpDLG1FQUNBOzsyRkRhYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0UsZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNOzswQkF3QjVDLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxnQkFBZ0I7eUNBbkJWLE9BQU87c0JBQXRCLEtBQUs7Z0JBS1UsSUFBSTtzQkFBbkIsS0FBSztnQkFLVSxPQUFPO3NCQUF0QixLQUFLO2dCQUttQyxTQUFTO3NCQUFqRCxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJQmFyQ2hhcnREYXRhTm9kZSwgSUJhckNoYXJ0T3B0aW9ucywgVEJhckNoYXJ0RGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYmFyLWNoYXJ0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBJQ2hhcnRJbnB1dENoYW5nZXMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2NoYXJ0LWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRDNfQ0hBUlRfRkFDVE9SWSwgSUQzQ2hhcnRGYWN0b3J5IH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2QzLWNoYXJ0LWZhY3RvcnkucHJvdmlkZXInO1xuaW1wb3J0IHsgZGVmYXVsdEJhckNoYXJ0Q29uZmlnIH0gZnJvbSAnLi4vLi4vdXRpbC9iYXItY2hhcnQudXRpbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1iYXItY2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYmFyLWNoYXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYmFyLWNoYXJ0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBcHBCYXJDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gIC8qKlxuICAgKiBUaGUgY2hhcnQgaWQuXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgY2hhcnRJZCA9ICdiYXItMCc7XG5cbiAgLyoqXG4gICAqIFRoZSBjaGFydCBkYXRhLlxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGRhdGE6IFRCYXJDaGFydERhdGEgPSBbXTtcblxuICAvKipcbiAgICogVGhlIGNoYXJ0IG9wdGlvbnMuXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgb3B0aW9uczogUGFydGlhbDxJQmFyQ2hhcnRPcHRpb25zPiA9IHt9O1xuXG4gIC8qKlxuICAgKiBEMyBjaGFydCB2aWV3IGNoaWxkIHJlZmVyZW5jZS5cbiAgICovXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIHByaXZhdGUgcmVhZG9ubHkgY29udGFpbmVyPzogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2M6IERvY3VtZW50LFxuICAgIEBJbmplY3QoRDNfQ0hBUlRfRkFDVE9SWSkgcHJpdmF0ZSByZWFkb25seSBkM0ZhY3Rvcnk6IElEM0NoYXJ0RmFjdG9yeSxcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBUaGUgY2hhcnQgb3B0aW9ucyBjb25zdHJ1Y3Rvci5cbiAgICogQHJldHVybnMgY2hhcnQgb3B0aW9uc1xuICAgKi9cbiAgcHJpdmF0ZSBjaGFydE9wdGlvbnMoKSB7XG4gICAgY29uc3QgYm9keVdpZHRoQWRqdXN0bWVudCA9IDEwO1xuICAgIGNvbnN0IHdpZHRoID0gTWF0aC5taW4oXG4gICAgICB0aGlzLm9wdGlvbnMud2lkdGggPz8gZGVmYXVsdEJhckNoYXJ0Q29uZmlnLndpZHRoLFxuICAgICAgdGhpcy5kb2MuYm9keS5jbGllbnRXaWR0aCAtIGRlZmF1bHRCYXJDaGFydENvbmZpZy5tYXJnaW4ubGVmdCAtIGRlZmF1bHRCYXJDaGFydENvbmZpZy5tYXJnaW4ucmlnaHQgLSBib2R5V2lkdGhBZGp1c3RtZW50LFxuICAgICk7XG4gICAgY29uc3QgaGVpZ2h0ID0gTWF0aC5taW4oXG4gICAgICB0aGlzLm9wdGlvbnMuaGVpZ2h0ID8/IHdpZHRoLFxuICAgICAgdGhpcy5kb2MuYm9keS5jbGllbnRXaWR0aCAtIGRlZmF1bHRCYXJDaGFydENvbmZpZy5tYXJnaW4udG9wIC0gZGVmYXVsdEJhckNoYXJ0Q29uZmlnLm1hcmdpbi5ib3R0b20gLSBib2R5V2lkdGhBZGp1c3RtZW50LFxuICAgICk7XG4gICAgY29uc3QgeUF4aXNUaWNrcyA9IE1hdGgubWF4KC4uLnRoaXMuZGF0YS5tYXAoaXRlbSA9PiBpdGVtLnZhbHVlKSk7XG4gICAgY29uc3Qgb3B0aW9uczogUGFydGlhbDxJQmFyQ2hhcnRPcHRpb25zPiA9IHtcbiAgICAgIHdpZHRoLFxuICAgICAgaGVpZ2h0LFxuICAgICAgeUF4aXNUaWNrcyxcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICB9O1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIERyYXdzIHRoZSBjaGFydC5cbiAgICovXG4gIHByaXZhdGUgZHJhd0NoYXJ0KCkge1xuICAgIGlmICh0eXBlb2YgdGhpcy5jb250YWluZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jaGFydE9wdGlvbnMoKTtcbiAgICAgIHRoaXMuZDNGYWN0b3J5LmRyYXdCYXJDaGFydCh0aGlzLmNvbnRhaW5lciwgdGhpcy5kYXRhLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWN0dWFsbHkgZHJhd3MgdGhlIGNoYXJ0IGFmdGVyIHRoZSBjb21wb25lbnQgdmlldyBpcyBpbml0aWFsaXplZC5cbiAgICovXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kcmF3Q2hhcnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWRyYXdzIHRoZSBjaGFydCBvbiBjaGFuZ2VzLlxuICAgKi9cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IElDaGFydElucHV0Q2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IGRhdGE6IElCYXJDaGFydERhdGFOb2RlW11bXSA9IGNoYW5nZXMuZGF0YT8uY3VycmVudFZhbHVlO1xuICAgIGNvbnN0IG9wdGlvbnM6IFBhcnRpYWw8SUJhckNoYXJ0T3B0aW9ucz4gPSBjaGFuZ2VzLm9wdGlvbnM/LmN1cnJlbnRWYWx1ZTtcbiAgICBpZiAoKHR5cGVvZiBkYXRhICE9PSAndW5kZWZpbmVkJyAmJiBkYXRhICE9PSBudWxsKSB8fCAodHlwZW9mIG9wdGlvbnMgIT09ICd1bmRlZmluZWQnICYmIG9wdGlvbnMgIT09IG51bGwpKSB7XG4gICAgICB0aGlzLmRyYXdDaGFydCgpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIGlkPVwie3sgY2hhcnRJZCB9fVwiICNjb250YWluZXI+PC9kaXY+XG4iXX0=
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyLWNoYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2xpZW50LWQzLWNoYXJ0cy9zcmMvbGliL2NvbXBvbmVudHMvYmFyLWNoYXJ0L2Jhci1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NsaWVudC1kMy1jaGFydHMvc3JjL2xpYi9jb21wb25lbnRzL2Jhci1jaGFydC9iYXItY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUluSSxPQUFPLEVBQUUsZ0JBQWdCLEVBQW1CLE1BQU0sMkNBQTJDLENBQUM7QUFDOUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUtyRCwrQkFBK0I7QUFPL0IsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGNBQXFDO0lBYTdFOzs7T0FHRztJQUNILFlBQ3FDLEdBQWEsRUFDTCxTQUEwQjtRQUVyRSxLQUFLLEVBQUUsQ0FBQztRQUgyQixRQUFHLEdBQUgsR0FBRyxDQUFVO1FBQ0wsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFsQnZFLG9CQUFvQjtRQUNKLFlBQU8sR0FBRyxPQUFPLENBQUM7UUFFbEMsc0JBQXNCO1FBQ04sU0FBSSxHQUFhLEVBQUUsQ0FBQztRQUVwQyx5QkFBeUI7UUFDVCxZQUFPLEdBQWdCLEVBQUUsQ0FBQztJQWMxQyxDQUFDO0lBRUQscUNBQXFDO0lBQzNCLFlBQVk7UUFDcEIsTUFBTSxtQkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDL0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUkscUJBQXFCLENBQUMsS0FBSyxFQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLG1CQUFtQixDQUN6SCxDQUFDO1FBQ0YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksS0FBSyxFQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLG1CQUFtQixDQUN6SCxDQUFDO1FBQ0YsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQWdCO1lBQzNCLEtBQUs7WUFDTCxNQUFNO1lBQ04sVUFBVTtZQUNWLEdBQUcsSUFBSSxDQUFDLE9BQU87U0FDaEIsQ0FBQztRQUNGLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCx1QkFBdUI7SUFDYixTQUFTO1FBQ2pCLElBQUksT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLFdBQVcsRUFBRTtZQUN6QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQztJQUVELHdFQUF3RTtJQUNqRSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsb0NBQW9DO0lBQzdCLFdBQVcsQ0FBQyxPQUEyQjtRQUM1QyxNQUFNLElBQUksR0FBYSxPQUFPLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQztRQUNsRCxNQUFNLE9BQU8sR0FBZ0IsT0FBTyxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUM7UUFDM0QsSUFBSSxDQUFDLE9BQU8sSUFBSSxLQUFLLFdBQVcsSUFBSSxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLE9BQU8sS0FBSyxXQUFXLElBQUksT0FBTyxLQUFLLElBQUksQ0FBQyxFQUFFO1lBQzFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNsQjtJQUNILENBQUM7aUlBakVVLG9CQUFvQixrQkFrQnJCLFFBQVEsYUFDUixnQkFBZ0I7cUhBbkJmLG9CQUFvQiwyUUNuQmpDLG1FQUNBOzsyRkRrQmEsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLGVBQWUsbUJBR1IsdUJBQXVCLENBQUMsTUFBTTs7MEJBb0I1QyxNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLE1BQU07MkJBQUMsZ0JBQWdCO3lDQWpCVixPQUFPO3NCQUF0QixLQUFLO2dCQUdVLElBQUk7c0JBQW5CLEtBQUs7Z0JBR1UsT0FBTztzQkFBdEIsS0FBSztnQkFHa0MsU0FBUztzQkFBaEQsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSUJhckNoYXJ0T3B0aW9ucywgVEJhckNoYXJ0RGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYmFyLWNoYXJ0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBJQ2hhcnRJbnB1dENoYW5nZXMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2NoYXJ0LWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRDNfQ0hBUlRfRkFDVE9SWSwgSUQzQ2hhcnRGYWN0b3J5IH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2QzLWNoYXJ0LWZhY3RvcnkucHJvdmlkZXInO1xuaW1wb3J0IHsgZGVmYXVsdEJhckNoYXJ0Q29uZmlnIH0gZnJvbSAnLi4vLi4vdXRpbC9iYXItY2hhcnQudXRpbCc7XG5pbXBvcnQgeyBBcHBEM0NoYXJ0QmFzZSB9IGZyb20gJy4uL19iYXNlL2NoYXJ0LmJhc2UnO1xuXG50eXBlIFRCYXJEYXRhID0gVEJhckNoYXJ0RGF0YTtcbnR5cGUgVEJhck9wdGlvbnMgPSBQYXJ0aWFsPElCYXJDaGFydE9wdGlvbnM+O1xuXG4vKiogVGhlIGJhciBjaGFydCBjb21wb25lbnQuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYmFyLWNoYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Jhci1jaGFydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Jhci1jaGFydC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQXBwQmFyQ2hhcnRDb21wb25lbnQgZXh0ZW5kcyBBcHBEM0NoYXJ0QmFzZTxUQmFyRGF0YSwgVEJhck9wdGlvbnM+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgLyoqIFRoZSBjaGFydCBpZC4gKi9cbiAgQElucHV0KCkgcHVibGljIGNoYXJ0SWQgPSAnYmFyLTAnO1xuXG4gIC8qKiBUaGUgY2hhcnQgZGF0YS4gKi9cbiAgQElucHV0KCkgcHVibGljIGRhdGE6IFRCYXJEYXRhID0gW107XG5cbiAgLyoqIFRoZSBjaGFydCBvcHRpb25zLiAqL1xuICBASW5wdXQoKSBwdWJsaWMgb3B0aW9uczogVEJhck9wdGlvbnMgPSB7fTtcblxuICAvKiogRDMgY2hhcnQgdmlldyBjaGlsZCByZWZlcmVuY2UuICovXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIHB1YmxpYyByZWFkb25seSBjb250YWluZXI/OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAvKipcbiAgICogQHBhcmFtIGRvYyBUaGUgd2ViIHBhZ2UncyBEb2N1bWVudCBvYmplY3QuXG4gICAqIEBwYXJhbSBkM0ZhY3RvcnkgRDMgY2hhcnQgZmFjdG9yeS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jOiBEb2N1bWVudCxcbiAgICBASW5qZWN0KEQzX0NIQVJUX0ZBQ1RPUlkpIHByaXZhdGUgcmVhZG9ubHkgZDNGYWN0b3J5OiBJRDNDaGFydEZhY3RvcnksXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKiogVGhlIGNoYXJ0IG9wdGlvbnMgY29uc3RydWN0b3IuICovXG4gIHByb3RlY3RlZCBjaGFydE9wdGlvbnMoKTogVEJhck9wdGlvbnMge1xuICAgIGNvbnN0IGJvZHlXaWR0aEFkanVzdG1lbnQgPSAxMDtcbiAgICBjb25zdCB3aWR0aCA9IE1hdGgubWluKFxuICAgICAgdGhpcy5vcHRpb25zLndpZHRoID8/IGRlZmF1bHRCYXJDaGFydENvbmZpZy53aWR0aCxcbiAgICAgIHRoaXMuZG9jLmJvZHkuY2xpZW50V2lkdGggLSBkZWZhdWx0QmFyQ2hhcnRDb25maWcubWFyZ2luLmxlZnQgLSBkZWZhdWx0QmFyQ2hhcnRDb25maWcubWFyZ2luLnJpZ2h0IC0gYm9keVdpZHRoQWRqdXN0bWVudCxcbiAgICApO1xuICAgIGNvbnN0IGhlaWdodCA9IE1hdGgubWluKFxuICAgICAgdGhpcy5vcHRpb25zLmhlaWdodCA/PyB3aWR0aCxcbiAgICAgIHRoaXMuZG9jLmJvZHkuY2xpZW50V2lkdGggLSBkZWZhdWx0QmFyQ2hhcnRDb25maWcubWFyZ2luLnRvcCAtIGRlZmF1bHRCYXJDaGFydENvbmZpZy5tYXJnaW4uYm90dG9tIC0gYm9keVdpZHRoQWRqdXN0bWVudCxcbiAgICApO1xuICAgIGNvbnN0IHlBeGlzVGlja3MgPSBNYXRoLm1heCguLi50aGlzLmRhdGEubWFwKGl0ZW0gPT4gaXRlbS52YWx1ZSkpO1xuICAgIGNvbnN0IG9wdGlvbnM6IFRCYXJPcHRpb25zID0ge1xuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHQsXG4gICAgICB5QXhpc1RpY2tzLFxuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgIH07XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cblxuICAvKiogRHJhd3MgdGhlIGNoYXJ0LiAqL1xuICBwcm90ZWN0ZWQgZHJhd0NoYXJ0KCk6IHZvaWQge1xuICAgIGlmICh0eXBlb2YgdGhpcy5jb250YWluZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jaGFydE9wdGlvbnMoKTtcbiAgICAgIHRoaXMuZDNGYWN0b3J5LmRyYXdCYXJDaGFydCh0aGlzLmNvbnRhaW5lciwgdGhpcy5kYXRhLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICAvKiogQWN0dWFsbHkgZHJhd3MgdGhlIGNoYXJ0IGFmdGVyIHRoZSBjb21wb25lbnQgdmlldyBpcyBpbml0aWFsaXplZC4gKi9cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRyYXdDaGFydCgpO1xuICB9XG5cbiAgLyoqIFJlZHJhd3MgdGhlIGNoYXJ0IG9uIGNoYW5nZXMuICovXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBJQ2hhcnRJbnB1dENoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCBkYXRhOiBUQmFyRGF0YSA9IGNoYW5nZXMuZGF0YT8uY3VycmVudFZhbHVlO1xuICAgIGNvbnN0IG9wdGlvbnM6IFRCYXJPcHRpb25zID0gY2hhbmdlcy5vcHRpb25zPy5jdXJyZW50VmFsdWU7XG4gICAgaWYgKCh0eXBlb2YgZGF0YSAhPT0gJ3VuZGVmaW5lZCcgJiYgZGF0YSAhPT0gbnVsbCkgfHwgKHR5cGVvZiBvcHRpb25zICE9PSAndW5kZWZpbmVkJyAmJiBvcHRpb25zICE9PSBudWxsKSkge1xuICAgICAgdGhpcy5kcmF3Q2hhcnQoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBpZD1cInt7IGNoYXJ0SWQgfX1cIiAjY29udGFpbmVyPjwvZGl2PlxuIl19
@@ -1,33 +1,31 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
2
  import { ChangeDetectionStrategy, Component, ElementRef, Inject, Input, ViewChild } from '@angular/core';
3
3
  import { D3_CHART_FACTORY } from '../../providers/d3-chart-factory.provider';
4
+ import { AppD3ChartBase } from '../_base/chart.base';
4
5
  import * as i0 from "@angular/core";
5
- export class AppForceDirectedChartComponent {
6
+ /** The force directed chart component. */
7
+ export class AppForceDirectedChartComponent extends AppD3ChartBase {
8
+ /**
9
+ * @param doc The web page's Document object.
10
+ * @param d3Factory D3 chart factory.
11
+ */
6
12
  constructor(doc, d3Factory) {
13
+ super();
7
14
  this.doc = doc;
8
15
  this.d3Factory = d3Factory;
9
- /**
10
- * The chart identifier.
11
- */
16
+ /** The chart identifier. */
12
17
  this.chartId = 'force-0';
13
- /**
14
- * The chart data.
15
- */
18
+ /** The chart data. */
16
19
  this.data = {
17
20
  domains: [],
18
21
  entities: [],
19
22
  links: [],
20
23
  nodes: [],
21
24
  };
22
- /**
23
- * The chart options.
24
- */
25
+ /** The chart options. */
25
26
  this.options = {};
26
27
  }
27
- /**
28
- * The chart options constructor.
29
- * @returns chart options
30
- */
28
+ /** The chart options constructor. */
31
29
  chartOptions() {
32
30
  const margin = { top: 50, right: 50, bottom: 50, left: 50 };
33
31
  const minWidth = 350;
@@ -40,24 +38,18 @@ export class AppForceDirectedChartComponent {
40
38
  const options = { width, height, margin, ...this.options };
41
39
  return options;
42
40
  }
43
- /**
44
- * Draws the chart.
45
- */
41
+ /** Draws the chart. */
46
42
  drawChart() {
47
43
  if (typeof this.container !== 'undefined') {
48
44
  const options = this.chartOptions();
49
45
  this.d3Factory.drawForceDirectedChart(this.container, this.data, options);
50
46
  }
51
47
  }
52
- /**
53
- * Actually draws the chart after the component view is initialized.
54
- */
48
+ /** Actually draws the chart after the component view is initialized. */
55
49
  ngAfterViewInit() {
56
50
  this.drawChart();
57
51
  }
58
- /**
59
- * Redraws the chart on changes.
60
- */
52
+ /** Redraws the chart on changes. */
61
53
  ngOnChanges(changes) {
62
54
  const prevData = changes.data?.previousValue;
63
55
  const nextData = changes.data?.currentValue;
@@ -68,7 +60,7 @@ export class AppForceDirectedChartComponent {
68
60
  }
69
61
  }
70
62
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AppForceDirectedChartComponent, deps: [{ token: DOCUMENT }, { token: D3_CHART_FACTORY }], target: i0.ɵɵFactoryTarget.Component }); }
71
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: AppForceDirectedChartComponent, selector: "app-force-directed-chart", inputs: { chartId: "chartId", data: "data", options: "options" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"container\">\n <div id=\"{{ chartId }}\" #container></div>\n\n <small class=\"container--chart-title\">{{ options.chartTitle }}</small>\n</div>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center}:host .container{flex:0 1 auto}:host .container--chart-title{display:block;text-align:center}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
63
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: AppForceDirectedChartComponent, selector: "app-force-directed-chart", inputs: { chartId: "chartId", data: "data", options: "options" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"container\">\n <div id=\"{{ chartId }}\" #container></div>\n\n <small class=\"container--chart-title\">{{ options.chartTitle }}</small>\n</div>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center}:host .container{flex:0 1 auto}:host .container--chart-title{display:block;text-align:center}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
72
64
  }
73
65
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AppForceDirectedChartComponent, decorators: [{
74
66
  type: Component,
@@ -89,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
89
81
  type: ViewChild,
90
82
  args: ['container']
91
83
  }] } });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yY2UtZGlyZWN0ZWQtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jbGllbnQtZDMtY2hhcnRzL3NyYy9saWIvY29tcG9uZW50cy9mb3JjZS1kaXJlY3RlZC1jaGFydC9mb3JjZS1kaXJlY3RlZC1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NsaWVudC1kMy1jaGFydHMvc3JjL2xpYi9jb21wb25lbnRzL2ZvcmNlLWRpcmVjdGVkLWNoYXJ0L2ZvcmNlLWRpcmVjdGVkLWNoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkksT0FBTyxFQUFFLGdCQUFnQixFQUFtQixNQUFNLDJDQUEyQyxDQUFDOztBQVE5RixNQUFNLE9BQU8sOEJBQThCO0lBMEJ6QyxZQUNxQyxHQUFhLEVBQ0wsU0FBMEI7UUFEbEMsUUFBRyxHQUFILEdBQUcsQ0FBVTtRQUNMLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBM0J2RTs7V0FFRztRQUNhLFlBQU8sR0FBRyxTQUFTLENBQUM7UUFFcEM7O1dBRUc7UUFDYSxTQUFJLEdBQTRCO1lBQzlDLE9BQU8sRUFBRSxFQUFFO1lBQ1gsUUFBUSxFQUFFLEVBQUU7WUFDWixLQUFLLEVBQUUsRUFBRTtZQUNULEtBQUssRUFBRSxFQUFFO1NBQ1YsQ0FBQztRQUVGOztXQUVHO1FBQ2EsWUFBTyxHQUF3QyxFQUFFLENBQUM7SUFVL0QsQ0FBQztJQUVKOzs7T0FHRztJQUNLLFlBQVk7UUFDbEIsTUFBTSxNQUFNLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDNUQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ3JCLE1BQU0sU0FBUyxHQUFHO1lBQ2hCLEtBQUssRUFBRSxFQUFFO1lBQ1QsTUFBTSxFQUFFLEVBQUU7U0FDWCxDQUFDO1FBQ0YsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDM0csTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0csTUFBTSxPQUFPLEdBQXdDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDaEcsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssU0FBUztRQUNmLElBQUksT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLFdBQVcsRUFBRTtZQUN6QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDM0U7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXLENBQUMsT0FBMkI7UUFDNUMsTUFBTSxRQUFRLEdBQXdDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDO1FBQ2xGLE1BQU0sUUFBUSxHQUF3QyxPQUFPLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQztRQUNqRixNQUFNLE9BQU8sR0FBd0MsT0FBTyxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUM7UUFDbkYsSUFDRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUMxRyxDQUFDLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFBSSxPQUFPLEtBQUssSUFBSSxDQUFDLEVBQ3BEO1lBQ0EsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQztpSUE5RVUsOEJBQThCLGtCQTJCL0IsUUFBUSxhQUNSLGdCQUFnQjtxSEE1QmYsOEJBQThCLCtQQ2IzQyxrS0FLQTs7MkZEUWEsOEJBQThCO2tCQU4xQyxTQUFTOytCQUNFLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTTs7MEJBNkI1QyxNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLE1BQU07MkJBQUMsZ0JBQWdCO3lDQXhCVixPQUFPO3NCQUF0QixLQUFLO2dCQUtVLElBQUk7c0JBQW5CLEtBQUs7Z0JBVVUsT0FBTztzQkFBdEIsS0FBSztnQkFLbUMsU0FBUztzQkFBakQsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSUNoYXJ0SW5wdXRDaGFuZ2VzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9jaGFydC1jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElGb3JjZURpcmVjdGVkQ2hhcnREYXRhLCBJRm9yY2VEaXJlY3RlZENoYXJ0T3B0aW9ucyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZm9yY2UtZGlyZWN0ZWQtY2hhcnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEQzX0NIQVJUX0ZBQ1RPUlksIElEM0NoYXJ0RmFjdG9yeSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9kMy1jaGFydC1mYWN0b3J5LnByb3ZpZGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZvcmNlLWRpcmVjdGVkLWNoYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZvcmNlLWRpcmVjdGVkLWNoYXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9yY2UtZGlyZWN0ZWQtY2hhcnQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFwcEZvcmNlRGlyZWN0ZWRDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gIC8qKlxuICAgKiBUaGUgY2hhcnQgaWRlbnRpZmllci5cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBjaGFydElkID0gJ2ZvcmNlLTAnO1xuXG4gIC8qKlxuICAgKiBUaGUgY2hhcnQgZGF0YS5cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRhOiBJRm9yY2VEaXJlY3RlZENoYXJ0RGF0YSA9IHtcbiAgICBkb21haW5zOiBbXSxcbiAgICBlbnRpdGllczogW10sXG4gICAgbGlua3M6IFtdLFxuICAgIG5vZGVzOiBbXSxcbiAgfTtcblxuICAvKipcbiAgICogVGhlIGNoYXJ0IG9wdGlvbnMuXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgb3B0aW9uczogUGFydGlhbDxJRm9yY2VEaXJlY3RlZENoYXJ0T3B0aW9ucz4gPSB7fTtcblxuICAvKipcbiAgICogVGhlIGNoYXJ0IGNvbnRhaW5lciB2aWV3IGNoaWxkIHJlZmVyZW5jZS5cbiAgICovXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIHByaXZhdGUgcmVhZG9ubHkgY29udGFpbmVyPzogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2M6IERvY3VtZW50LFxuICAgIEBJbmplY3QoRDNfQ0hBUlRfRkFDVE9SWSkgcHJpdmF0ZSByZWFkb25seSBkM0ZhY3Rvcnk6IElEM0NoYXJ0RmFjdG9yeSxcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBUaGUgY2hhcnQgb3B0aW9ucyBjb25zdHJ1Y3Rvci5cbiAgICogQHJldHVybnMgY2hhcnQgb3B0aW9uc1xuICAgKi9cbiAgcHJpdmF0ZSBjaGFydE9wdGlvbnMoKSB7XG4gICAgY29uc3QgbWFyZ2luID0geyB0b3A6IDUwLCByaWdodDogNTAsIGJvdHRvbTogNTAsIGxlZnQ6IDUwIH07XG4gICAgY29uc3QgbWluV2lkdGggPSAzNTA7XG4gICAgY29uc3QgbW9kaWZpZXJzID0ge1xuICAgICAgd2lkdGg6IDEwLFxuICAgICAgaGVpZ2h0OiAyMCxcbiAgICB9O1xuICAgIGNvbnN0IHdpZHRoID0gTWF0aC5taW4obWluV2lkdGgsIHRoaXMuZG9jLmJvZHkuY2xpZW50V2lkdGggLSBtb2RpZmllcnMud2lkdGgpIC0gbWFyZ2luLmxlZnQgLSBtYXJnaW4ucmlnaHQ7XG4gICAgY29uc3QgaGVpZ2h0ID0gTWF0aC5taW4od2lkdGgsIHRoaXMuZG9jLmJvZHkuY2xpZW50SGVpZ2h0IC0gbWFyZ2luLnRvcCAtIG1hcmdpbi5ib3R0b20gLSBtb2RpZmllcnMuaGVpZ2h0KTtcbiAgICBjb25zdCBvcHRpb25zOiBQYXJ0aWFsPElGb3JjZURpcmVjdGVkQ2hhcnRPcHRpb25zPiA9IHsgd2lkdGgsIGhlaWdodCwgbWFyZ2luLCAuLi50aGlzLm9wdGlvbnMgfTtcbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBEcmF3cyB0aGUgY2hhcnQuXG4gICAqL1xuICBwcml2YXRlIGRyYXdDaGFydCgpIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuY29udGFpbmVyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY2hhcnRPcHRpb25zKCk7XG4gICAgICB0aGlzLmQzRmFjdG9yeS5kcmF3Rm9yY2VEaXJlY3RlZENoYXJ0KHRoaXMuY29udGFpbmVyLCB0aGlzLmRhdGEsIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBY3R1YWxseSBkcmF3cyB0aGUgY2hhcnQgYWZ0ZXIgdGhlIGNvbXBvbmVudCB2aWV3IGlzIGluaXRpYWxpemVkLlxuICAgKi9cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRyYXdDaGFydCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZHJhd3MgdGhlIGNoYXJ0IG9uIGNoYW5nZXMuXG4gICAqL1xuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogSUNoYXJ0SW5wdXRDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgcHJldkRhdGE6IElGb3JjZURpcmVjdGVkQ2hhcnREYXRhIHwgdW5kZWZpbmVkID0gY2hhbmdlcy5kYXRhPy5wcmV2aW91c1ZhbHVlO1xuICAgIGNvbnN0IG5leHREYXRhOiBJRm9yY2VEaXJlY3RlZENoYXJ0RGF0YSB8IHVuZGVmaW5lZCA9IGNoYW5nZXMuZGF0YT8uY3VycmVudFZhbHVlO1xuICAgIGNvbnN0IG9wdGlvbnM6IFBhcnRpYWw8SUZvcmNlRGlyZWN0ZWRDaGFydE9wdGlvbnM+ID0gY2hhbmdlcy5vcHRpb25zPy5jdXJyZW50VmFsdWU7XG4gICAgaWYgKFxuICAgICAgKEJvb2xlYW4oY2hhbmdlcy5kYXRhPy5jdXJyZW50VmFsdWUpICYmIChwcmV2RGF0YT8ubm9kZXMgPz8gW10pLmxlbmd0aCAhPT0gKG5leHREYXRhPy5ub2RlcyA/PyBbXSkubGVuZ3RoKSB8fFxuICAgICAgKHR5cGVvZiBvcHRpb25zICE9PSAndW5kZWZpbmVkJyAmJiBvcHRpb25zICE9PSBudWxsKVxuICAgICkge1xuICAgICAgdGhpcy5kcmF3Q2hhcnQoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgPGRpdiBpZD1cInt7IGNoYXJ0SWQgfX1cIiAjY29udGFpbmVyPjwvZGl2PlxuXG4gIDxzbWFsbCBjbGFzcz1cImNvbnRhaW5lci0tY2hhcnQtdGl0bGVcIj57eyBvcHRpb25zLmNoYXJ0VGl0bGUgfX08L3NtYWxsPlxuPC9kaXY+XG4iXX0=
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yY2UtZGlyZWN0ZWQtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jbGllbnQtZDMtY2hhcnRzL3NyYy9saWIvY29tcG9uZW50cy9mb3JjZS1kaXJlY3RlZC1jaGFydC9mb3JjZS1kaXJlY3RlZC1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NsaWVudC1kMy1jaGFydHMvc3JjL2xpYi9jb21wb25lbnRzL2ZvcmNlLWRpcmVjdGVkLWNoYXJ0L2ZvcmNlLWRpcmVjdGVkLWNoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkksT0FBTyxFQUFFLGdCQUFnQixFQUFtQixNQUFNLDJDQUEyQyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFLckQsMENBQTBDO0FBTzFDLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxjQUF5QztJQWtCM0Y7OztPQUdHO0lBQ0gsWUFDcUMsR0FBYSxFQUNMLFNBQTBCO1FBRXJFLEtBQUssRUFBRSxDQUFDO1FBSDJCLFFBQUcsR0FBSCxHQUFHLENBQVU7UUFDTCxjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQXZCdkUsNEJBQTRCO1FBQ1osWUFBTyxHQUFHLFNBQVMsQ0FBQztRQUVwQyxzQkFBc0I7UUFDTixTQUFJLEdBQWU7WUFDakMsT0FBTyxFQUFFLEVBQUU7WUFDWCxRQUFRLEVBQUUsRUFBRTtZQUNaLEtBQUssRUFBRSxFQUFFO1lBQ1QsS0FBSyxFQUFFLEVBQUU7U0FDVixDQUFDO1FBRUYseUJBQXlCO1FBQ1QsWUFBTyxHQUFrQixFQUFFLENBQUM7SUFjNUMsQ0FBQztJQUVELHFDQUFxQztJQUMzQixZQUFZO1FBQ3BCLE1BQU0sTUFBTSxHQUE0QixFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUNyRixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7UUFDckIsTUFBTSxTQUFTLEdBQUc7WUFDaEIsS0FBSyxFQUFFLEVBQUU7WUFDVCxNQUFNLEVBQUUsRUFBRTtTQUNYLENBQUM7UUFDRixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMzRyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzRyxNQUFNLE9BQU8sR0FBa0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxRSxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsdUJBQXVCO0lBQ2IsU0FBUztRQUNqQixJQUFJLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxXQUFXLEVBQUU7WUFDekMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQzNFO0lBQ0gsQ0FBQztJQUVELHdFQUF3RTtJQUNqRSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsb0NBQW9DO0lBQzdCLFdBQVcsQ0FBQyxPQUEyQjtRQUM1QyxNQUFNLFFBQVEsR0FBMkIsT0FBTyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUM7UUFDckUsTUFBTSxRQUFRLEdBQTJCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDO1FBQ3BFLE1BQU0sT0FBTyxHQUFrQixPQUFPLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQztRQUM3RCxJQUNFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQzFHLENBQUMsT0FBTyxPQUFPLEtBQUssV0FBVyxJQUFJLE9BQU8sS0FBSyxJQUFJLENBQUMsRUFDcEQ7WUFDQSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDbEI7SUFDSCxDQUFDO2lJQW5FVSw4QkFBOEIsa0JBdUIvQixRQUFRLGFBQ1IsZ0JBQWdCO3FIQXhCZiw4QkFBOEIsc1JDbEIzQyxrS0FLQTs7MkZEYWEsOEJBQThCO2tCQU4xQyxTQUFTOytCQUNFLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTTs7MEJBeUI1QyxNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLE1BQU07MkJBQUMsZ0JBQWdCO3lDQXRCVixPQUFPO3NCQUF0QixLQUFLO2dCQUdVLElBQUk7c0JBQW5CLEtBQUs7Z0JBUVUsT0FBTztzQkFBdEIsS0FBSztnQkFHa0MsU0FBUztzQkFBaEQsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSUNoYXJ0SW5wdXRDaGFuZ2VzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9jaGFydC1jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElGb3JjZURpcmVjdGVkQ2hhcnREYXRhLCBJRm9yY2VEaXJlY3RlZENoYXJ0T3B0aW9ucyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZm9yY2UtZGlyZWN0ZWQtY2hhcnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEQzX0NIQVJUX0ZBQ1RPUlksIElEM0NoYXJ0RmFjdG9yeSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9kMy1jaGFydC1mYWN0b3J5LnByb3ZpZGVyJztcbmltcG9ydCB7IEFwcEQzQ2hhcnRCYXNlIH0gZnJvbSAnLi4vX2Jhc2UvY2hhcnQuYmFzZSc7XG5cbnR5cGUgVEZvcmNlRGF0YSA9IElGb3JjZURpcmVjdGVkQ2hhcnREYXRhO1xudHlwZSBURm9yY2VPcHRpb25zID0gUGFydGlhbDxJRm9yY2VEaXJlY3RlZENoYXJ0T3B0aW9ucz47XG5cbi8qKiBUaGUgZm9yY2UgZGlyZWN0ZWQgY2hhcnQgY29tcG9uZW50LiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZvcmNlLWRpcmVjdGVkLWNoYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZvcmNlLWRpcmVjdGVkLWNoYXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9yY2UtZGlyZWN0ZWQtY2hhcnQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFwcEZvcmNlRGlyZWN0ZWRDaGFydENvbXBvbmVudCBleHRlbmRzIEFwcEQzQ2hhcnRCYXNlPFRGb3JjZURhdGEsIFRGb3JjZU9wdGlvbnM+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgLyoqIFRoZSBjaGFydCBpZGVudGlmaWVyLiAqL1xuICBASW5wdXQoKSBwdWJsaWMgY2hhcnRJZCA9ICdmb3JjZS0wJztcblxuICAvKiogVGhlIGNoYXJ0IGRhdGEuICovXG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRhOiBURm9yY2VEYXRhID0ge1xuICAgIGRvbWFpbnM6IFtdLFxuICAgIGVudGl0aWVzOiBbXSxcbiAgICBsaW5rczogW10sXG4gICAgbm9kZXM6IFtdLFxuICB9O1xuXG4gIC8qKiBUaGUgY2hhcnQgb3B0aW9ucy4gKi9cbiAgQElucHV0KCkgcHVibGljIG9wdGlvbnM6IFRGb3JjZU9wdGlvbnMgPSB7fTtcblxuICAvKiogVGhlIGNoYXJ0IGNvbnRhaW5lciB2aWV3IGNoaWxkIHJlZmVyZW5jZS4gKi9cbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJykgcHVibGljIHJlYWRvbmx5IGNvbnRhaW5lcj86IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gZG9jIFRoZSB3ZWIgcGFnZSdzIERvY3VtZW50IG9iamVjdC5cbiAgICogQHBhcmFtIGQzRmFjdG9yeSBEMyBjaGFydCBmYWN0b3J5LlxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2M6IERvY3VtZW50LFxuICAgIEBJbmplY3QoRDNfQ0hBUlRfRkFDVE9SWSkgcHJpdmF0ZSByZWFkb25seSBkM0ZhY3Rvcnk6IElEM0NoYXJ0RmFjdG9yeSxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKiBUaGUgY2hhcnQgb3B0aW9ucyBjb25zdHJ1Y3Rvci4gKi9cbiAgcHJvdGVjdGVkIGNoYXJ0T3B0aW9ucygpOiBURm9yY2VPcHRpb25zIHtcbiAgICBjb25zdCBtYXJnaW46IFRGb3JjZU9wdGlvbnNbJ21hcmdpbiddID0geyB0b3A6IDUwLCByaWdodDogNTAsIGJvdHRvbTogNTAsIGxlZnQ6IDUwIH07XG4gICAgY29uc3QgbWluV2lkdGggPSAzNTA7XG4gICAgY29uc3QgbW9kaWZpZXJzID0ge1xuICAgICAgd2lkdGg6IDEwLFxuICAgICAgaGVpZ2h0OiAyMCxcbiAgICB9O1xuICAgIGNvbnN0IHdpZHRoID0gTWF0aC5taW4obWluV2lkdGgsIHRoaXMuZG9jLmJvZHkuY2xpZW50V2lkdGggLSBtb2RpZmllcnMud2lkdGgpIC0gbWFyZ2luLmxlZnQgLSBtYXJnaW4ucmlnaHQ7XG4gICAgY29uc3QgaGVpZ2h0ID0gTWF0aC5taW4od2lkdGgsIHRoaXMuZG9jLmJvZHkuY2xpZW50SGVpZ2h0IC0gbWFyZ2luLnRvcCAtIG1hcmdpbi5ib3R0b20gLSBtb2RpZmllcnMuaGVpZ2h0KTtcbiAgICBjb25zdCBvcHRpb25zOiBURm9yY2VPcHRpb25zID0geyB3aWR0aCwgaGVpZ2h0LCBtYXJnaW4sIC4uLnRoaXMub3B0aW9ucyB9O1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG5cbiAgLyoqIERyYXdzIHRoZSBjaGFydC4gKi9cbiAgcHJvdGVjdGVkIGRyYXdDaGFydCgpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuY29udGFpbmVyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY2hhcnRPcHRpb25zKCk7XG4gICAgICB0aGlzLmQzRmFjdG9yeS5kcmF3Rm9yY2VEaXJlY3RlZENoYXJ0KHRoaXMuY29udGFpbmVyLCB0aGlzLmRhdGEsIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBBY3R1YWxseSBkcmF3cyB0aGUgY2hhcnQgYWZ0ZXIgdGhlIGNvbXBvbmVudCB2aWV3IGlzIGluaXRpYWxpemVkLiAqL1xuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZHJhd0NoYXJ0KCk7XG4gIH1cblxuICAvKiogUmVkcmF3cyB0aGUgY2hhcnQgb24gY2hhbmdlcy4gKi9cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IElDaGFydElucHV0Q2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IHByZXZEYXRhOiBURm9yY2VEYXRhIHwgdW5kZWZpbmVkID0gY2hhbmdlcy5kYXRhPy5wcmV2aW91c1ZhbHVlO1xuICAgIGNvbnN0IG5leHREYXRhOiBURm9yY2VEYXRhIHwgdW5kZWZpbmVkID0gY2hhbmdlcy5kYXRhPy5jdXJyZW50VmFsdWU7XG4gICAgY29uc3Qgb3B0aW9uczogVEZvcmNlT3B0aW9ucyA9IGNoYW5nZXMub3B0aW9ucz8uY3VycmVudFZhbHVlO1xuICAgIGlmIChcbiAgICAgIChCb29sZWFuKGNoYW5nZXMuZGF0YT8uY3VycmVudFZhbHVlKSAmJiAocHJldkRhdGE/Lm5vZGVzID8/IFtdKS5sZW5ndGggIT09IChuZXh0RGF0YT8ubm9kZXMgPz8gW10pLmxlbmd0aCkgfHxcbiAgICAgICh0eXBlb2Ygb3B0aW9ucyAhPT0gJ3VuZGVmaW5lZCcgJiYgb3B0aW9ucyAhPT0gbnVsbClcbiAgICApIHtcbiAgICAgIHRoaXMuZHJhd0NoYXJ0KCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gIDxkaXYgaWQ9XCJ7eyBjaGFydElkIH19XCIgI2NvbnRhaW5lcj48L2Rpdj5cblxuICA8c21hbGwgY2xhc3M9XCJjb250YWluZXItLWNoYXJ0LXRpdGxlXCI+e3sgb3B0aW9ucy5jaGFydFRpdGxlIH19PC9zbWFsbD5cbjwvZGl2PlxuIl19
@@ -1,32 +1,28 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
2
  import { ChangeDetectionStrategy, Component, ElementRef, Inject, Input, ViewChild } from '@angular/core';
3
3
  import { D3_CHART_FACTORY } from '../../providers/d3-chart-factory.provider';
4
+ import { AppD3ChartBase } from '../_base/chart.base';
4
5
  import * as i0 from "@angular/core";
5
- export class AppGaugeChartComponent {
6
+ /** The gauge chart component. */
7
+ export class AppGaugeChartComponent extends AppD3ChartBase {
8
+ /**
9
+ * @param doc The web page's Document object.
10
+ * @param d3Factory D3 chart factory.
11
+ */
6
12
  constructor(doc, d3Factory) {
13
+ super();
7
14
  this.doc = doc;
8
15
  this.d3Factory = d3Factory;
9
- /**
10
- * The chart id.
11
- */
16
+ /** The chart id. */
12
17
  this.chartId = 'gauge-0';
13
- /**
14
- * The value of the gauge chart.
15
- */
18
+ /** The value of the gauge chart. */
16
19
  this.value = 0;
17
- /**
18
- * The chart data.
19
- */
20
+ /** The chart data. */
20
21
  this.data = [];
21
- /**
22
- * The chart options.
23
- */
22
+ /** The chart options. */
24
23
  this.options = {};
25
24
  }
26
- /**
27
- * The chart options constructor.
28
- * @returns chart options
29
- */
25
+ /** The chart options constructor. */
30
26
  chartOptions() {
31
27
  const margin = { top: 50, right: 50, bottom: 50, left: 50 };
32
28
  const minWidth = 350;
@@ -45,24 +41,18 @@ export class AppGaugeChartComponent {
45
41
  };
46
42
  return options;
47
43
  }
48
- /**
49
- * Draws the chart.
50
- */
44
+ /** Draws the chart. */
51
45
  drawChart() {
52
46
  if (typeof this.container !== 'undefined') {
53
47
  const options = this.chartOptions();
54
48
  this.d3Factory.drawGaugeChart(this.container, this.data, options);
55
49
  }
56
50
  }
57
- /**
58
- * Actually draws the chart after the component view is initialized.
59
- */
51
+ /** Actually draws the chart after the component view is initialized. */
60
52
  ngAfterViewInit() {
61
53
  this.drawChart();
62
54
  }
63
- /**
64
- * Redraws the chart on changes.
65
- */
55
+ /** Redraws the chart on changes. */
66
56
  ngOnChanges(changes) {
67
57
  const data = changes.data?.currentValue;
68
58
  const options = changes.options?.currentValue;
@@ -71,7 +61,7 @@ export class AppGaugeChartComponent {
71
61
  }
72
62
  }
73
63
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AppGaugeChartComponent, deps: [{ token: DOCUMENT }, { token: D3_CHART_FACTORY }], target: i0.ɵɵFactoryTarget.Component }); }
74
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: AppGaugeChartComponent, selector: "app-gauge-chart", inputs: { chartId: "chartId", value: "value", data: "data", options: "options" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"container\">\n <div id=\"{{ chartId }}\" #container></div>\n\n <small class=\"container--chart-title\">{{ options.chartTitle }}</small>\n</div>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center}:host canvas{width:auto!important;height:150px}:host .container{flex:0 1 auto}:host .container--chart-title{display:block;text-align:center}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
64
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: AppGaugeChartComponent, selector: "app-gauge-chart", inputs: { chartId: "chartId", value: "value", data: "data", options: "options" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"container\">\n <div id=\"{{ chartId }}\" #container></div>\n\n <small class=\"container--chart-title\">{{ options.chartTitle }}</small>\n</div>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center}:host canvas{width:auto!important;height:150px}:host .container{flex:0 1 auto}:host .container--chart-title{display:block;text-align:center}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
75
65
  }
76
66
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AppGaugeChartComponent, decorators: [{
77
67
  type: Component,
@@ -94,4 +84,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
94
84
  type: ViewChild,
95
85
  args: ['container']
96
86
  }] } });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2F1Z2UtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jbGllbnQtZDMtY2hhcnRzL3NyYy9saWIvY29tcG9uZW50cy9nYXVnZS1jaGFydC9nYXVnZS1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NsaWVudC1kMy1jaGFydHMvc3JjL2xpYi9jb21wb25lbnRzL2dhdWdlLWNoYXJ0L2dhdWdlLWNoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkksT0FBTyxFQUFFLGdCQUFnQixFQUFtQixNQUFNLDJDQUEyQyxDQUFDOztBQVE5RixNQUFNLE9BQU8sc0JBQXNCO0lBMEJqQyxZQUNxQyxHQUFhLEVBQ0wsU0FBMEI7UUFEbEMsUUFBRyxHQUFILEdBQUcsQ0FBVTtRQUNMLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBM0J2RTs7V0FFRztRQUNhLFlBQU8sR0FBRyxTQUFTLENBQUM7UUFFcEM7O1dBRUc7UUFDYSxVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRTFCOztXQUVHO1FBQ2EsU0FBSSxHQUEwQixFQUFFLENBQUM7UUFFakQ7O1dBRUc7UUFDYSxZQUFPLEdBQWdDLEVBQUUsQ0FBQztJQVV2RCxDQUFDO0lBRUo7OztPQUdHO0lBQ0ssWUFBWTtRQUNsQixNQUFNLE1BQU0sR0FBaUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDMUYsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ3JCLE1BQU0sU0FBUyxHQUFHO1lBQ2hCLEtBQUssRUFBRSxFQUFFO1lBQ1QsTUFBTSxFQUFFLEVBQUU7U0FDWCxDQUFDO1FBQ0YsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDM0csTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0csTUFBTSxPQUFPLEdBQWdDO1lBQzNDLEtBQUs7WUFDTCxNQUFNO1lBQ04sTUFBTTtZQUNOLEdBQUcsSUFBSSxDQUFDLE9BQU87WUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDbEIsQ0FBQztRQUNGLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNLLFNBQVM7UUFDZixJQUFJLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxXQUFXLEVBQUU7WUFDekMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNuRTtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLGVBQWU7UUFDcEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVcsQ0FBQyxPQUEyQjtRQUM1QyxNQUFNLElBQUksR0FBc0MsT0FBTyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUM7UUFDM0UsTUFBTSxPQUFPLEdBQWdDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDO1FBQzNFLElBQUksQ0FBQyxPQUFPLElBQUksS0FBSyxXQUFXLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxPQUFPLEtBQUssV0FBVyxJQUFJLE9BQU8sS0FBSyxJQUFJLENBQUMsRUFBRTtZQUMxRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDbEI7SUFDSCxDQUFDO2lJQWhGVSxzQkFBc0Isa0JBMkJ2QixRQUFRLGFBQ1IsZ0JBQWdCO3FIQTVCZixzQkFBc0Isc1FDYm5DLGtLQUtBOzsyRkRRYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0UsaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU07OzBCQTZCNUMsTUFBTTsyQkFBQyxRQUFROzswQkFDZixNQUFNOzJCQUFDLGdCQUFnQjt5Q0F4QlYsT0FBTztzQkFBdEIsS0FBSztnQkFLVSxLQUFLO3NCQUFwQixLQUFLO2dCQUtVLElBQUk7c0JBQW5CLEtBQUs7Z0JBS1UsT0FBTztzQkFBdEIsS0FBSztnQkFLbUMsU0FBUztzQkFBakQsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSUNoYXJ0SW5wdXRDaGFuZ2VzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9jaGFydC1jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElHYXVnZUNoYXJ0RGF0YU5vZGUsIElHYXVnZUNoYXJ0T3B0aW9ucyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZ2F1Z2UtY2hhcnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEQzX0NIQVJUX0ZBQ1RPUlksIElEM0NoYXJ0RmFjdG9yeSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9kMy1jaGFydC1mYWN0b3J5LnByb3ZpZGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWdhdWdlLWNoYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dhdWdlLWNoYXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ2F1Z2UtY2hhcnQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFwcEdhdWdlQ2hhcnRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICAvKipcbiAgICogVGhlIGNoYXJ0IGlkLlxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGNoYXJ0SWQgPSAnZ2F1Z2UtMCc7XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgZ2F1Z2UgY2hhcnQuXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgdmFsdWUgPSAwO1xuXG4gIC8qKlxuICAgKiBUaGUgY2hhcnQgZGF0YS5cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRhOiBJR2F1Z2VDaGFydERhdGFOb2RlW10gPSBbXTtcblxuICAvKipcbiAgICogVGhlIGNoYXJ0IG9wdGlvbnMuXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgb3B0aW9uczogUGFydGlhbDxJR2F1Z2VDaGFydE9wdGlvbnM+ID0ge307XG5cbiAgLyoqXG4gICAqIEQzIGNoYXJ0IHZpZXcgY2hpbGQgcmVmZXJlbmNlLlxuICAgKi9cbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJykgcHJpdmF0ZSByZWFkb25seSBjb250YWluZXI/OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IGRvYzogRG9jdW1lbnQsXG4gICAgQEluamVjdChEM19DSEFSVF9GQUNUT1JZKSBwcml2YXRlIHJlYWRvbmx5IGQzRmFjdG9yeTogSUQzQ2hhcnRGYWN0b3J5LFxuICApIHt9XG5cbiAgLyoqXG4gICAqIFRoZSBjaGFydCBvcHRpb25zIGNvbnN0cnVjdG9yLlxuICAgKiBAcmV0dXJucyBjaGFydCBvcHRpb25zXG4gICAqL1xuICBwcml2YXRlIGNoYXJ0T3B0aW9ucygpIHtcbiAgICBjb25zdCBtYXJnaW46IElHYXVnZUNoYXJ0T3B0aW9uc1snbWFyZ2luJ10gPSB7IHRvcDogNTAsIHJpZ2h0OiA1MCwgYm90dG9tOiA1MCwgbGVmdDogNTAgfTtcbiAgICBjb25zdCBtaW5XaWR0aCA9IDM1MDtcbiAgICBjb25zdCBtb2RpZmllcnMgPSB7XG4gICAgICB3aWR0aDogMTAsXG4gICAgICBoZWlnaHQ6IDIwLFxuICAgIH07XG4gICAgY29uc3Qgd2lkdGggPSBNYXRoLm1pbihtaW5XaWR0aCwgdGhpcy5kb2MuYm9keS5jbGllbnRXaWR0aCAtIG1vZGlmaWVycy53aWR0aCkgLSBtYXJnaW4ubGVmdCAtIG1hcmdpbi5yaWdodDtcbiAgICBjb25zdCBoZWlnaHQgPSBNYXRoLm1pbih3aWR0aCwgdGhpcy5kb2MuYm9keS5jbGllbnRIZWlnaHQgLSBtYXJnaW4udG9wIC0gbWFyZ2luLmJvdHRvbSAtIG1vZGlmaWVycy5oZWlnaHQpO1xuICAgIGNvbnN0IG9wdGlvbnM6IFBhcnRpYWw8SUdhdWdlQ2hhcnRPcHRpb25zPiA9IHtcbiAgICAgIHdpZHRoLFxuICAgICAgaGVpZ2h0LFxuICAgICAgbWFyZ2luLFxuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgfTtcbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBEcmF3cyB0aGUgY2hhcnQuXG4gICAqL1xuICBwcml2YXRlIGRyYXdDaGFydCgpIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuY29udGFpbmVyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY2hhcnRPcHRpb25zKCk7XG4gICAgICB0aGlzLmQzRmFjdG9yeS5kcmF3R2F1Z2VDaGFydCh0aGlzLmNvbnRhaW5lciwgdGhpcy5kYXRhLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWN0dWFsbHkgZHJhd3MgdGhlIGNoYXJ0IGFmdGVyIHRoZSBjb21wb25lbnQgdmlldyBpcyBpbml0aWFsaXplZC5cbiAgICovXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kcmF3Q2hhcnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWRyYXdzIHRoZSBjaGFydCBvbiBjaGFuZ2VzLlxuICAgKi9cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IElDaGFydElucHV0Q2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IGRhdGE6IElHYXVnZUNoYXJ0RGF0YU5vZGVbXSB8IHVuZGVmaW5lZCA9IGNoYW5nZXMuZGF0YT8uY3VycmVudFZhbHVlO1xuICAgIGNvbnN0IG9wdGlvbnM6IFBhcnRpYWw8SUdhdWdlQ2hhcnRPcHRpb25zPiA9IGNoYW5nZXMub3B0aW9ucz8uY3VycmVudFZhbHVlO1xuICAgIGlmICgodHlwZW9mIGRhdGEgIT09ICd1bmRlZmluZWQnICYmIGRhdGEgIT09IG51bGwpIHx8ICh0eXBlb2Ygb3B0aW9ucyAhPT0gJ3VuZGVmaW5lZCcgJiYgb3B0aW9ucyAhPT0gbnVsbCkpIHtcbiAgICAgIHRoaXMuZHJhd0NoYXJ0KCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gIDxkaXYgaWQ9XCJ7eyBjaGFydElkIH19XCIgI2NvbnRhaW5lcj48L2Rpdj5cblxuICA8c21hbGwgY2xhc3M9XCJjb250YWluZXItLWNoYXJ0LXRpdGxlXCI+e3sgb3B0aW9ucy5jaGFydFRpdGxlIH19PC9zbWFsbD5cbjwvZGl2PlxuIl19
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2F1Z2UtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jbGllbnQtZDMtY2hhcnRzL3NyYy9saWIvY29tcG9uZW50cy9nYXVnZS1jaGFydC9nYXVnZS1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NsaWVudC1kMy1jaGFydHMvc3JjL2xpYi9jb21wb25lbnRzL2dhdWdlLWNoYXJ0L2dhdWdlLWNoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkksT0FBTyxFQUFFLGdCQUFnQixFQUFtQixNQUFNLDJDQUEyQyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFLckQsaUNBQWlDO0FBT2pDLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxjQUF5QztJQWdCbkY7OztPQUdHO0lBQ0gsWUFDcUMsR0FBYSxFQUNMLFNBQTBCO1FBRXJFLEtBQUssRUFBRSxDQUFDO1FBSDJCLFFBQUcsR0FBSCxHQUFHLENBQVU7UUFDTCxjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQXJCdkUsb0JBQW9CO1FBQ0osWUFBTyxHQUFHLFNBQVMsQ0FBQztRQUVwQyxvQ0FBb0M7UUFDcEIsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUUxQixzQkFBc0I7UUFDTixTQUFJLEdBQWUsRUFBRSxDQUFDO1FBRXRDLHlCQUF5QjtRQUNULFlBQU8sR0FBa0IsRUFBRSxDQUFDO0lBYzVDLENBQUM7SUFFRCxxQ0FBcUM7SUFDM0IsWUFBWTtRQUNwQixNQUFNLE1BQU0sR0FBNEIsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDckYsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ3JCLE1BQU0sU0FBUyxHQUFHO1lBQ2hCLEtBQUssRUFBRSxFQUFFO1lBQ1QsTUFBTSxFQUFFLEVBQUU7U0FDWCxDQUFDO1FBQ0YsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDM0csTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0csTUFBTSxPQUFPLEdBQWtCO1lBQzdCLEtBQUs7WUFDTCxNQUFNO1lBQ04sTUFBTTtZQUNOLEdBQUcsSUFBSSxDQUFDLE9BQU87WUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDbEIsQ0FBQztRQUNGLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCx1QkFBdUI7SUFDYixTQUFTO1FBQ2pCLElBQUksT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLFdBQVcsRUFBRTtZQUN6QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ25FO0lBQ0gsQ0FBQztJQUVELHdFQUF3RTtJQUNqRSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsb0NBQW9DO0lBQzdCLFdBQVcsQ0FBQyxPQUEyQjtRQUM1QyxNQUFNLElBQUksR0FBMkIsT0FBTyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUM7UUFDaEUsTUFBTSxPQUFPLEdBQWtCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDO1FBQzdELElBQUksQ0FBQyxPQUFPLElBQUksS0FBSyxXQUFXLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxPQUFPLEtBQUssV0FBVyxJQUFJLE9BQU8sS0FBSyxJQUFJLENBQUMsRUFBRTtZQUMxRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDbEI7SUFDSCxDQUFDO2lJQW5FVSxzQkFBc0Isa0JBcUJ2QixRQUFRLGFBQ1IsZ0JBQWdCO3FIQXRCZixzQkFBc0IsNlJDbEJuQyxrS0FLQTs7MkZEYWEsc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNFLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNOzswQkF1QjVDLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxnQkFBZ0I7eUNBcEJWLE9BQU87c0JBQXRCLEtBQUs7Z0JBR1UsS0FBSztzQkFBcEIsS0FBSztnQkFHVSxJQUFJO3NCQUFuQixLQUFLO2dCQUdVLE9BQU87c0JBQXRCLEtBQUs7Z0JBR2tDLFNBQVM7c0JBQWhELFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IElDaGFydElucHV0Q2hhbmdlcyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvY2hhcnQtY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBJR2F1Z2VDaGFydERhdGFOb2RlLCBJR2F1Z2VDaGFydE9wdGlvbnMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2dhdWdlLWNoYXJ0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBEM19DSEFSVF9GQUNUT1JZLCBJRDNDaGFydEZhY3RvcnkgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvZDMtY2hhcnQtZmFjdG9yeS5wcm92aWRlcic7XG5pbXBvcnQgeyBBcHBEM0NoYXJ0QmFzZSB9IGZyb20gJy4uL19iYXNlL2NoYXJ0LmJhc2UnO1xuXG50eXBlIFRHYXVnZURhdGEgPSBJR2F1Z2VDaGFydERhdGFOb2RlW107XG50eXBlIFRHYXVnZU9wdGlvbnMgPSBQYXJ0aWFsPElHYXVnZUNoYXJ0T3B0aW9ucz47XG5cbi8qKiBUaGUgZ2F1Z2UgY2hhcnQgY29tcG9uZW50LiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWdhdWdlLWNoYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dhdWdlLWNoYXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ2F1Z2UtY2hhcnQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFwcEdhdWdlQ2hhcnRDb21wb25lbnQgZXh0ZW5kcyBBcHBEM0NoYXJ0QmFzZTxUR2F1Z2VEYXRhLCBUR2F1Z2VPcHRpb25zPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gIC8qKiBUaGUgY2hhcnQgaWQuICovXG4gIEBJbnB1dCgpIHB1YmxpYyBjaGFydElkID0gJ2dhdWdlLTAnO1xuXG4gIC8qKiBUaGUgdmFsdWUgb2YgdGhlIGdhdWdlIGNoYXJ0LiAqL1xuICBASW5wdXQoKSBwdWJsaWMgdmFsdWUgPSAwO1xuXG4gIC8qKiBUaGUgY2hhcnQgZGF0YS4gKi9cbiAgQElucHV0KCkgcHVibGljIGRhdGE6IFRHYXVnZURhdGEgPSBbXTtcblxuICAvKiogVGhlIGNoYXJ0IG9wdGlvbnMuICovXG4gIEBJbnB1dCgpIHB1YmxpYyBvcHRpb25zOiBUR2F1Z2VPcHRpb25zID0ge307XG5cbiAgLyoqIEQzIGNoYXJ0IHZpZXcgY2hpbGQgcmVmZXJlbmNlLiAqL1xuICBAVmlld0NoaWxkKCdjb250YWluZXInKSBwdWJsaWMgcmVhZG9ubHkgY29udGFpbmVyPzogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBkb2MgVGhlIHdlYiBwYWdlJ3MgRG9jdW1lbnQgb2JqZWN0LlxuICAgKiBAcGFyYW0gZDNGYWN0b3J5IEQzIGNoYXJ0IGZhY3RvcnkuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IGRvYzogRG9jdW1lbnQsXG4gICAgQEluamVjdChEM19DSEFSVF9GQUNUT1JZKSBwcml2YXRlIHJlYWRvbmx5IGQzRmFjdG9yeTogSUQzQ2hhcnRGYWN0b3J5LFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqIFRoZSBjaGFydCBvcHRpb25zIGNvbnN0cnVjdG9yLiAqL1xuICBwcm90ZWN0ZWQgY2hhcnRPcHRpb25zKCk6IFRHYXVnZU9wdGlvbnMge1xuICAgIGNvbnN0IG1hcmdpbjogVEdhdWdlT3B0aW9uc1snbWFyZ2luJ10gPSB7IHRvcDogNTAsIHJpZ2h0OiA1MCwgYm90dG9tOiA1MCwgbGVmdDogNTAgfTtcbiAgICBjb25zdCBtaW5XaWR0aCA9IDM1MDtcbiAgICBjb25zdCBtb2RpZmllcnMgPSB7XG4gICAgICB3aWR0aDogMTAsXG4gICAgICBoZWlnaHQ6IDIwLFxuICAgIH07XG4gICAgY29uc3Qgd2lkdGggPSBNYXRoLm1pbihtaW5XaWR0aCwgdGhpcy5kb2MuYm9keS5jbGllbnRXaWR0aCAtIG1vZGlmaWVycy53aWR0aCkgLSBtYXJnaW4ubGVmdCAtIG1hcmdpbi5yaWdodDtcbiAgICBjb25zdCBoZWlnaHQgPSBNYXRoLm1pbih3aWR0aCwgdGhpcy5kb2MuYm9keS5jbGllbnRIZWlnaHQgLSBtYXJnaW4udG9wIC0gbWFyZ2luLmJvdHRvbSAtIG1vZGlmaWVycy5oZWlnaHQpO1xuICAgIGNvbnN0IG9wdGlvbnM6IFRHYXVnZU9wdGlvbnMgPSB7XG4gICAgICB3aWR0aCxcbiAgICAgIGhlaWdodCxcbiAgICAgIG1hcmdpbixcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIHZhbHVlOiB0aGlzLnZhbHVlLFxuICAgIH07XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cblxuICAvKiogRHJhd3MgdGhlIGNoYXJ0LiAqL1xuICBwcm90ZWN0ZWQgZHJhd0NoYXJ0KCk6IHZvaWQge1xuICAgIGlmICh0eXBlb2YgdGhpcy5jb250YWluZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jaGFydE9wdGlvbnMoKTtcbiAgICAgIHRoaXMuZDNGYWN0b3J5LmRyYXdHYXVnZUNoYXJ0KHRoaXMuY29udGFpbmVyLCB0aGlzLmRhdGEsIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBBY3R1YWxseSBkcmF3cyB0aGUgY2hhcnQgYWZ0ZXIgdGhlIGNvbXBvbmVudCB2aWV3IGlzIGluaXRpYWxpemVkLiAqL1xuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZHJhd0NoYXJ0KCk7XG4gIH1cblxuICAvKiogUmVkcmF3cyB0aGUgY2hhcnQgb24gY2hhbmdlcy4gKi9cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IElDaGFydElucHV0Q2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IGRhdGE6IFRHYXVnZURhdGEgfCB1bmRlZmluZWQgPSBjaGFuZ2VzLmRhdGE/LmN1cnJlbnRWYWx1ZTtcbiAgICBjb25zdCBvcHRpb25zOiBUR2F1Z2VPcHRpb25zID0gY2hhbmdlcy5vcHRpb25zPy5jdXJyZW50VmFsdWU7XG4gICAgaWYgKCh0eXBlb2YgZGF0YSAhPT0gJ3VuZGVmaW5lZCcgJiYgZGF0YSAhPT0gbnVsbCkgfHwgKHR5cGVvZiBvcHRpb25zICE9PSAndW5kZWZpbmVkJyAmJiBvcHRpb25zICE9PSBudWxsKSkge1xuICAgICAgdGhpcy5kcmF3Q2hhcnQoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgPGRpdiBpZD1cInt7IGNoYXJ0SWQgfX1cIiAjY29udGFpbmVyPjwvZGl2PlxuXG4gIDxzbWFsbCBjbGFzcz1cImNvbnRhaW5lci0tY2hhcnQtdGl0bGVcIj57eyBvcHRpb25zLmNoYXJ0VGl0bGUgfX08L3NtYWxsPlxuPC9kaXY+XG4iXX0=
@@ -2,28 +2,26 @@ import { DOCUMENT } from '@angular/common';
2
2
  import { ChangeDetectionStrategy, Component, ElementRef, Inject, Input, ViewChild } from '@angular/core';
3
3
  import { D3_CHART_FACTORY } from '../../providers/d3-chart-factory.provider';
4
4
  import { defaultLineChartConfig } from '../../util/line-chart.util';
5
+ import { AppD3ChartBase } from '../_base/chart.base';
5
6
  import * as i0 from "@angular/core";
6
- export class AppLineChartComponent {
7
+ /** The line chart component. */
8
+ export class AppLineChartComponent extends AppD3ChartBase {
9
+ /**
10
+ * @param doc The web page's Document object.
11
+ * @param d3Factory D3 chart factory.
12
+ */
7
13
  constructor(doc, d3Factory) {
14
+ super();
8
15
  this.doc = doc;
9
16
  this.d3Factory = d3Factory;
10
- /**
11
- * The chart id.
12
- */
17
+ /** The chart id. */
13
18
  this.chartId = 'line-0';
14
- /**
15
- * The chart data.
16
- */
19
+ /** The chart data. */
17
20
  this.data = [];
18
- /**
19
- * The chart options.
20
- */
21
+ /** The chart options. */
21
22
  this.options = {};
22
23
  }
23
- /**
24
- * The chart options constructor.
25
- * @returns chart options
26
- */
24
+ /** The chart options constructor. */
27
25
  chartOptions() {
28
26
  const bodyWidthAdjustment = 10;
29
27
  const width = Math.min(this.options.width ?? defaultLineChartConfig.width, this.doc.body.clientWidth - defaultLineChartConfig.margin.left - defaultLineChartConfig.margin.right - bodyWidthAdjustment);
@@ -42,24 +40,18 @@ export class AppLineChartComponent {
42
40
  };
43
41
  return options;
44
42
  }
45
- /**
46
- * Draws the chart.
47
- */
43
+ /** Draws the chart. */
48
44
  drawChart() {
49
45
  if (typeof this.container !== 'undefined') {
50
46
  const options = this.chartOptions();
51
47
  this.d3Factory.drawLineChart(this.container, [...this.data], options);
52
48
  }
53
49
  }
54
- /**
55
- * Actually draws the chart after the component view is initialized.
56
- */
50
+ /** Actually draws the chart after the component view is initialized. */
57
51
  ngAfterViewInit() {
58
52
  this.drawChart();
59
53
  }
60
- /**
61
- * Redraws the chart on changes.
62
- */
54
+ /** Redraws the chart on changes. */
63
55
  ngOnChanges(changes) {
64
56
  const data = changes.data?.currentValue;
65
57
  const options = changes.options?.currentValue;
@@ -68,7 +60,7 @@ export class AppLineChartComponent {
68
60
  }
69
61
  }
70
62
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AppLineChartComponent, deps: [{ token: DOCUMENT }, { token: D3_CHART_FACTORY }], target: i0.ɵɵFactoryTarget.Component }); }
71
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: AppLineChartComponent, selector: "app-line-chart", inputs: { chartId: "chartId", data: "data", options: "options" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"container\" id=\"{{ chartId }}\" #container></div>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center}:host .container{flex:0 1 auto}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
63
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: AppLineChartComponent, selector: "app-line-chart", inputs: { chartId: "chartId", data: "data", options: "options" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"container\" id=\"{{ chartId }}\" #container></div>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center}:host .container{flex:0 1 auto}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
72
64
  }
73
65
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AppLineChartComponent, decorators: [{
74
66
  type: Component,
@@ -89,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
89
81
  type: ViewChild,
90
82
  args: ['container']
91
83
  }] } });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NsaWVudC1kMy1jaGFydHMvc3JjL2xpYi9jb21wb25lbnRzL2xpbmUtY2hhcnQvbGluZS1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NsaWVudC1kMy1jaGFydHMvc3JjL2xpYi9jb21wb25lbnRzL2xpbmUtY2hhcnQvbGluZS1jaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSW5JLE9BQU8sRUFBRSxnQkFBZ0IsRUFBbUIsTUFBTSwyQ0FBMkMsQ0FBQztBQUM5RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFRcEUsTUFBTSxPQUFPLHFCQUFxQjtJQXFCaEMsWUFDcUMsR0FBYSxFQUNMLFNBQTBCO1FBRGxDLFFBQUcsR0FBSCxHQUFHLENBQVU7UUFDTCxjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQXRCdkU7O1dBRUc7UUFDYSxZQUFPLEdBQUcsUUFBUSxDQUFDO1FBRW5DOztXQUVHO1FBQ2EsU0FBSSxHQUFxQixFQUFFLENBQUM7UUFFNUM7O1dBRUc7UUFDYSxZQUFPLEdBQStCLEVBQUUsQ0FBQztJQVV0RCxDQUFDO0lBRUo7OztPQUdHO0lBQ0ssWUFBWTtRQUNsQixNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztRQUMvQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxzQkFBc0IsQ0FBQyxLQUFLLEVBQ2xELElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsbUJBQW1CLENBQzNILENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxLQUFLLEVBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsbUJBQW1CLENBQzNILENBQUM7UUFDRixNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdkIsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sS0FBSyxHQUErQjtZQUN4QyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLEtBQUssR0FBRyxXQUFXO1lBQy9DLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksTUFBTSxHQUFHLFdBQVc7U0FDakQsQ0FBQztRQUNGLE1BQU0sT0FBTyxHQUErQjtZQUMxQyxHQUFHLElBQUksQ0FBQyxPQUFPO1lBQ2YsS0FBSztZQUNMLE1BQU07WUFDTixLQUFLO1NBQ04sQ0FBQztRQUNGLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNLLFNBQVM7UUFDZixJQUFJLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxXQUFXLEVBQUU7WUFDekMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUN2RTtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLGVBQWU7UUFDcEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVcsQ0FBQyxPQUEyQjtRQUM1QyxNQUFNLElBQUksR0FBMkIsT0FBTyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUM7UUFDaEUsTUFBTSxPQUFPLEdBQStCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDO1FBQzFFLElBQUksQ0FBQyxPQUFPLElBQUksS0FBSyxXQUFXLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxPQUFPLEtBQUssV0FBVyxJQUFJLE9BQU8sS0FBSyxJQUFJLENBQUMsRUFBRTtZQUMxRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDbEI7SUFDSCxDQUFDO2lJQWpGVSxxQkFBcUIsa0JBc0J0QixRQUFRLGFBQ1IsZ0JBQWdCO3FIQXZCZixxQkFBcUIscVBDZGxDLG1FQUNBOzsyRkRhYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU07OzBCQXdCNUMsTUFBTTsyQkFBQyxRQUFROzswQkFDZixNQUFNOzJCQUFDLGdCQUFnQjt5Q0FuQlYsT0FBTztzQkFBdEIsS0FBSztnQkFLVSxJQUFJO3NCQUFuQixLQUFLO2dCQUtVLE9BQU87c0JBQXRCLEtBQUs7Z0JBS21DLFNBQVM7c0JBQWpELFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IElDaGFydElucHV0Q2hhbmdlcyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvY2hhcnQtY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBJTGluZUNoYXJ0RGF0YU5vZGUsIElMaW5lQ2hhcnRPcHRpb25zLCBUTGluZUNoYXJ0RGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvbGluZS1jaGFydC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRDNfQ0hBUlRfRkFDVE9SWSwgSUQzQ2hhcnRGYWN0b3J5IH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2QzLWNoYXJ0LWZhY3RvcnkucHJvdmlkZXInO1xuaW1wb3J0IHsgZGVmYXVsdExpbmVDaGFydENvbmZpZyB9IGZyb20gJy4uLy4uL3V0aWwvbGluZS1jaGFydC51dGlsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWxpbmUtY2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGluZS1jaGFydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpbmUtY2hhcnQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFwcExpbmVDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gIC8qKlxuICAgKiBUaGUgY2hhcnQgaWQuXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgY2hhcnRJZCA9ICdsaW5lLTAnO1xuXG4gIC8qKlxuICAgKiBUaGUgY2hhcnQgZGF0YS5cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRhOiBUTGluZUNoYXJ0RGF0YVtdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSBjaGFydCBvcHRpb25zLlxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIG9wdGlvbnM6IFBhcnRpYWw8SUxpbmVDaGFydE9wdGlvbnM+ID0ge307XG5cbiAgLyoqXG4gICAqIEQzIGNoYXJ0IHZpZXcgY2hpbGQgcmVmZXJlbmNlLlxuICAgKi9cbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJykgcHJpdmF0ZSByZWFkb25seSBjb250YWluZXI/OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IGRvYzogRG9jdW1lbnQsXG4gICAgQEluamVjdChEM19DSEFSVF9GQUNUT1JZKSBwcml2YXRlIHJlYWRvbmx5IGQzRmFjdG9yeTogSUQzQ2hhcnRGYWN0b3J5LFxuICApIHt9XG5cbiAgLyoqXG4gICAqIFRoZSBjaGFydCBvcHRpb25zIGNvbnN0cnVjdG9yLlxuICAgKiBAcmV0dXJucyBjaGFydCBvcHRpb25zXG4gICAqL1xuICBwcml2YXRlIGNoYXJ0T3B0aW9ucygpIHtcbiAgICBjb25zdCBib2R5V2lkdGhBZGp1c3RtZW50ID0gMTA7XG4gICAgY29uc3Qgd2lkdGggPSBNYXRoLm1pbihcbiAgICAgIHRoaXMub3B0aW9ucy53aWR0aCA/PyBkZWZhdWx0TGluZUNoYXJ0Q29uZmlnLndpZHRoLFxuICAgICAgdGhpcy5kb2MuYm9keS5jbGllbnRXaWR0aCAtIGRlZmF1bHRMaW5lQ2hhcnRDb25maWcubWFyZ2luLmxlZnQgLSBkZWZhdWx0TGluZUNoYXJ0Q29uZmlnLm1hcmdpbi5yaWdodCAtIGJvZHlXaWR0aEFkanVzdG1lbnQsXG4gICAgKTtcbiAgICBjb25zdCBoZWlnaHQgPSBNYXRoLm1pbihcbiAgICAgIHRoaXMub3B0aW9ucy5oZWlnaHQgPz8gd2lkdGgsXG4gICAgICB0aGlzLmRvYy5ib2R5LmNsaWVudFdpZHRoIC0gZGVmYXVsdExpbmVDaGFydENvbmZpZy5tYXJnaW4udG9wIC0gZGVmYXVsdExpbmVDaGFydENvbmZpZy5tYXJnaW4uYm90dG9tIC0gYm9keVdpZHRoQWRqdXN0bWVudCxcbiAgICApO1xuICAgIGNvbnN0IHhUaWNrc1NjYWxlID0gNzU7XG4gICAgY29uc3QgeVRpY2tzU2NhbGUgPSAyNTtcbiAgICBjb25zdCB0aWNrczogSUxpbmVDaGFydE9wdGlvbnNbJ3RpY2tzJ10gPSB7XG4gICAgICB4OiB0aGlzLm9wdGlvbnMudGlja3M/LnggPz8gd2lkdGggLyB4VGlja3NTY2FsZSxcbiAgICAgIHk6IHRoaXMub3B0aW9ucy50aWNrcz8ueSA/PyBoZWlnaHQgLyB5VGlja3NTY2FsZSxcbiAgICB9O1xuICAgIGNvbnN0IG9wdGlvbnM6IFBhcnRpYWw8SUxpbmVDaGFydE9wdGlvbnM+ID0ge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHQsXG4gICAgICB0aWNrcyxcbiAgICB9O1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIERyYXdzIHRoZSBjaGFydC5cbiAgICovXG4gIHByaXZhdGUgZHJhd0NoYXJ0KCkge1xuICAgIGlmICh0eXBlb2YgdGhpcy5jb250YWluZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jaGFydE9wdGlvbnMoKTtcbiAgICAgIHRoaXMuZDNGYWN0b3J5LmRyYXdMaW5lQ2hhcnQodGhpcy5jb250YWluZXIsIFsuLi50aGlzLmRhdGFdLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWN0dWFsbHkgZHJhd3MgdGhlIGNoYXJ0IGFmdGVyIHRoZSBjb21wb25lbnQgdmlldyBpcyBpbml0aWFsaXplZC5cbiAgICovXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kcmF3Q2hhcnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWRyYXdzIHRoZSBjaGFydCBvbiBjaGFuZ2VzLlxuICAgKi9cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IElDaGFydElucHV0Q2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IGRhdGE6IElMaW5lQ2hhcnREYXRhTm9kZVtdW10gPSBjaGFuZ2VzLmRhdGE/LmN1cnJlbnRWYWx1ZTtcbiAgICBjb25zdCBvcHRpb25zOiBQYXJ0aWFsPElMaW5lQ2hhcnRPcHRpb25zPiA9IGNoYW5nZXMub3B0aW9ucz8uY3VycmVudFZhbHVlO1xuICAgIGlmICgodHlwZW9mIGRhdGEgIT09ICd1bmRlZmluZWQnICYmIGRhdGEgIT09IG51bGwpIHx8ICh0eXBlb2Ygb3B0aW9ucyAhPT0gJ3VuZGVmaW5lZCcgJiYgb3B0aW9ucyAhPT0gbnVsbCkpIHtcbiAgICAgIHRoaXMuZHJhd0NoYXJ0KCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgaWQ9XCJ7eyBjaGFydElkIH19XCIgI2NvbnRhaW5lcj48L2Rpdj5cbiJdfQ==
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NsaWVudC1kMy1jaGFydHMvc3JjL2xpYi9jb21wb25lbnRzL2xpbmUtY2hhcnQvbGluZS1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NsaWVudC1kMy1jaGFydHMvc3JjL2xpYi9jb21wb25lbnRzL2xpbmUtY2hhcnQvbGluZS1jaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSW5JLE9BQU8sRUFBRSxnQkFBZ0IsRUFBbUIsTUFBTSwyQ0FBMkMsQ0FBQztBQUM5RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBS3JELGdDQUFnQztBQU9oQyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsY0FBdUM7SUFhaEY7OztPQUdHO0lBQ0gsWUFDcUMsR0FBYSxFQUNMLFNBQTBCO1FBRXJFLEtBQUssRUFBRSxDQUFDO1FBSDJCLFFBQUcsR0FBSCxHQUFHLENBQVU7UUFDTCxjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQWxCdkUsb0JBQW9CO1FBQ0osWUFBTyxHQUFHLFFBQVEsQ0FBQztRQUVuQyxzQkFBc0I7UUFDTixTQUFJLEdBQWMsRUFBRSxDQUFDO1FBRXJDLHlCQUF5QjtRQUNULFlBQU8sR0FBaUIsRUFBRSxDQUFDO0lBYzNDLENBQUM7SUFFRCxxQ0FBcUM7SUFDM0IsWUFBWTtRQUNwQixNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztRQUMvQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxzQkFBc0IsQ0FBQyxLQUFLLEVBQ2xELElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsbUJBQW1CLENBQzNILENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxLQUFLLEVBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsbUJBQW1CLENBQzNILENBQUM7UUFDRixNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdkIsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sS0FBSyxHQUEwQjtZQUNuQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLEtBQUssR0FBRyxXQUFXO1lBQy9DLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksTUFBTSxHQUFHLFdBQVc7U0FDakQsQ0FBQztRQUNGLE1BQU0sT0FBTyxHQUFpQjtZQUM1QixHQUFHLElBQUksQ0FBQyxPQUFPO1lBQ2YsS0FBSztZQUNMLE1BQU07WUFDTixLQUFLO1NBQ04sQ0FBQztRQUNGLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCx1QkFBdUI7SUFDYixTQUFTO1FBQ2pCLElBQUksT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLFdBQVcsRUFBRTtZQUN6QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3ZFO0lBQ0gsQ0FBQztJQUVELHdFQUF3RTtJQUNqRSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsb0NBQW9DO0lBQzdCLFdBQVcsQ0FBQyxPQUEyQjtRQUM1QyxNQUFNLElBQUksR0FBYyxPQUFPLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQztRQUNuRCxNQUFNLE9BQU8sR0FBaUIsT0FBTyxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUM7UUFDNUQsSUFBSSxDQUFDLE9BQU8sSUFBSSxLQUFLLFdBQVcsSUFBSSxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLE9BQU8sS0FBSyxXQUFXLElBQUksT0FBTyxLQUFLLElBQUksQ0FBQyxFQUFFO1lBQzFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNsQjtJQUNILENBQUM7aUlBdEVVLHFCQUFxQixrQkFrQnRCLFFBQVEsYUFDUixnQkFBZ0I7cUhBbkJmLHFCQUFxQiw0UUNuQmxDLG1FQUNBOzsyRkRrQmEscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNOzswQkFvQjVDLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxnQkFBZ0I7eUNBakJWLE9BQU87c0JBQXRCLEtBQUs7Z0JBR1UsSUFBSTtzQkFBbkIsS0FBSztnQkFHVSxPQUFPO3NCQUF0QixLQUFLO2dCQUdrQyxTQUFTO3NCQUFoRCxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJQ2hhcnRJbnB1dENoYW5nZXMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2NoYXJ0LWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUxpbmVDaGFydE9wdGlvbnMsIFRMaW5lQ2hhcnREYXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9saW5lLWNoYXJ0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBEM19DSEFSVF9GQUNUT1JZLCBJRDNDaGFydEZhY3RvcnkgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvZDMtY2hhcnQtZmFjdG9yeS5wcm92aWRlcic7XG5pbXBvcnQgeyBkZWZhdWx0TGluZUNoYXJ0Q29uZmlnIH0gZnJvbSAnLi4vLi4vdXRpbC9saW5lLWNoYXJ0LnV0aWwnO1xuaW1wb3J0IHsgQXBwRDNDaGFydEJhc2UgfSBmcm9tICcuLi9fYmFzZS9jaGFydC5iYXNlJztcblxudHlwZSBUTGluZURhdGEgPSBUTGluZUNoYXJ0RGF0YVtdO1xudHlwZSBUTGluZU9wdGlvbnMgPSBQYXJ0aWFsPElMaW5lQ2hhcnRPcHRpb25zPjtcblxuLyoqIFRoZSBsaW5lIGNoYXJ0IGNvbXBvbmVudC4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1saW5lLWNoYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpbmUtY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saW5lLWNoYXJ0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBcHBMaW5lQ2hhcnRDb21wb25lbnQgZXh0ZW5kcyBBcHBEM0NoYXJ0QmFzZTxUTGluZURhdGEsIFRMaW5lT3B0aW9ucz4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICAvKiogVGhlIGNoYXJ0IGlkLiAqL1xuICBASW5wdXQoKSBwdWJsaWMgY2hhcnRJZCA9ICdsaW5lLTAnO1xuXG4gIC8qKiBUaGUgY2hhcnQgZGF0YS4gKi9cbiAgQElucHV0KCkgcHVibGljIGRhdGE6IFRMaW5lRGF0YSA9IFtdO1xuXG4gIC8qKiBUaGUgY2hhcnQgb3B0aW9ucy4gKi9cbiAgQElucHV0KCkgcHVibGljIG9wdGlvbnM6IFRMaW5lT3B0aW9ucyA9IHt9O1xuXG4gIC8qKiBEMyBjaGFydCB2aWV3IGNoaWxkIHJlZmVyZW5jZS4gKi9cbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJykgcHVibGljIHJlYWRvbmx5IGNvbnRhaW5lcj86IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gZG9jIFRoZSB3ZWIgcGFnZSdzIERvY3VtZW50IG9iamVjdC5cbiAgICogQHBhcmFtIGQzRmFjdG9yeSBEMyBjaGFydCBmYWN0b3J5LlxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2M6IERvY3VtZW50LFxuICAgIEBJbmplY3QoRDNfQ0hBUlRfRkFDVE9SWSkgcHJpdmF0ZSByZWFkb25seSBkM0ZhY3Rvcnk6IElEM0NoYXJ0RmFjdG9yeSxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKiBUaGUgY2hhcnQgb3B0aW9ucyBjb25zdHJ1Y3Rvci4gKi9cbiAgcHJvdGVjdGVkIGNoYXJ0T3B0aW9ucygpOiBUTGluZU9wdGlvbnMge1xuICAgIGNvbnN0IGJvZHlXaWR0aEFkanVzdG1lbnQgPSAxMDtcbiAgICBjb25zdCB3aWR0aCA9IE1hdGgubWluKFxuICAgICAgdGhpcy5vcHRpb25zLndpZHRoID8/IGRlZmF1bHRMaW5lQ2hhcnRDb25maWcud2lkdGgsXG4gICAgICB0aGlzLmRvYy5ib2R5LmNsaWVudFdpZHRoIC0gZGVmYXVsdExpbmVDaGFydENvbmZpZy5tYXJnaW4ubGVmdCAtIGRlZmF1bHRMaW5lQ2hhcnRDb25maWcubWFyZ2luLnJpZ2h0IC0gYm9keVdpZHRoQWRqdXN0bWVudCxcbiAgICApO1xuICAgIGNvbnN0IGhlaWdodCA9IE1hdGgubWluKFxuICAgICAgdGhpcy5vcHRpb25zLmhlaWdodCA/PyB3aWR0aCxcbiAgICAgIHRoaXMuZG9jLmJvZHkuY2xpZW50V2lkdGggLSBkZWZhdWx0TGluZUNoYXJ0Q29uZmlnLm1hcmdpbi50b3AgLSBkZWZhdWx0TGluZUNoYXJ0Q29uZmlnLm1hcmdpbi5ib3R0b20gLSBib2R5V2lkdGhBZGp1c3RtZW50LFxuICAgICk7XG4gICAgY29uc3QgeFRpY2tzU2NhbGUgPSA3NTtcbiAgICBjb25zdCB5VGlja3NTY2FsZSA9IDI1O1xuICAgIGNvbnN0IHRpY2tzOiBUTGluZU9wdGlvbnNbJ3RpY2tzJ10gPSB7XG4gICAgICB4OiB0aGlzLm9wdGlvbnMudGlja3M/LnggPz8gd2lkdGggLyB4VGlja3NTY2FsZSxcbiAgICAgIHk6IHRoaXMub3B0aW9ucy50aWNrcz8ueSA/PyBoZWlnaHQgLyB5VGlja3NTY2FsZSxcbiAgICB9O1xuICAgIGNvbnN0IG9wdGlvbnM6IFRMaW5lT3B0aW9ucyA9IHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIHdpZHRoLFxuICAgICAgaGVpZ2h0LFxuICAgICAgdGlja3MsXG4gICAgfTtcbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxuXG4gIC8qKiBEcmF3cyB0aGUgY2hhcnQuICovXG4gIHByb3RlY3RlZCBkcmF3Q2hhcnQoKTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmNvbnRhaW5lciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmNoYXJ0T3B0aW9ucygpO1xuICAgICAgdGhpcy5kM0ZhY3RvcnkuZHJhd0xpbmVDaGFydCh0aGlzLmNvbnRhaW5lciwgWy4uLnRoaXMuZGF0YV0sIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBBY3R1YWxseSBkcmF3cyB0aGUgY2hhcnQgYWZ0ZXIgdGhlIGNvbXBvbmVudCB2aWV3IGlzIGluaXRpYWxpemVkLiAqL1xuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZHJhd0NoYXJ0KCk7XG4gIH1cblxuICAvKiogUmVkcmF3cyB0aGUgY2hhcnQgb24gY2hhbmdlcy4gKi9cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IElDaGFydElucHV0Q2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IGRhdGE6IFRMaW5lRGF0YSA9IGNoYW5nZXMuZGF0YT8uY3VycmVudFZhbHVlO1xuICAgIGNvbnN0IG9wdGlvbnM6IFRMaW5lT3B0aW9ucyA9IGNoYW5nZXMub3B0aW9ucz8uY3VycmVudFZhbHVlO1xuICAgIGlmICgodHlwZW9mIGRhdGEgIT09ICd1bmRlZmluZWQnICYmIGRhdGEgIT09IG51bGwpIHx8ICh0eXBlb2Ygb3B0aW9ucyAhPT0gJ3VuZGVmaW5lZCcgJiYgb3B0aW9ucyAhPT0gbnVsbCkpIHtcbiAgICAgIHRoaXMuZHJhd0NoYXJ0KCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgaWQ9XCJ7eyBjaGFydElkIH19XCIgI2NvbnRhaW5lcj48L2Rpdj5cbiJdfQ==
@@ -1,28 +1,26 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
2
  import { ChangeDetectionStrategy, Component, ElementRef, Inject, Input, ViewChild } from '@angular/core';
3
3
  import { D3_CHART_FACTORY } from '../../providers/d3-chart-factory.provider';
4
+ import { AppD3ChartBase } from '../_base/chart.base';
4
5
  import * as i0 from "@angular/core";
5
- export class AppPieChartComponent {
6
+ /** The pie chart component. */
7
+ export class AppPieChartComponent extends AppD3ChartBase {
8
+ /**
9
+ * @param doc The web page's Document object.
10
+ * @param d3Factory D3 chart factory.
11
+ */
6
12
  constructor(doc, d3Factory) {
13
+ super();
7
14
  this.doc = doc;
8
15
  this.d3Factory = d3Factory;
9
- /**
10
- * The chart id.
11
- */
16
+ /** The chart id. */
12
17
  this.chartId = 'pie-0';
13
- /**
14
- * The chart data.
15
- */
18
+ /** The chart data. */
16
19
  this.data = [];
17
- /**
18
- * The chart options.
19
- */
20
+ /** The chart options. */
20
21
  this.options = {};
21
22
  }
22
- /**
23
- * The chart options constructor.
24
- * @returns chart options
25
- */
23
+ /** The chart options constructor. */
26
24
  chartOptions() {
27
25
  const margin = { top: 50, right: 50, bottom: 50, left: 50 };
28
26
  const minWidth = 350;
@@ -40,24 +38,18 @@ export class AppPieChartComponent {
40
38
  };
41
39
  return options;
42
40
  }
43
- /**
44
- * Draws the chart.
45
- */
41
+ /** Draws the chart. */
46
42
  drawChart() {
47
43
  if (typeof this.container !== 'undefined') {
48
44
  const options = this.chartOptions();
49
45
  this.d3Factory.drawPieChart(this.container, this.data, options);
50
46
  }
51
47
  }
52
- /**
53
- * Actually draws the chart after the component view is initialized.
54
- */
48
+ /** Actually draws the chart after the component view is initialized. */
55
49
  ngAfterViewInit() {
56
50
  this.drawChart();
57
51
  }
58
- /**
59
- * Redraws the chart on changes.
60
- */
52
+ /** Redraws the chart on changes. */
61
53
  ngOnChanges(changes) {
62
54
  const data = changes.data?.currentValue;
63
55
  const options = changes.options?.currentValue;
@@ -66,7 +58,7 @@ export class AppPieChartComponent {
66
58
  }
67
59
  }
68
60
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AppPieChartComponent, deps: [{ token: DOCUMENT }, { token: D3_CHART_FACTORY }], target: i0.ɵɵFactoryTarget.Component }); }
69
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: AppPieChartComponent, selector: "app-pie-chart", inputs: { chartId: "chartId", data: "data", options: "options" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"container\">\n <div id=\"{{ chartId }}\" #container></div>\n\n <small class=\"container--chart-title\">{{ options.chartTitle }}</small>\n</div>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center}:host canvas{width:auto!important;height:150px}:host .container{flex:0 1 auto}:host .container--chart-title{display:block;text-align:center}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
61
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: AppPieChartComponent, selector: "app-pie-chart", inputs: { chartId: "chartId", data: "data", options: "options" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"container\">\n <div id=\"{{ chartId }}\" #container></div>\n\n <small class=\"container--chart-title\">{{ options.chartTitle }}</small>\n</div>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center}:host canvas{width:auto!important;height:150px}:host .container{flex:0 1 auto}:host .container--chart-title{display:block;text-align:center}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
70
62
  }
71
63
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: AppPieChartComponent, decorators: [{
72
64
  type: Component,
@@ -87,4 +79,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
87
79
  type: ViewChild,
88
80
  args: ['container']
89
81
  }] } });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGllLWNoYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2xpZW50LWQzLWNoYXJ0cy9zcmMvbGliL2NvbXBvbmVudHMvcGllLWNoYXJ0L3BpZS1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NsaWVudC1kMy1jaGFydHMvc3JjL2xpYi9jb21wb25lbnRzL3BpZS1jaGFydC9waWUtY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUluSSxPQUFPLEVBQUUsZ0JBQWdCLEVBQW1CLE1BQU0sMkNBQTJDLENBQUM7O0FBUTlGLE1BQU0sT0FBTyxvQkFBb0I7SUFxQi9CLFlBQ3FDLEdBQWEsRUFDTCxTQUEwQjtRQURsQyxRQUFHLEdBQUgsR0FBRyxDQUFVO1FBQ0wsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUF0QnZFOztXQUVHO1FBQ2EsWUFBTyxHQUFHLE9BQU8sQ0FBQztRQUVsQzs7V0FFRztRQUNhLFNBQUksR0FBd0IsRUFBRSxDQUFDO1FBRS9DOztXQUVHO1FBQ2EsWUFBTyxHQUE4QixFQUFFLENBQUM7SUFVckQsQ0FBQztJQUVKOzs7T0FHRztJQUNLLFlBQVk7UUFDbEIsTUFBTSxNQUFNLEdBQStCLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3hGLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNyQixNQUFNLFNBQVMsR0FBRztZQUNoQixLQUFLLEVBQUUsRUFBRTtZQUNULE1BQU0sRUFBRSxFQUFFO1NBQ1gsQ0FBQztRQUNGLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzNHLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNHLE1BQU0sT0FBTyxHQUE4QjtZQUN6QyxLQUFLO1lBQ0wsTUFBTTtZQUNOLE1BQU07WUFDTixHQUFHLElBQUksQ0FBQyxPQUFPO1NBQ2hCLENBQUM7UUFDRixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQ7O09BRUc7SUFDSyxTQUFTO1FBQ2YsSUFBSSxPQUFPLElBQUksQ0FBQyxTQUFTLEtBQUssV0FBVyxFQUFFO1lBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDakU7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXLENBQUMsT0FBMkI7UUFDNUMsTUFBTSxJQUFJLEdBQW9DLE9BQU8sQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDO1FBQ3pFLE1BQU0sT0FBTyxHQUE4QixPQUFPLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQztRQUN6RSxJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssV0FBVyxJQUFJLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFBSSxPQUFPLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDMUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQztpSUExRVUsb0JBQW9CLGtCQXNCckIsUUFBUSxhQUNSLGdCQUFnQjtxSEF2QmYsb0JBQW9CLG9QQ2JqQyxrS0FLQTs7MkZEUWEsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLGVBQWUsbUJBR1IsdUJBQXVCLENBQUMsTUFBTTs7MEJBd0I1QyxNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLE1BQU07MkJBQUMsZ0JBQWdCO3lDQW5CVixPQUFPO3NCQUF0QixLQUFLO2dCQUtVLElBQUk7c0JBQW5CLEtBQUs7Z0JBS1UsT0FBTztzQkFBdEIsS0FBSztnQkFLbUMsU0FBUztzQkFBakQsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSUNoYXJ0SW5wdXRDaGFuZ2VzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9jaGFydC1jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElQaWVDaGFydERhdGFOb2RlLCBJUGllQ2hhcnRPcHRpb25zIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9waWUtY2hhcnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEQzX0NIQVJUX0ZBQ1RPUlksIElEM0NoYXJ0RmFjdG9yeSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9kMy1jaGFydC1mYWN0b3J5LnByb3ZpZGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXBpZS1jaGFydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9waWUtY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9waWUtY2hhcnQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFwcFBpZUNoYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgLyoqXG4gICAqIFRoZSBjaGFydCBpZC5cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBjaGFydElkID0gJ3BpZS0wJztcblxuICAvKipcbiAgICogVGhlIGNoYXJ0IGRhdGEuXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgZGF0YTogSVBpZUNoYXJ0RGF0YU5vZGVbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgY2hhcnQgb3B0aW9ucy5cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBvcHRpb25zOiBQYXJ0aWFsPElQaWVDaGFydE9wdGlvbnM+ID0ge307XG5cbiAgLyoqXG4gICAqIEQzIGNoYXJ0IHZpZXcgY2hpbGQgcmVmZXJlbmNlLlxuICAgKi9cbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJykgcHJpdmF0ZSByZWFkb25seSBjb250YWluZXI/OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IGRvYzogRG9jdW1lbnQsXG4gICAgQEluamVjdChEM19DSEFSVF9GQUNUT1JZKSBwcml2YXRlIHJlYWRvbmx5IGQzRmFjdG9yeTogSUQzQ2hhcnRGYWN0b3J5LFxuICApIHt9XG5cbiAgLyoqXG4gICAqIFRoZSBjaGFydCBvcHRpb25zIGNvbnN0cnVjdG9yLlxuICAgKiBAcmV0dXJucyBjaGFydCBvcHRpb25zXG4gICAqL1xuICBwcml2YXRlIGNoYXJ0T3B0aW9ucygpIHtcbiAgICBjb25zdCBtYXJnaW46IElQaWVDaGFydE9wdGlvbnNbJ21hcmdpbiddID0geyB0b3A6IDUwLCByaWdodDogNTAsIGJvdHRvbTogNTAsIGxlZnQ6IDUwIH07XG4gICAgY29uc3QgbWluV2lkdGggPSAzNTA7XG4gICAgY29uc3QgbW9kaWZpZXJzID0ge1xuICAgICAgd2lkdGg6IDEwLFxuICAgICAgaGVpZ2h0OiAyMCxcbiAgICB9O1xuICAgIGNvbnN0IHdpZHRoID0gTWF0aC5taW4obWluV2lkdGgsIHRoaXMuZG9jLmJvZHkuY2xpZW50V2lkdGggLSBtb2RpZmllcnMud2lkdGgpIC0gbWFyZ2luLmxlZnQgLSBtYXJnaW4ucmlnaHQ7XG4gICAgY29uc3QgaGVpZ2h0ID0gTWF0aC5taW4od2lkdGgsIHRoaXMuZG9jLmJvZHkuY2xpZW50SGVpZ2h0IC0gbWFyZ2luLnRvcCAtIG1hcmdpbi5ib3R0b20gLSBtb2RpZmllcnMuaGVpZ2h0KTtcbiAgICBjb25zdCBvcHRpb25zOiBQYXJ0aWFsPElQaWVDaGFydE9wdGlvbnM+ID0ge1xuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHQsXG4gICAgICBtYXJnaW4sXG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgfTtcbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBEcmF3cyB0aGUgY2hhcnQuXG4gICAqL1xuICBwcml2YXRlIGRyYXdDaGFydCgpIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuY29udGFpbmVyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY2hhcnRPcHRpb25zKCk7XG4gICAgICB0aGlzLmQzRmFjdG9yeS5kcmF3UGllQ2hhcnQodGhpcy5jb250YWluZXIsIHRoaXMuZGF0YSwgb3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFjdHVhbGx5IGRyYXdzIHRoZSBjaGFydCBhZnRlciB0aGUgY29tcG9uZW50IHZpZXcgaXMgaW5pdGlhbGl6ZWQuXG4gICAqL1xuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZHJhd0NoYXJ0KCk7XG4gIH1cblxuICAvKipcbiAgICogUmVkcmF3cyB0aGUgY2hhcnQgb24gY2hhbmdlcy5cbiAgICovXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBJQ2hhcnRJbnB1dENoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCBkYXRhOiBJUGllQ2hhcnREYXRhTm9kZVtdIHwgdW5kZWZpbmVkID0gY2hhbmdlcy5kYXRhPy5jdXJyZW50VmFsdWU7XG4gICAgY29uc3Qgb3B0aW9uczogUGFydGlhbDxJUGllQ2hhcnRPcHRpb25zPiA9IGNoYW5nZXMub3B0aW9ucz8uY3VycmVudFZhbHVlO1xuICAgIGlmICgodHlwZW9mIGRhdGEgIT09ICd1bmRlZmluZWQnICYmIGRhdGEgIT09IG51bGwpIHx8ICh0eXBlb2Ygb3B0aW9ucyAhPT0gJ3VuZGVmaW5lZCcgJiYgb3B0aW9ucyAhPT0gbnVsbCkpIHtcbiAgICAgIHRoaXMuZHJhd0NoYXJ0KCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gIDxkaXYgaWQ9XCJ7eyBjaGFydElkIH19XCIgI2NvbnRhaW5lcj48L2Rpdj5cblxuICA8c21hbGwgY2xhc3M9XCJjb250YWluZXItLWNoYXJ0LXRpdGxlXCI+e3sgb3B0aW9ucy5jaGFydFRpdGxlIH19PC9zbWFsbD5cbjwvZGl2PlxuIl19
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGllLWNoYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2xpZW50LWQzLWNoYXJ0cy9zcmMvbGliL2NvbXBvbmVudHMvcGllLWNoYXJ0L3BpZS1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NsaWVudC1kMy1jaGFydHMvc3JjL2xpYi9jb21wb25lbnRzL3BpZS1jaGFydC9waWUtY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUluSSxPQUFPLEVBQUUsZ0JBQWdCLEVBQW1CLE1BQU0sMkNBQTJDLENBQUM7QUFDOUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUtyRCwrQkFBK0I7QUFPL0IsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGNBQXFDO0lBYTdFOzs7T0FHRztJQUNILFlBQ3FDLEdBQWEsRUFDTCxTQUEwQjtRQUVyRSxLQUFLLEVBQUUsQ0FBQztRQUgyQixRQUFHLEdBQUgsR0FBRyxDQUFVO1FBQ0wsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFsQnZFLG9CQUFvQjtRQUNKLFlBQU8sR0FBRyxPQUFPLENBQUM7UUFFbEMsc0JBQXNCO1FBQ04sU0FBSSxHQUFhLEVBQUUsQ0FBQztRQUVwQyx5QkFBeUI7UUFDVCxZQUFPLEdBQWdCLEVBQUUsQ0FBQztJQWMxQyxDQUFDO0lBRUQscUNBQXFDO0lBQzNCLFlBQVk7UUFDcEIsTUFBTSxNQUFNLEdBQTBCLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ25GLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNyQixNQUFNLFNBQVMsR0FBRztZQUNoQixLQUFLLEVBQUUsRUFBRTtZQUNULE1BQU0sRUFBRSxFQUFFO1NBQ1gsQ0FBQztRQUNGLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzNHLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNHLE1BQU0sT0FBTyxHQUFnQjtZQUMzQixLQUFLO1lBQ0wsTUFBTTtZQUNOLE1BQU07WUFDTixHQUFHLElBQUksQ0FBQyxPQUFPO1NBQ2hCLENBQUM7UUFDRixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsdUJBQXVCO0lBQ2IsU0FBUztRQUNqQixJQUFJLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxXQUFXLEVBQUU7WUFDekMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNqRTtJQUNILENBQUM7SUFFRCx3RUFBd0U7SUFDakUsZUFBZTtRQUNwQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELG9DQUFvQztJQUM3QixXQUFXLENBQUMsT0FBMkI7UUFDNUMsTUFBTSxJQUFJLEdBQXlCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDO1FBQzlELE1BQU0sT0FBTyxHQUFnQixPQUFPLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQztRQUMzRCxJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssV0FBVyxJQUFJLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFBSSxPQUFPLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDMUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQztpSUEvRFUsb0JBQW9CLGtCQWtCckIsUUFBUSxhQUNSLGdCQUFnQjtxSEFuQmYsb0JBQW9CLDJRQ2xCakMsa0tBS0E7OzJGRGFhLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU07OzBCQW9CNUMsTUFBTTsyQkFBQyxRQUFROzswQkFDZixNQUFNOzJCQUFDLGdCQUFnQjt5Q0FqQlYsT0FBTztzQkFBdEIsS0FBSztnQkFHVSxJQUFJO3NCQUFuQixLQUFLO2dCQUdVLE9BQU87c0JBQXRCLEtBQUs7Z0JBR2tDLFNBQVM7c0JBQWhELFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IElDaGFydElucHV0Q2hhbmdlcyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvY2hhcnQtY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBJUGllQ2hhcnREYXRhTm9kZSwgSVBpZUNoYXJ0T3B0aW9ucyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcGllLWNoYXJ0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBEM19DSEFSVF9GQUNUT1JZLCBJRDNDaGFydEZhY3RvcnkgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvZDMtY2hhcnQtZmFjdG9yeS5wcm92aWRlcic7XG5pbXBvcnQgeyBBcHBEM0NoYXJ0QmFzZSB9IGZyb20gJy4uL19iYXNlL2NoYXJ0LmJhc2UnO1xuXG50eXBlIFRQaWVEYXRhID0gSVBpZUNoYXJ0RGF0YU5vZGVbXTtcbnR5cGUgVFBpZU9wdGlvbnMgPSBQYXJ0aWFsPElQaWVDaGFydE9wdGlvbnM+O1xuXG4vKiogVGhlIHBpZSBjaGFydCBjb21wb25lbnQuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcGllLWNoYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BpZS1jaGFydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BpZS1jaGFydC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQXBwUGllQ2hhcnRDb21wb25lbnQgZXh0ZW5kcyBBcHBEM0NoYXJ0QmFzZTxUUGllRGF0YSwgVFBpZU9wdGlvbnM+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgLyoqIFRoZSBjaGFydCBpZC4gKi9cbiAgQElucHV0KCkgcHVibGljIGNoYXJ0SWQgPSAncGllLTAnO1xuXG4gIC8qKiBUaGUgY2hhcnQgZGF0YS4gKi9cbiAgQElucHV0KCkgcHVibGljIGRhdGE6IFRQaWVEYXRhID0gW107XG5cbiAgLyoqIFRoZSBjaGFydCBvcHRpb25zLiAqL1xuICBASW5wdXQoKSBwdWJsaWMgb3B0aW9uczogVFBpZU9wdGlvbnMgPSB7fTtcblxuICAvKiogRDMgY2hhcnQgdmlldyBjaGlsZCByZWZlcmVuY2UuICovXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIHB1YmxpYyByZWFkb25seSBjb250YWluZXI/OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAvKipcbiAgICogQHBhcmFtIGRvYyBUaGUgd2ViIHBhZ2UncyBEb2N1bWVudCBvYmplY3QuXG4gICAqIEBwYXJhbSBkM0ZhY3RvcnkgRDMgY2hhcnQgZmFjdG9yeS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jOiBEb2N1bWVudCxcbiAgICBASW5qZWN0KEQzX0NIQVJUX0ZBQ1RPUlkpIHByaXZhdGUgcmVhZG9ubHkgZDNGYWN0b3J5OiBJRDNDaGFydEZhY3RvcnksXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKiogVGhlIGNoYXJ0IG9wdGlvbnMgY29uc3RydWN0b3IuICovXG4gIHByb3RlY3RlZCBjaGFydE9wdGlvbnMoKTogVFBpZU9wdGlvbnMge1xuICAgIGNvbnN0IG1hcmdpbjogVFBpZU9wdGlvbnNbJ21hcmdpbiddID0geyB0b3A6IDUwLCByaWdodDogNTAsIGJvdHRvbTogNTAsIGxlZnQ6IDUwIH07XG4gICAgY29uc3QgbWluV2lkdGggPSAzNTA7XG4gICAgY29uc3QgbW9kaWZpZXJzID0ge1xuICAgICAgd2lkdGg6IDEwLFxuICAgICAgaGVpZ2h0OiAyMCxcbiAgICB9O1xuICAgIGNvbnN0IHdpZHRoID0gTWF0aC5taW4obWluV2lkdGgsIHRoaXMuZG9jLmJvZHkuY2xpZW50V2lkdGggLSBtb2RpZmllcnMud2lkdGgpIC0gbWFyZ2luLmxlZnQgLSBtYXJnaW4ucmlnaHQ7XG4gICAgY29uc3QgaGVpZ2h0ID0gTWF0aC5taW4od2lkdGgsIHRoaXMuZG9jLmJvZHkuY2xpZW50SGVpZ2h0IC0gbWFyZ2luLnRvcCAtIG1hcmdpbi5ib3R0b20gLSBtb2RpZmllcnMuaGVpZ2h0KTtcbiAgICBjb25zdCBvcHRpb25zOiBUUGllT3B0aW9ucyA9IHtcbiAgICAgIHdpZHRoLFxuICAgICAgaGVpZ2h0LFxuICAgICAgbWFyZ2luLFxuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgIH07XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cblxuICAvKiogRHJhd3MgdGhlIGNoYXJ0LiAqL1xuICBwcm90ZWN0ZWQgZHJhd0NoYXJ0KCk6IHZvaWQge1xuICAgIGlmICh0eXBlb2YgdGhpcy5jb250YWluZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jaGFydE9wdGlvbnMoKTtcbiAgICAgIHRoaXMuZDNGYWN0b3J5LmRyYXdQaWVDaGFydCh0aGlzLmNvbnRhaW5lciwgdGhpcy5kYXRhLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICAvKiogQWN0dWFsbHkgZHJhd3MgdGhlIGNoYXJ0IGFmdGVyIHRoZSBjb21wb25lbnQgdmlldyBpcyBpbml0aWFsaXplZC4gKi9cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRyYXdDaGFydCgpO1xuICB9XG5cbiAgLyoqIFJlZHJhd3MgdGhlIGNoYXJ0IG9uIGNoYW5nZXMuICovXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBJQ2hhcnRJbnB1dENoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCBkYXRhOiBUUGllRGF0YSB8IHVuZGVmaW5lZCA9IGNoYW5nZXMuZGF0YT8uY3VycmVudFZhbHVlO1xuICAgIGNvbnN0IG9wdGlvbnM6IFRQaWVPcHRpb25zID0gY2hhbmdlcy5vcHRpb25zPy5jdXJyZW50VmFsdWU7XG4gICAgaWYgKCh0eXBlb2YgZGF0YSAhPT0gJ3VuZGVmaW5lZCcgJiYgZGF0YSAhPT0gbnVsbCkgfHwgKHR5cGVvZiBvcHRpb25zICE9PSAndW5kZWZpbmVkJyAmJiBvcHRpb25zICE9PSBudWxsKSkge1xuICAgICAgdGhpcy5kcmF3Q2hhcnQoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgPGRpdiBpZD1cInt7IGNoYXJ0SWQgfX1cIiAjY29udGFpbmVyPjwvZGl2PlxuXG4gIDxzbWFsbCBjbGFzcz1cImNvbnRhaW5lci0tY2hhcnQtdGl0bGVcIj57eyBvcHRpb25zLmNoYXJ0VGl0bGUgfX08L3NtYWxsPlxuPC9kaXY+XG4iXX0=