@kirbydesign/designsystem 5.0.17 → 5.0.21

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 (27) hide show
  1. package/bundles/kirbydesign-designsystem-testing-base.umd.js +1 -0
  2. package/bundles/kirbydesign-designsystem-testing-base.umd.js.map +1 -1
  3. package/bundles/kirbydesign-designsystem-testing-base.umd.min.js +1 -1
  4. package/bundles/kirbydesign-designsystem-testing-base.umd.min.js.map +1 -1
  5. package/bundles/kirbydesign-designsystem.umd.js +53 -24
  6. package/bundles/kirbydesign-designsystem.umd.js.map +1 -1
  7. package/bundles/kirbydesign-designsystem.umd.min.js +1 -1
  8. package/bundles/kirbydesign-designsystem.umd.min.js.map +1 -1
  9. package/esm2015/lib/components/chart/chart-js/chart-js.service.js +17 -19
  10. package/esm2015/lib/components/chart/chart-js/chart-js.service.metadata.json +1 -1
  11. package/esm2015/lib/components/chart/chart-js/configured-chart-js.js +1 -1
  12. package/esm2015/lib/components/chart/chart-js/configured-chart-js.metadata.json +1 -1
  13. package/esm2015/lib/components/chart/chart.component.js +19 -5
  14. package/esm2015/lib/components/chart/chart.component.metadata.json +1 -1
  15. package/esm2015/lib/directives/fit-heading/fit-heading.directive.js +11 -3
  16. package/esm2015/testing-base/lib/components/mock.chart.component.js +2 -1
  17. package/esm2015/testing-base/lib/components/mock.chart.component.metadata.json +1 -1
  18. package/fesm2015/kirbydesign-designsystem-testing-base.js +1 -0
  19. package/fesm2015/kirbydesign-designsystem-testing-base.js.map +1 -1
  20. package/fesm2015/kirbydesign-designsystem.js +44 -24
  21. package/fesm2015/kirbydesign-designsystem.js.map +1 -1
  22. package/kirbydesign-designsystem.metadata.json +1 -1
  23. package/lib/components/chart/chart-js/chart-js.service.d.ts +2 -2
  24. package/lib/components/chart/chart.component.d.ts +5 -2
  25. package/package.json +6 -5
  26. package/testing-base/kirbydesign-designsystem-testing-base.metadata.json +1 -1
  27. package/testing-base/lib/components/mock.chart.component.d.ts +1 -0
@@ -10,7 +10,7 @@ export class ChartJSService {
10
10
  this.chartConfigService = chartConfigService;
11
11
  }
12
12
  renderChart(args) {
13
- const { targetElement, type, data, dataLabels, customOptions, annotations, dataLabelOptions, highlightedElements, } = args;
13
+ const { targetElement, type, data, labels, customOptions, annotations, dataLabelOptions, highlightedElements, } = args;
14
14
  this.dataLabelOptions = dataLabelOptions || null;
15
15
  this.highlightedElements = highlightedElements || null;
16
16
  this.chartType = type;
@@ -21,7 +21,7 @@ export class ChartJSService {
21
21
  annotations,
22
22
  dataLabelOptions,
23
23
  });
24
- let config = this.createConfigurationObject(type, datasets, options, dataLabels);
24
+ let config = this.createConfigurationObject(type, datasets, options, labels);
25
25
  this.initializeNewChart(targetElement.nativeElement, config);
26
26
  }
27
27
  redrawChart() {
@@ -31,8 +31,8 @@ export class ChartJSService {
31
31
  const datasets = this.createDatasets(data);
32
32
  this.chart.data.datasets = datasets;
33
33
  }
34
- updateDataLabels(dataLabels) {
35
- this.chart.data.labels = dataLabels;
34
+ updateLabels(labels) {
35
+ this.chart.data.labels = labels;
36
36
  }
37
37
  updateType(type, customOptions) {
38
38
  if (type === 'bar' || type === 'column') {
@@ -83,11 +83,11 @@ export class ChartJSService {
83
83
  }
84
84
  destructivelyUpdateType(type, customOptions) {
85
85
  const datasets = this.chart.data.datasets;
86
- const dataLabels = this.chart.data.labels;
86
+ const labels = this.chart.data.labels;
87
87
  const annotations = this.getExistingChartAnnotations();
88
88
  this.chartType = type;
89
89
  const options = this.createOptionsObject({ customOptions, annotations });
90
- const config = this.createConfigurationObject(type, datasets, options, dataLabels);
90
+ const config = this.createConfigurationObject(type, datasets, options, labels);
91
91
  const canvasElement = this.chart.canvas;
92
92
  this.chart.destroy();
93
93
  this.initializeNewChart(canvasElement, config);
@@ -190,21 +190,19 @@ export class ChartJSService {
190
190
  day: 'numeric',
191
191
  }));
192
192
  }
193
- createConfigurationObject(type, datasets, options, dataLabels) {
193
+ createConfigurationObject(type, datasets, options, labels) {
194
194
  const typeConfig = this.chartConfigService.getTypeConfig(type);
195
- // chartJS requires labels; if none is provided create an empty string array
196
- // to make it optional for consumer.
197
- // However the stock chart, should have autogenerated labels if no
198
- // custom labels are supplied.
199
- const isStockType = type === 'stock';
200
- const labels = !dataLabels
201
- ? isStockType
202
- ? this.getDefaultStockLabels(datasets, this.locale)
203
- : this.createBlankLabels(datasets)
204
- : dataLabels;
195
+ const labelsToApply = (() => {
196
+ if ((labels === null || labels === void 0 ? void 0 : labels.length) > 0)
197
+ return labels;
198
+ else if (type === 'stock')
199
+ return this.getDefaultStockLabels(datasets, this.locale);
200
+ else
201
+ return this.createBlankLabels(datasets); // ChartJS requires labels
202
+ })();
205
203
  return mergeDeepAll(typeConfig, {
206
204
  data: {
207
- labels,
205
+ labels: labelsToApply,
208
206
  datasets,
209
207
  },
210
208
  options,
@@ -297,4 +295,4 @@ ChartJSService.decorators = [
297
295
  ChartJSService.ctorParameters = () => [
298
296
  { type: ChartConfigService }
299
297
  ];
300
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtanMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9jaGFydC9jaGFydC1qcy9jaGFydC1qcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVsQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQU1MLGFBQWEsR0FDZCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU5QyxNQUFNLG9CQUFvQixHQUFHLE9BQU8sQ0FBQztBQUdyQyxNQUFNLE9BQU8sY0FBYztJQU96QixZQUFvQixrQkFBc0M7UUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtJQUFHLENBQUM7SUFFdkQsV0FBVyxDQUFDLElBU2xCO1FBQ0MsTUFBTSxFQUNKLGFBQWEsRUFDYixJQUFJLEVBQ0osSUFBSSxFQUNKLFVBQVUsRUFDVixhQUFhLEVBQ2IsV0FBVyxFQUNYLGdCQUFnQixFQUNoQixtQkFBbUIsR0FDcEIsR0FBRyxJQUFJLENBQUM7UUFFVCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLElBQUksSUFBSSxDQUFDO1FBQ2pELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsSUFBSSxJQUFJLENBQUM7UUFDdkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFBLGdCQUFnQixhQUFoQixnQkFBZ0IsdUJBQWhCLGdCQUFnQixD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LENBQUMsRUFBRTtnQkFDOUQsS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdkIsT0FBTyxHQUFHLEtBQUssQ0FBQzthQUNqQjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUM1QixDQUFDOzs7WUFsWUYsVUFBVTs7OztZQU5GLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2ZUVsZW1lbnQsIENoYXJ0Q29uZmlndXJhdGlvbiwgQ2hhcnRPcHRpb25zLCBTY2F0dGVyRGF0YVBvaW50IH0gZnJvbSAnY2hhcnQuanMnO1xuaW1wb3J0IHsgQW5ub3RhdGlvbk9wdGlvbnMgfSBmcm9tICdjaGFydGpzLXBsdWdpbi1hbm5vdGF0aW9uJztcbmltcG9ydCB7IHRvRGF0ZSB9IGZyb20gJ2RhdGUtZm5zJztcblxuaW1wb3J0IHsgbWVyZ2VEZWVwQWxsIH0gZnJvbSAnLi4vLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwJztcbmltcG9ydCB7XG4gIENoYXJ0RGF0YUxhYmVsT3B0aW9ucyxcbiAgQ2hhcnREYXRhc2V0LFxuICBDaGFydEhpZ2hsaWdodGVkRWxlbWVudHMsXG4gIENoYXJ0TG9jYWxlLFxuICBDaGFydFR5cGUsXG4gIGlzTnVtYmVyQXJyYXksXG59IGZyb20gJy4uL2NoYXJ0LnR5cGVzJztcbmltcG9ydCB7IENoYXJ0Q29uZmlnU2VydmljZSB9IGZyb20gJy4uL2NvbmZpZ3MvY2hhcnQtY29uZmlnLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBDaGFydCB9IGZyb20gJy4vY29uZmlndXJlZC1jaGFydC1qcyc7XG5cbmNvbnN0IENIQVJUX0xPQ0FMRV9ERUZBVUxUID0gJ2VuLVVTJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENoYXJ0SlNTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjaGFydDogQ2hhcnQ7XG4gIHByaXZhdGUgZGF0YUxhYmVsT3B0aW9uczogQ2hhcnREYXRhTGFiZWxPcHRpb25zO1xuICBwcml2YXRlIGhpZ2hsaWdodGVkRWxlbWVudHM6IENoYXJ0SGlnaGxpZ2h0ZWRFbGVtZW50cztcbiAgcHJpdmF0ZSBjaGFydFR5cGU6IENoYXJ0VHlwZTtcbiAgcHJpdmF0ZSBsb2NhbGU6IENoYXJ0TG9jYWxlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhcnRDb25maWdTZXJ2aWNlOiBDaGFydENvbmZpZ1NlcnZpY2UpIHt9XG5cbiAgcHVibGljIHJlbmRlckNoYXJ0KGFyZ3M6IHtcbiAgICB0YXJnZXRFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxDYW52YXNFbGVtZW50PjtcbiAgICB0eXBlOiBDaGFydFR5cGU7XG4gICAgZGF0YTogQ2hhcnREYXRhc2V0W10gfCBudW1iZXJbXTtcbiAgICBkYXRhTGFiZWxzPzogc3RyaW5nW10gfCBzdHJpbmdbXVtdO1xuICAgIGN1c3RvbU9wdGlvbnM/OiBDaGFydE9wdGlvbnM7XG4gICAgYW5ub3RhdGlvbnM/OiBBbm5vdGF0aW9uT3B0aW9uc1tdO1xuICAgIGRhdGFMYWJlbE9wdGlvbnM/OiBDaGFydERhdGFMYWJlbE9wdGlvbnM7XG4gICAgaGlnaGxpZ2h0ZWRFbGVtZW50cz86IENoYXJ0SGlnaGxpZ2h0ZWRFbGVtZW50cztcbiAgfSk6IHZvaWQge1xuICAgIGNvbnN0IHtcbiAgICAgIHRhcmdldEVsZW1lbnQsXG4gICAgICB0eXBlLFxuICAgICAgZGF0YSxcbiAgICAgIGRhdGFMYWJlbHMsXG4gICAgICBjdXN0b21PcHRpb25zLFxuICAgICAgYW5ub3RhdGlvbnMsXG4gICAgICBkYXRhTGFiZWxPcHRpb25zLFxuICAgICAgaGlnaGxpZ2h0ZWRFbGVtZW50cyxcbiAgICB9ID0gYXJncztcblxuICAgIHRoaXMuZGF0YUxhYmVsT3B0aW9ucyA9IGRhdGFMYWJlbE9wdGlvbnMgfHwgbnVsbDtcbiAgICB0aGlzLmhpZ2hsaWdodGVkRWxlbWVudHMgPSBoaWdobGlnaHRlZEVsZW1lbnRzIHx8IG51bGw7XG4gICAgdGhpcy5jaGFydFR5cGUgPSB0eXBlO1xuICAgIHRoaXMubG9jYWxlID0gZGF0YUxhYmVsT3B0aW9ucz8ubG9jYWxlIHx8IENIQVJUX0xPQ0FMRV9ERUZBVUxUO1xuXG4gICAgY29uc3QgZGF0YXNldHMgPSB0aGlzLmNyZWF0ZURhdGFzZXRzKGRhdGEpO1xuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY3JlYXRlT3B0aW9uc09iamVjdCh7XG4gICAgICBjdXN0b21PcHRpb25zLFxuICAgICAgYW5ub3RhdGlvbnMsXG4gICAgICBkYXRhTGFiZWxPcHRpb25zLFxuICAgIH0pO1xuICAgIGxldCBjb25maWcgPSB0aGlzLmNyZWF0ZUNvbmZpZ3VyYXRpb25PYmplY3QodHlwZSwgZGF0YXNldHMsIG9wdGlvbnMsIGRhdGFMYWJlbHMpO1xuXG4gICAgdGhpcy5pbml0aWFsaXplTmV3Q2hhcnQodGFyZ2V0RWxlbWVudC5uYXRpdmVFbGVtZW50LCBjb25maWcpO1xuICB9XG5cbiAgcHVibGljIHJlZHJhd0NoYXJ0KCkge1xuICAgIHRoaXMuY2hhcnQudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlRGF0YShkYXRhOiBDaGFydERhdGFzZXRbXSB8IG51bWJlcltdKTogdm9pZCB7XG4gICAgY29uc3QgZGF0YXNldHMgPSB0aGlzLmNyZWF0ZURhdGFzZXRzKGRhdGEpO1xuXG4gICAgdGhpcy5jaGFydC5kYXRhLmRhdGFzZXRzID0gZGF0YXNldHM7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlRGF0YUxhYmVscyhkYXRhTGFiZWxzOiBzdHJpbmdbXSB8IHN0cmluZ1tdW10pIHtcbiAgICB0aGlzLmNoYXJ0LmRhdGEubGFiZWxzID0gZGF0YUxhYmVscztcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVUeXBlKHR5cGU6IENoYXJ0VHlwZSwgY3VzdG9tT3B0aW9ucz86IENoYXJ0T3B0aW9ucykge1xuICAgIGlmICh0eXBlID09PSAnYmFyJyB8fCB0eXBlID09PSAnY29sdW1uJykge1xuICAgICAgLyogaW5kZXhBeGlzIGRvZXMgbm90IHVwZGF0ZSBwcmVkaWN0YWJseTsgdXBkYXRlIGJ5IHJlcGxhY2luZyBcbiAgICAgICAgIHRoZSBjaGFydCBlbnRpcmVseSBpbnN0ZWFkICovXG4gICAgICB0aGlzLmRlc3RydWN0aXZlbHlVcGRhdGVUeXBlKHR5cGUsIGN1c3RvbU9wdGlvbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm5vbkRlc3RydWN0aXZlbHlVcGRhdGVUeXBlKHR5cGUsIGN1c3RvbU9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXREYXRhTGFiZWxPcHRpb25zKGRhdGFMYWJlbE9wdGlvbnM6IENoYXJ0RGF0YUxhYmVsT3B0aW9ucykge1xuICAgIHRoaXMuZGF0YUxhYmVsT3B0aW9ucyA9IGRhdGFMYWJlbE9wdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlT3B0aW9ucyhjdXN0b21PcHRpb25zOiBDaGFydE9wdGlvbnMsIHR5cGU6IENoYXJ0VHlwZSkge1xuICAgIGNvbnN0IGFubm90YXRpb25zID0gdGhpcy5nZXRFeGlzdGluZ0NoYXJ0QW5ub3RhdGlvbnMoKTtcbiAgICB0aGlzLmNoYXJ0VHlwZSA9IHR5cGU7XG4gICAgdGhpcy5jaGFydC5vcHRpb25zID0gdGhpcy5jcmVhdGVPcHRpb25zT2JqZWN0KHsgY3VzdG9tT3B0aW9ucywgYW5ub3RhdGlvbnMgfSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlQW5ub3RhdGlvbnMoYW5ub3RhdGlvbnM6IEFubm90YXRpb25PcHRpb25zW10pIHtcbiAgICBjb25zdCBhbm5vdGF0aW9uc1dpdGhEZWZhdWx0cyA9IHRoaXMuYXBwbHlEZWZhdWx0c1RvQW5ub3RhdGlvbnMoYW5ub3RhdGlvbnMpO1xuICAgIHRoaXMuY2hhcnQub3B0aW9ucy5wbHVnaW5zLmFubm90YXRpb24uYW5ub3RhdGlvbnMgPSBhbm5vdGF0aW9uc1dpdGhEZWZhdWx0cztcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVIaWdobGlnaHRlZEVsZW1lbnRzKGhpZ2hsaWdodGVkRWxlbWVudHM/OiBDaGFydEhpZ2hsaWdodGVkRWxlbWVudHMpIHtcbiAgICB0aGlzLmhpZ2hsaWdodGVkRWxlbWVudHMgPSBoaWdobGlnaHRlZEVsZW1lbnRzO1xuICAgIGNvbnN0IG9sZERhdGFzZXRzID0gdGhpcy5jaGFydC5kYXRhLmRhdGFzZXRzIGFzIENoYXJ0RGF0YXNldFtdO1xuXG4gICAgLy8gQ2xlYXIgb2xkIGRhdGFzZXRzIG9mIGhpZ2hsaWdodGVkIGVsZW1lbnRzXG4gICAgb2xkRGF0YXNldHMubWFwKChkYXRhc2V0KSA9PiB7XG4gICAgICBpZiAoZGF0YXNldD8ua2lyYnlPcHRpb25zPy5oaWdobGlnaHRlZEVsZW1lbnRzKSB7XG4gICAgICAgIGRlbGV0ZSBkYXRhc2V0LmtpcmJ5T3B0aW9ucy5oaWdobGlnaHRlZEVsZW1lbnRzO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5jaGFydC5kYXRhLmRhdGFzZXRzID0gdGhpcy5jcmVhdGVEYXRhc2V0cyhvbGREYXRhc2V0cyk7XG4gIH1cblxuICBwcml2YXRlIGdldEV4aXN0aW5nQ2hhcnRBbm5vdGF0aW9ucygpOiBBbm5vdGF0aW9uT3B0aW9uc1tdIHtcbiAgICBjb25zdCBhbm5vdGF0aW9ucyA9IHRoaXMuY2hhcnQub3B0aW9ucy5wbHVnaW5zPy5hbm5vdGF0aW9uPy5hbm5vdGF0aW9ucztcbiAgICAvKiBJbiBicm93c2VyIGNoYXJ0LmpzIG1pZ2h0IHJldHVybiBhbm5vdGF0aW9ucyBhcyBhIFByb3h5IG9iamVjdDsgZm9yY2UgaXQgdG8gYmUgYW4gYXJyYXkuXG4gICAgICAgRWFjaCBhbm5vdGF0aW9uT3B0aW9uIGluIHRoZSByZXN1bHRpbmcgYXJyYXkgIHdpbGwgYWxzbyBiZSBhIFByb3h5IG9iamVjdC4gXG4gICAgICAgQnV0IGludGVybmFsbHkgY2hhcnQuanMgd2lsbCBqdXN0IHdvcmsgd2l0aCB0aGVtIGFzIG5vcm1hbCB2YWx1ZXMgKi9cbiAgICBpZiAoYW5ub3RhdGlvbnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGFubm90YXRpb25zKS5tYXAoKGtleSkgPT4gYW5ub3RhdGlvbnNba2V5XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRlc3RydWN0aXZlbHlVcGRhdGVUeXBlKHR5cGU6IENoYXJ0VHlwZSwgY3VzdG9tT3B0aW9ucz86IENoYXJ0T3B0aW9ucykge1xuICAgIGNvbnN0IGRhdGFzZXRzID0gdGhpcy5jaGFydC5kYXRhLmRhdGFzZXRzIGFzIENoYXJ0RGF0YXNldFtdO1xuICAgIGNvbnN0IGRhdGFMYWJlbHMgPSB0aGlzLmNoYXJ0LmRhdGEubGFiZWxzO1xuICAgIGNvbnN0IGFubm90YXRpb25zID0gdGhpcy5nZXRFeGlzdGluZ0NoYXJ0QW5ub3RhdGlvbnMoKTtcblxuICAgIHRoaXMuY2hhcnRUeXBlID0gdHlwZTtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jcmVhdGVPcHRpb25zT2JqZWN0KHsgY3VzdG9tT3B0aW9ucywgYW5ub3RhdGlvbnMgfSk7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jcmVhdGVDb25maWd1cmF0aW9uT2JqZWN0KHR5cGUsIGRhdGFzZXRzLCBvcHRpb25zLCBkYXRhTGFiZWxzKTtcbiAgICBjb25zdCBjYW52YXNFbGVtZW50ID0gdGhpcy5jaGFydC5jYW52YXM7XG5cbiAgICB0aGlzLmNoYXJ0LmRlc3Ryb3koKTtcbiAgICB0aGlzLmluaXRpYWxpemVOZXdDaGFydChjYW52YXNFbGVtZW50LCBjb25maWcpO1xuICB9XG5cbiAgcHJpdmF0ZSBub25EZXN0cnVjdGl2ZWx5VXBkYXRlVHlwZShjaGFydFR5cGU6IENoYXJ0VHlwZSwgY3VzdG9tT3B0aW9ucz86IENoYXJ0T3B0aW9ucykge1xuICAgIGNvbnN0IGFubm90YXRpb25zID0gdGhpcy5nZXRFeGlzdGluZ0NoYXJ0QW5ub3RhdGlvbnMoKTtcbiAgICB0aGlzLmNoYXJ0VHlwZSA9IGNoYXJ0VHlwZTtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jcmVhdGVPcHRpb25zT2JqZWN0KHtcbiAgICAgIGN1c3RvbU9wdGlvbnMsXG4gICAgICBhbm5vdGF0aW9ucyxcbiAgICB9KTtcblxuICAgIHRoaXMuY2hhcnQub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5jaGFydC5jb25maWcudHlwZSA9IHRoaXMuY2hhcnRDb25maWdTZXJ2aWNlLmNoYXJ0VHlwZVRvQ2hhcnRKU1R5cGUoY2hhcnRUeXBlKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZU5ld0NoYXJ0KGNhbnZhc0VsZW1lbnQ6IEhUTUxDYW52YXNFbGVtZW50LCBjb25maWc6IENoYXJ0Q29uZmlndXJhdGlvbikge1xuICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQoY2FudmFzRWxlbWVudCwgY29uZmlnKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQmxhbmtMYWJlbHMoZGF0YXNldHM6IENoYXJ0RGF0YXNldFtdKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGxhcmdlc3REYXRhc2V0ID0gZGF0YXNldHMucmVkdWNlKChwcmV2aW91c0RhdGFzZXQsIGN1cnJlbnREYXRhc2V0KSA9PlxuICAgICAgcHJldmlvdXNEYXRhc2V0LmRhdGEubGVuZ3RoID4gY3VycmVudERhdGFzZXQuZGF0YS5sZW5ndGggPyBwcmV2aW91c0RhdGFzZXQgOiBjdXJyZW50RGF0YXNldFxuICAgICk7XG4gICAgcmV0dXJuIEFycmF5KGxhcmdlc3REYXRhc2V0LmRhdGEubGVuZ3RoKS5maWxsKCcnKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlEZWZhdWx0c1RvQW5ub3RhdGlvbnMoYW5ub3RhdGlvbnM6IEFubm90YXRpb25PcHRpb25zW10pIHtcbiAgICByZXR1cm4gYW5ub3RhdGlvbnMubWFwKChhbm5vdGF0aW9uKSA9PiB7XG4gICAgICBjb25zdCBhbm5vdGF0aW9uVHlwZURlZmF1bHRzID0gdGhpcy5jaGFydENvbmZpZ1NlcnZpY2UuZ2V0QW5ub3RhdGlvbkRlZmF1bHRzKGFubm90YXRpb24udHlwZSk7XG4gICAgICByZXR1cm4gbWVyZ2VEZWVwQWxsKGFubm90YXRpb25UeXBlRGVmYXVsdHMsIGFubm90YXRpb24pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVBbm5vdGF0aW9uUGx1Z2luT3B0aW9uc09iamVjdChhbm5vdGF0aW9uczogQW5ub3RhdGlvbk9wdGlvbnNbXSkge1xuICAgIGNvbnN0IGFubm90YXRpb25zV2l0aERlZmF1bHRzID0gdGhpcy5hcHBseURlZmF1bHRzVG9Bbm5vdGF0aW9ucyhhbm5vdGF0aW9ucyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBsdWdpbnM6IHtcbiAgICAgICAgYW5ub3RhdGlvbjoge1xuICAgICAgICAgIGFubm90YXRpb25zOiBhbm5vdGF0aW9uc1dpdGhEZWZhdWx0cyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlJbnRlcmFjdGlvbkZ1bmN0aW9uc0V4dGVuc2lvbnMob3B0aW9uczogQ2hhcnRPcHRpb25zKTogQ2hhcnRPcHRpb25zIHtcbiAgICBjb25zdCBpbnRlcmFjdGlvbkZ1bmN0aW9uc0V4dGVuc2lvbnMgPSB0aGlzLmNoYXJ0Q29uZmlnU2VydmljZS5nZXRJbnRlcmFjdGlvbkZ1bmN0aW9uc0V4dGVuc2lvbnMoKTtcbiAgICBPYmplY3QuZW50cmllcyhpbnRlcmFjdGlvbkZ1bmN0aW9uc0V4dGVuc2lvbnMpLmZvckVhY2goKFtrZXksIF9dKSA9PiB7XG4gICAgICBjb25zdCBjYWxsYmFjayA9IG9wdGlvbnNba2V5XTtcbiAgICAgIG9wdGlvbnNba2V5XSA9IChlOiBFdmVudCwgYTogQWN0aXZlRWxlbWVudFtdLCBjOiBDaGFydCkgPT4ge1xuICAgICAgICBpbnRlcmFjdGlvbkZ1bmN0aW9uc0V4dGVuc2lvbnNba2V5XShlLCBhLCBjLCBjYWxsYmFjayk7XG4gICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVTdG9ja09wdGlvbnNPYmplY3QoZGF0YUxhYmVsT3B0aW9uczogQ2hhcnREYXRhTGFiZWxPcHRpb25zKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvY2FsZTogdGhpcy5sb2NhbGUsXG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgIHRvb2x0aXA6IHtcbiAgICAgICAgICBjYWxsYmFja3M6IHtcbiAgICAgICAgICAgIHRpdGxlOiAodG9vbHRpcEl0ZW1zKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGRhdGUgPSB0b0RhdGUoKHRvb2x0aXBJdGVtc1swXT8ucmF3IGFzIGFueSk/LngpO1xuICAgICAgICAgICAgICBpZiAoZGF0ZS52YWx1ZU9mKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZS50b0xvY2FsZVRpbWVTdHJpbmcodGhpcy5sb2NhbGUsIHtcbiAgICAgICAgICAgICAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgICAgICAgICAgICAgbW9udGg6ICdzaG9ydCcsXG4gICAgICAgICAgICAgICAgICBob3VyOiAnMi1kaWdpdCcsXG4gICAgICAgICAgICAgICAgICBtaW51dGU6ICcyLWRpZ2l0JyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhYmVsOiAoY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAvLyBJdCdzIG5vdCBwb3NzaWJsZSB0byBhZGQgc3BhY2luZyBiZXR3ZWVuIGNvbG9yIGxlZ2VuZCBhbmQgdGV4dCBzbyB3ZVxuICAgICAgICAgICAgICAvLyBwcmVmaXggd2l0aCBhIHNwYWNlLlxuICAgICAgICAgICAgICByZXR1cm4gJyAnICsgY29udGV4dC5mb3JtYXR0ZWRWYWx1ZSArIChkYXRhTGFiZWxPcHRpb25zLnZhbHVlU3VmZml4IHx8ICcnKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBzY2FsZXM6IHtcbiAgICAgICAgeToge1xuICAgICAgICAgIHRpY2tzOiB7XG4gICAgICAgICAgICBjYWxsYmFjazogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB2YWx1ZSArIChkYXRhTGFiZWxPcHRpb25zLnZhbHVlU3VmZml4IHx8ICcnKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlT3B0aW9uc09iamVjdChhcmdzOiB7XG4gICAgY3VzdG9tT3B0aW9ucz86IENoYXJ0T3B0aW9ucztcbiAgICBhbm5vdGF0aW9ucz86IEFubm90YXRpb25PcHRpb25zW107XG4gICAgZGF0YUxhYmVsT3B0aW9ucz86IENoYXJ0RGF0YUxhYmVsT3B0aW9ucztcbiAgfSk6IENoYXJ0T3B0aW9ucyB7XG4gICAgY29uc3QgeyBjdXN0b21PcHRpb25zLCBhbm5vdGF0aW9ucywgZGF0YUxhYmVsT3B0aW9uczogY2hhcnREYXRhTGFiZWxPcHRpb25zIH0gPSBhcmdzO1xuXG4gICAgY29uc3QgdHlwZUNvbmZpZyA9IHRoaXMuY2hhcnRDb25maWdTZXJ2aWNlLmdldFR5cGVDb25maWcodGhpcy5jaGFydFR5cGUpO1xuICAgIGNvbnN0IHR5cGVDb25maWdPcHRpb25zID0gdHlwZUNvbmZpZz8ub3B0aW9ucztcbiAgICBjb25zdCBhbm5vdGF0aW9uUGx1Z2luT3B0aW9ucyA9IGFubm90YXRpb25zXG4gICAgICA/IHRoaXMuY3JlYXRlQW5ub3RhdGlvblBsdWdpbk9wdGlvbnNPYmplY3QoYW5ub3RhdGlvbnMpXG4gICAgICA6IHt9O1xuICAgIGNvbnN0IHN0b2NrT3B0aW9uczogQ2hhcnRPcHRpb25zID1cbiAgICAgIHRoaXMuY2hhcnRUeXBlID09PSAnc3RvY2snID8gdGhpcy5jcmVhdGVTdG9ja09wdGlvbnNPYmplY3QoY2hhcnREYXRhTGFiZWxPcHRpb25zKSA6IHt9O1xuXG4gICAgbGV0IG9wdGlvbnM6IENoYXJ0T3B0aW9ucyA9IG1lcmdlRGVlcEFsbChcbiAgICAgIHN0b2NrT3B0aW9ucyxcbiAgICAgIHR5cGVDb25maWdPcHRpb25zLFxuICAgICAgY3VzdG9tT3B0aW9ucyxcbiAgICAgIGFubm90YXRpb25QbHVnaW5PcHRpb25zXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLmFwcGx5SW50ZXJhY3Rpb25GdW5jdGlvbnNFeHRlbnNpb25zKG9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREZWZhdWx0U3RvY2tMYWJlbHMoZGF0YXNldHM6IENoYXJ0RGF0YXNldFtdLCBsb2NhbGU6IENoYXJ0TG9jYWxlKSB7XG4gICAgY29uc3QgbGFyZ2VzdERhdGFzZXQgPSBkYXRhc2V0cy5yZWR1Y2UoKHByZXZpb3VzRGF0YXNldCwgY3VycmVudERhdGFzZXQpID0+XG4gICAgICBwcmV2aW91c0RhdGFzZXQuZGF0YS5sZW5ndGggPiBjdXJyZW50RGF0YXNldC5kYXRhLmxlbmd0aCA/IHByZXZpb3VzRGF0YXNldCA6IGN1cnJlbnREYXRhc2V0XG4gICAgKTtcbiAgICByZXR1cm4gbGFyZ2VzdERhdGFzZXQuZGF0YS5tYXAoKHBvaW50OiBTY2F0dGVyRGF0YVBvaW50KSA9PlxuICAgICAgdG9EYXRlKHBvaW50LngpLnRvTG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUsIHtcbiAgICAgICAgbW9udGg6ICdzaG9ydCcsXG4gICAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDb25maWd1cmF0aW9uT2JqZWN0KFxuICAgIHR5cGU6IENoYXJ0VHlwZSxcbiAgICBkYXRhc2V0czogQ2hhcnREYXRhc2V0W10sXG4gICAgb3B0aW9uczogQ2hhcnRPcHRpb25zLFxuICAgIGRhdGFMYWJlbHM/OiB1bmtub3duW11cbiAgKTogQ2hhcnRDb25maWd1cmF0aW9uIHtcbiAgICBjb25zdCB0eXBlQ29uZmlnID0gdGhpcy5jaGFydENvbmZpZ1NlcnZpY2UuZ2V0VHlwZUNvbmZpZyh0eXBlKTtcblxuICAgIC8vIGNoYXJ0SlMgcmVxdWlyZXMgbGFiZWxzOyBpZiBub25lIGlzIHByb3ZpZGVkIGNyZWF0ZSBhbiBlbXB0eSBzdHJpbmcgYXJyYXlcbiAgICAvLyB0byBtYWtlIGl0IG9wdGlvbmFsIGZvciBjb25zdW1lci5cbiAgICAvLyBIb3dldmVyIHRoZSBzdG9jayBjaGFydCwgc2hvdWxkIGhhdmUgYXV0b2dlbmVyYXRlZCBsYWJlbHMgaWYgbm9cbiAgICAvLyBjdXN0b20gbGFiZWxzIGFyZSBzdXBwbGllZC5cbiAgICBjb25zdCBpc1N0b2NrVHlwZSA9IHR5cGUgPT09ICdzdG9jayc7XG4gICAgY29uc3QgbGFiZWxzID0gIWRhdGFMYWJlbHNcbiAgICAgID8gaXNTdG9ja1R5cGVcbiAgICAgICAgPyB0aGlzLmdldERlZmF1bHRTdG9ja0xhYmVscyhkYXRhc2V0cywgdGhpcy5sb2NhbGUpXG4gICAgICAgIDogdGhpcy5jcmVhdGVCbGFua0xhYmVscyhkYXRhc2V0cylcbiAgICAgIDogZGF0YUxhYmVscztcblxuICAgIHJldHVybiBtZXJnZURlZXBBbGwodHlwZUNvbmZpZywge1xuICAgICAgZGF0YToge1xuICAgICAgICBsYWJlbHMsXG4gICAgICAgIGRhdGFzZXRzLFxuICAgICAgfSxcbiAgICAgIG9wdGlvbnMsXG4gICAgfSkgYXMgQ2hhcnRDb25maWd1cmF0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRIaWdobGlnaHRlZEVsZW1lbnRzVG9EYXRhc2V0cyhcbiAgICBoaWdobGlnaHRlZEVsZW1lbnRzOiBDaGFydEhpZ2hsaWdodGVkRWxlbWVudHMsXG4gICAgZGF0YXNldHM6IENoYXJ0RGF0YXNldFtdXG4gICkge1xuICAgIGhpZ2hsaWdodGVkRWxlbWVudHMuZm9yRWFjaCgoW2RhdGFzZXRJbmRleCwgZGF0YUluZGV4XSkgPT4ge1xuICAgICAgY29uc3QgZGF0YXNldCA9IGRhdGFzZXRzW2RhdGFzZXRJbmRleF07XG4gICAgICBpZiAoIWRhdGFzZXQpIHJldHVybjtcblxuICAgICAgaWYgKGRhdGFzZXQ/LmtpcmJ5T3B0aW9ucz8uaGlnaGxpZ2h0ZWRFbGVtZW50cykge1xuICAgICAgICBkYXRhc2V0LmtpcmJ5T3B0aW9ucy5oaWdobGlnaHRlZEVsZW1lbnRzLnB1c2goZGF0YUluZGV4KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRhdGFzZXQua2lyYnlPcHRpb25zID0ge1xuICAgICAgICAgIC4uLmRhdGFzZXQua2lyYnlPcHRpb25zLFxuICAgICAgICAgIGhpZ2hsaWdodGVkRWxlbWVudHM6IFtkYXRhSW5kZXhdLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlRGF0YXNldHMoZGF0YTogQ2hhcnREYXRhc2V0W10gfCBudW1iZXJbXSk6IENoYXJ0RGF0YXNldFtdIHtcbiAgICAvLyBXZSBuZWVkIHRvIG1vZGlmeSB0aGUgZGF0YXNldHMgaW4gb3JkZXIgdG8gYWRkIGRhdGFsYWJlbHMuXG4gICAgaWYgKFxuICAgICAgdGhpcy5kYXRhTGFiZWxPcHRpb25zPy5zaG93Q3VycmVudCB8fFxuICAgICAgdGhpcy5kYXRhTGFiZWxPcHRpb25zPy5zaG93TWF4IHx8XG4gICAgICB0aGlzLmRhdGFMYWJlbE9wdGlvbnM/LnNob3dNaW5cbiAgICApIHtcbiAgICAgIGRhdGEgPSB0aGlzLmFkZERhdGFMYWJlbHNEYXRhKGRhdGEpO1xuICAgIH1cbiAgICBsZXQgZGF0YXNldHMgPSBpc051bWJlckFycmF5KGRhdGEpID8gW3sgZGF0YSB9XSA6IGRhdGE7XG4gICAgaWYgKHRoaXMuaGlnaGxpZ2h0ZWRFbGVtZW50cylcbiAgICAgIHRoaXMuYWRkSGlnaGxpZ2h0ZWRFbGVtZW50c1RvRGF0YXNldHModGhpcy5oaWdobGlnaHRlZEVsZW1lbnRzLCBkYXRhc2V0cyk7XG5cbiAgICAvKiBcbiAgICAgICBIYWNreSBzb2x1dGlvbi4gU2hvdWxkIGJlIGZpeGVkIGluIHRoaXMgaXNzdWU6XG4gICAgICBodHRwczovL2dpdGh1Yi5jb20va2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2lzc3Vlcy8xOTY3IFxuICAgICovXG4gICAgaWYgKHRoaXMuY2hhcnRUeXBlID09PSAnc3RvY2snKSB7XG4gICAgICBkYXRhc2V0cy5mb3JFYWNoKChkYXRhc2V0KSA9PiB7XG4gICAgICAgIGRhdGFzZXQua2lyYnlPcHRpb25zID0ge1xuICAgICAgICAgIC4uLmRhdGFzZXQua2lyYnlPcHRpb25zLFxuICAgICAgICAgIGlzU3RvY2tDaGFydDogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBkYXRhc2V0cztcbiAgfVxuICAvKipcbiAgICogRGVjb3JhdGUgQ2hhcnREYXRhc2V0IHdpdGggcHJvcGVydGllcyB0byBhbGxvdyBmb3IgZGF0YWxhYmVscy5cbiAgICpcbiAgICogQHBhcmFtIGRhdGFcbiAgICogQHJldHVybnMgQ2hhcnREYXRhc2V0W11cbiAgICovXG4gIHB1YmxpYyBhZGREYXRhTGFiZWxzRGF0YShkYXRhOiBDaGFydERhdGFzZXRbXSB8IG51bWJlcltdKTogQ2hhcnREYXRhc2V0W10ge1xuICAgIGlmIChpc051bWJlckFycmF5KGRhdGEpKSB7XG4gICAgICB0aHJvdyBFcnJvcihcIkN1cnJlbnRseSBpdCdzIGltcG9zc2libGUgdG8gYWRkIGRhdGFMYWJlbHMgdG8gbm9uIFNjYXR0ZXJEYXRhUG9pbnQgZGF0YXNldHNcIik7XG4gICAgfVxuXG4gICAgY29uc3QgZGVjb3JhdGVEYXRhUG9pbnQgPSAoXG4gICAgICBzZXQ6IENoYXJ0RGF0YXNldCxcbiAgICAgIGF4aXM6ICd4JyB8ICd5JyxcbiAgICAgIGRpcmVjdGlvbjogJ2hpZ2gnIHwgJ2xvdycsXG4gICAgICBwb3NpdGlvbjogJ2JvdHRvbScgfCAndG9wJyB8ICdsZWZ0JyB8ICdyaWdodCdcbiAgICApOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUsIHBvaW50ZXIgfSA9IHRoaXMubG9jYXRlVmFsdWVJbmRleEluRGF0YXNldChzZXQsIGF4aXMsIGRpcmVjdGlvbik7XG4gICAgICBzZXQuZGF0YVtwb2ludGVyXSA9IHtcbiAgICAgICAgLi4uKHNldC5kYXRhW3BvaW50ZXJdIGFzIFNjYXR0ZXJEYXRhUG9pbnQpLFxuICAgICAgICBkYXRhbGFiZWw6IHtcbiAgICAgICAgICB2YWx1ZTogdmFsdWUgKyAodGhpcy5kYXRhTGFiZWxPcHRpb25zLnZhbHVlU3VmZml4IHx8ICcnKSxcbiAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgfSxcbiAgICAgIH0gYXMgU2NhdHRlckRhdGFQb2ludDtcbiAgICB9O1xuXG4gICAgZGF0YS5tYXAoKHNldCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZGF0YUxhYmVsT3B0aW9ucy5zaG93TWluKSB7XG4gICAgICAgIGRlY29yYXRlRGF0YVBvaW50KHNldCwgJ3knLCAnbG93JywgJ2JvdHRvbScpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZGF0YUxhYmVsT3B0aW9ucy5zaG93TWF4KSB7XG4gICAgICAgIGRlY29yYXRlRGF0YVBvaW50KHNldCwgJ3knLCAnaGlnaCcsICd0b3AnKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmRhdGFMYWJlbE9wdGlvbnMuc2hvd0N1cnJlbnQpIHtcbiAgICAgICAgZGVjb3JhdGVEYXRhUG9pbnQoc2V0LCAneCcsICdoaWdoJywgJ3JpZ2h0Jyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBwcml2YXRlIGxvY2F0ZVZhbHVlSW5kZXhJbkRhdGFzZXQoXG4gICAgZGF0YXNldDogQ2hhcnREYXRhc2V0LFxuICAgIGF4aXM6IHN0cmluZyxcbiAgICBkaXJlY3Rpb246ICdsb3cnIHwgJ2hpZ2gnXG4gICk6IHsgdmFsdWU6IG51bWJlcjsgcG9pbnRlcjogbnVtYmVyIH0ge1xuICAgIGxldCBwb2ludGVyOiBudW1iZXI7XG4gICAgbGV0IHZhbHVlOiBudW1iZXI7XG4gICAgZGF0YXNldC5kYXRhLmZvckVhY2goKGRhdGFwb2ludCwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChkaXJlY3Rpb24gPT0gJ2xvdycgJiYgKCF2YWx1ZSB8fCBkYXRhcG9pbnRbYXhpc10gPCB2YWx1ZSkpIHtcbiAgICAgICAgdmFsdWUgPSBkYXRhcG9pbnRbJ3knXTtcbiAgICAgICAgcG9pbnRlciA9IGluZGV4O1xuICAgICAgfVxuICAgICAgaWYgKGRpcmVjdGlvbiA9PSAnaGlnaCcgJiYgKCF2YWx1ZSB8fCBkYXRhcG9pbnRbYXhpc10gPiB2YWx1ZSkpIHtcbiAgICAgICAgdmFsdWUgPSBkYXRhcG9pbnRbJ3knXTtcbiAgICAgICAgcG9pbnRlciA9IGluZGV4O1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB7IHZhbHVlLCBwb2ludGVyIH07XG4gIH1cbn1cbiJdfQ==
298
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtanMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9jaGFydC9jaGFydC1qcy9jaGFydC1qcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVsQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQU1MLGFBQWEsR0FDZCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU5QyxNQUFNLG9CQUFvQixHQUFHLE9BQU8sQ0FBQztBQUdyQyxNQUFNLE9BQU8sY0FBYztJQU96QixZQUFvQixrQkFBc0M7UUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtJQUFHLENBQUM7SUFFdkQsV0FBVyxDQUFDLElBU2xCO1FBQ0MsTUFBTSxFQUNKLGFBQWEsRUFDYixJQUFJLEVBQ0osSUFBSSxFQUNKLE1BQU0sRUFDTixhQUFhLEVBQ2IsV0FBVyxFQUNYLGdCQUFnQixFQUNoQixtQkFBbUIsR0FDcEIsR0FBRyxJQUFJLENBQUM7UUFFVCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLElBQUksSUFBSSxDQUFDO1FBQ2pELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsSUFBSSxJQUFJLENBQUM7UUFDdkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFBLGdCQUFnQixhQUFoQixnQkFBZ0IsdUJBQWhCLGdCQUFnQixD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QUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUM5RCxLQUFLLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN2QixPQUFPLEdBQUcsS0FBSyxDQUFDO2FBQ2pCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzVCLENBQUM7OztZQTdYRixVQUFVOzs7O1lBTkYsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZlRWxlbWVudCwgQ2hhcnRDb25maWd1cmF0aW9uLCBDaGFydE9wdGlvbnMsIFNjYXR0ZXJEYXRhUG9pbnQgfSBmcm9tICdjaGFydC5qcyc7XG5pbXBvcnQgeyBBbm5vdGF0aW9uT3B0aW9ucyB9IGZyb20gJ2NoYXJ0anMtcGx1Z2luLWFubm90YXRpb24nO1xuaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSAnZGF0ZS1mbnMnO1xuXG5pbXBvcnQgeyBtZXJnZURlZXBBbGwgfSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAnO1xuaW1wb3J0IHtcbiAgQ2hhcnREYXRhTGFiZWxPcHRpb25zLFxuICBDaGFydERhdGFzZXQsXG4gIENoYXJ0SGlnaGxpZ2h0ZWRFbGVtZW50cyxcbiAgQ2hhcnRMb2NhbGUsXG4gIENoYXJ0VHlwZSxcbiAgaXNOdW1iZXJBcnJheSxcbn0gZnJvbSAnLi4vY2hhcnQudHlwZXMnO1xuaW1wb3J0IHsgQ2hhcnRDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vY29uZmlncy9jaGFydC1jb25maWcuc2VydmljZSc7XG5cbmltcG9ydCB7IENoYXJ0IH0gZnJvbSAnLi9jb25maWd1cmVkLWNoYXJ0LWpzJztcblxuY29uc3QgQ0hBUlRfTE9DQUxFX0RFRkFVTFQgPSAnZW4tVVMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2hhcnRKU1NlcnZpY2Uge1xuICBwcml2YXRlIGNoYXJ0OiBDaGFydDtcbiAgcHJpdmF0ZSBkYXRhTGFiZWxPcHRpb25zOiBDaGFydERhdGFMYWJlbE9wdGlvbnM7XG4gIHByaXZhdGUgaGlnaGxpZ2h0ZWRFbGVtZW50czogQ2hhcnRIaWdobGlnaHRlZEVsZW1lbnRzO1xuICBwcml2YXRlIGNoYXJ0VHlwZTogQ2hhcnRUeXBlO1xuICBwcml2YXRlIGxvY2FsZTogQ2hhcnRMb2NhbGU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFydENvbmZpZ1NlcnZpY2U6IENoYXJ0Q29uZmlnU2VydmljZSkge31cblxuICBwdWJsaWMgcmVuZGVyQ2hhcnQoYXJnczoge1xuICAgIHRhcmdldEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTENhbnZhc0VsZW1lbnQ+O1xuICAgIHR5cGU6IENoYXJ0VHlwZTtcbiAgICBkYXRhOiBDaGFydERhdGFzZXRbXSB8IG51bWJlcltdO1xuICAgIGxhYmVscz86IHN0cmluZ1tdIHwgc3RyaW5nW11bXTtcbiAgICBjdXN0b21PcHRpb25zPzogQ2hhcnRPcHRpb25zO1xuICAgIGFubm90YXRpb25zPzogQW5ub3RhdGlvbk9wdGlvbnNbXTtcbiAgICBkYXRhTGFiZWxPcHRpb25zPzogQ2hhcnREYXRhTGFiZWxPcHRpb25zO1xuICAgIGhpZ2hsaWdodGVkRWxlbWVudHM/OiBDaGFydEhpZ2hsaWdodGVkRWxlbWVudHM7XG4gIH0pOiB2b2lkIHtcbiAgICBjb25zdCB7XG4gICAgICB0YXJnZXRFbGVtZW50LFxuICAgICAgdHlwZSxcbiAgICAgIGRhdGEsXG4gICAgICBsYWJlbHMsXG4gICAgICBjdXN0b21PcHRpb25zLFxuICAgICAgYW5ub3RhdGlvbnMsXG4gICAgICBkYXRhTGFiZWxPcHRpb25zLFxuICAgICAgaGlnaGxpZ2h0ZWRFbGVtZW50cyxcbiAgICB9ID0gYXJncztcblxuICAgIHRoaXMuZGF0YUxhYmVsT3B0aW9ucyA9IGRhdGFMYWJlbE9wdGlvbnMgfHwgbnVsbDtcbiAgICB0aGlzLmhpZ2hsaWdodGVkRWxlbWVudHMgPSBoaWdobGlnaHRlZEVsZW1lbnRzIHx8IG51bGw7XG4gICAgdGhpcy5jaGFydFR5cGUgPSB0eXBlO1xuICAgIHRoaXMubG9jYWxlID0gZGF0YUxhYmVsT3B0aW9ucz8ubG9jYWxlIHx8IENIQVJUX0xPQ0FMRV9ERUZBVUxUO1xuXG4gICAgY29uc3QgZGF0YXNldHMgPSB0aGlzLmNyZWF0ZURhdGFzZXRzKGRhdGEpO1xuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY3JlYXRlT3B0aW9uc09iamVjdCh7XG4gICAgICBjdXN0b21PcHRpb25zLFxuICAgICAgYW5ub3RhdGlvbnMsXG4gICAgICBkYXRhTGFiZWxPcHRpb25zLFxuICAgIH0pO1xuICAgIGxldCBjb25maWcgPSB0aGlzLmNyZWF0ZUNvbmZpZ3VyYXRpb25PYmplY3QodHlwZSwgZGF0YXNldHMsIG9wdGlvbnMsIGxhYmVscyk7XG5cbiAgICB0aGlzLmluaXRpYWxpemVOZXdDaGFydCh0YXJnZXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIGNvbmZpZyk7XG4gIH1cblxuICBwdWJsaWMgcmVkcmF3Q2hhcnQoKSB7XG4gICAgdGhpcy5jaGFydC51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVEYXRhKGRhdGE6IENoYXJ0RGF0YXNldFtdIHwgbnVtYmVyW10pOiB2b2lkIHtcbiAgICBjb25zdCBkYXRhc2V0cyA9IHRoaXMuY3JlYXRlRGF0YXNldHMoZGF0YSk7XG5cbiAgICB0aGlzLmNoYXJ0LmRhdGEuZGF0YXNldHMgPSBkYXRhc2V0cztcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVMYWJlbHMobGFiZWxzOiBzdHJpbmdbXSB8IHN0cmluZ1tdW10pIHtcbiAgICB0aGlzLmNoYXJ0LmRhdGEubGFiZWxzID0gbGFiZWxzO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVR5cGUodHlwZTogQ2hhcnRUeXBlLCBjdXN0b21PcHRpb25zPzogQ2hhcnRPcHRpb25zKSB7XG4gICAgaWYgKHR5cGUgPT09ICdiYXInIHx8IHR5cGUgPT09ICdjb2x1bW4nKSB7XG4gICAgICAvKiBpbmRleEF4aXMgZG9lcyBub3QgdXBkYXRlIHByZWRpY3RhYmx5OyB1cGRhdGUgYnkgcmVwbGFjaW5nIFxuICAgICAgICAgdGhlIGNoYXJ0IGVudGlyZWx5IGluc3RlYWQgKi9cbiAgICAgIHRoaXMuZGVzdHJ1Y3RpdmVseVVwZGF0ZVR5cGUodHlwZSwgY3VzdG9tT3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubm9uRGVzdHJ1Y3RpdmVseVVwZGF0ZVR5cGUodHlwZSwgY3VzdG9tT3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldERhdGFMYWJlbE9wdGlvbnMoZGF0YUxhYmVsT3B0aW9uczogQ2hhcnREYXRhTGFiZWxPcHRpb25zKSB7XG4gICAgdGhpcy5kYXRhTGFiZWxPcHRpb25zID0gZGF0YUxhYmVsT3B0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVPcHRpb25zKGN1c3RvbU9wdGlvbnM6IENoYXJ0T3B0aW9ucywgdHlwZTogQ2hhcnRUeXBlKSB7XG4gICAgY29uc3QgYW5ub3RhdGlvbnMgPSB0aGlzLmdldEV4aXN0aW5nQ2hhcnRBbm5vdGF0aW9ucygpO1xuICAgIHRoaXMuY2hhcnRUeXBlID0gdHlwZTtcbiAgICB0aGlzLmNoYXJ0Lm9wdGlvbnMgPSB0aGlzLmNyZWF0ZU9wdGlvbnNPYmplY3QoeyBjdXN0b21PcHRpb25zLCBhbm5vdGF0aW9ucyB9KTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVBbm5vdGF0aW9ucyhhbm5vdGF0aW9uczogQW5ub3RhdGlvbk9wdGlvbnNbXSkge1xuICAgIGNvbnN0IGFubm90YXRpb25zV2l0aERlZmF1bHRzID0gdGhpcy5hcHBseURlZmF1bHRzVG9Bbm5vdGF0aW9ucyhhbm5vdGF0aW9ucyk7XG4gICAgdGhpcy5jaGFydC5vcHRpb25zLnBsdWdpbnMuYW5ub3RhdGlvbi5hbm5vdGF0aW9ucyA9IGFubm90YXRpb25zV2l0aERlZmF1bHRzO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUhpZ2hsaWdodGVkRWxlbWVudHMoaGlnaGxpZ2h0ZWRFbGVtZW50cz86IENoYXJ0SGlnaGxpZ2h0ZWRFbGVtZW50cykge1xuICAgIHRoaXMuaGlnaGxpZ2h0ZWRFbGVtZW50cyA9IGhpZ2hsaWdodGVkRWxlbWVudHM7XG4gICAgY29uc3Qgb2xkRGF0YXNldHMgPSB0aGlzLmNoYXJ0LmRhdGEuZGF0YXNldHMgYXMgQ2hhcnREYXRhc2V0W107XG5cbiAgICAvLyBDbGVhciBvbGQgZGF0YXNldHMgb2YgaGlnaGxpZ2h0ZWQgZWxlbWVudHNcbiAgICBvbGREYXRhc2V0cy5tYXAoKGRhdGFzZXQpID0+IHtcbiAgICAgIGlmIChkYXRhc2V0Py5raXJieU9wdGlvbnM/LmhpZ2hsaWdodGVkRWxlbWVudHMpIHtcbiAgICAgICAgZGVsZXRlIGRhdGFzZXQua2lyYnlPcHRpb25zLmhpZ2hsaWdodGVkRWxlbWVudHM7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmNoYXJ0LmRhdGEuZGF0YXNldHMgPSB0aGlzLmNyZWF0ZURhdGFzZXRzKG9sZERhdGFzZXRzKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXhpc3RpbmdDaGFydEFubm90YXRpb25zKCk6IEFubm90YXRpb25PcHRpb25zW10ge1xuICAgIGNvbnN0IGFubm90YXRpb25zID0gdGhpcy5jaGFydC5vcHRpb25zLnBsdWdpbnM/LmFubm90YXRpb24/LmFubm90YXRpb25zO1xuICAgIC8qIEluIGJyb3dzZXIgY2hhcnQuanMgbWlnaHQgcmV0dXJuIGFubm90YXRpb25zIGFzIGEgUHJveHkgb2JqZWN0OyBmb3JjZSBpdCB0byBiZSBhbiBhcnJheS5cbiAgICAgICBFYWNoIGFubm90YXRpb25PcHRpb24gaW4gdGhlIHJlc3VsdGluZyBhcnJheSAgd2lsbCBhbHNvIGJlIGEgUHJveHkgb2JqZWN0LiBcbiAgICAgICBCdXQgaW50ZXJuYWxseSBjaGFydC5qcyB3aWxsIGp1c3Qgd29yayB3aXRoIHRoZW0gYXMgbm9ybWFsIHZhbHVlcyAqL1xuICAgIGlmIChhbm5vdGF0aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMoYW5ub3RhdGlvbnMpLm1hcCgoa2V5KSA9PiBhbm5vdGF0aW9uc1trZXldKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJ1Y3RpdmVseVVwZGF0ZVR5cGUodHlwZTogQ2hhcnRUeXBlLCBjdXN0b21PcHRpb25zPzogQ2hhcnRPcHRpb25zKSB7XG4gICAgY29uc3QgZGF0YXNldHMgPSB0aGlzLmNoYXJ0LmRhdGEuZGF0YXNldHMgYXMgQ2hhcnREYXRhc2V0W107XG4gICAgY29uc3QgbGFiZWxzID0gdGhpcy5jaGFydC5kYXRhLmxhYmVscztcbiAgICBjb25zdCBhbm5vdGF0aW9ucyA9IHRoaXMuZ2V0RXhpc3RpbmdDaGFydEFubm90YXRpb25zKCk7XG5cbiAgICB0aGlzLmNoYXJ0VHlwZSA9IHR5cGU7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY3JlYXRlT3B0aW9uc09iamVjdCh7IGN1c3RvbU9wdGlvbnMsIGFubm90YXRpb25zIH0pO1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY3JlYXRlQ29uZmlndXJhdGlvbk9iamVjdCh0eXBlLCBkYXRhc2V0cywgb3B0aW9ucywgbGFiZWxzKTtcbiAgICBjb25zdCBjYW52YXNFbGVtZW50ID0gdGhpcy5jaGFydC5jYW52YXM7XG5cbiAgICB0aGlzLmNoYXJ0LmRlc3Ryb3koKTtcbiAgICB0aGlzLmluaXRpYWxpemVOZXdDaGFydChjYW52YXNFbGVtZW50LCBjb25maWcpO1xuICB9XG5cbiAgcHJpdmF0ZSBub25EZXN0cnVjdGl2ZWx5VXBkYXRlVHlwZShjaGFydFR5cGU6IENoYXJ0VHlwZSwgY3VzdG9tT3B0aW9ucz86IENoYXJ0T3B0aW9ucykge1xuICAgIGNvbnN0IGFubm90YXRpb25zID0gdGhpcy5nZXRFeGlzdGluZ0NoYXJ0QW5ub3RhdGlvbnMoKTtcbiAgICB0aGlzLmNoYXJ0VHlwZSA9IGNoYXJ0VHlwZTtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jcmVhdGVPcHRpb25zT2JqZWN0KHtcbiAgICAgIGN1c3RvbU9wdGlvbnMsXG4gICAgICBhbm5vdGF0aW9ucyxcbiAgICB9KTtcblxuICAgIHRoaXMuY2hhcnQub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5jaGFydC5jb25maWcudHlwZSA9IHRoaXMuY2hhcnRDb25maWdTZXJ2aWNlLmNoYXJ0VHlwZVRvQ2hhcnRKU1R5cGUoY2hhcnRUeXBlKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZU5ld0NoYXJ0KGNhbnZhc0VsZW1lbnQ6IEhUTUxDYW52YXNFbGVtZW50LCBjb25maWc6IENoYXJ0Q29uZmlndXJhdGlvbikge1xuICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQoY2FudmFzRWxlbWVudCwgY29uZmlnKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQmxhbmtMYWJlbHMoZGF0YXNldHM6IENoYXJ0RGF0YXNldFtdKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGxhcmdlc3REYXRhc2V0ID0gZGF0YXNldHMucmVkdWNlKChwcmV2aW91c0RhdGFzZXQsIGN1cnJlbnREYXRhc2V0KSA9PlxuICAgICAgcHJldmlvdXNEYXRhc2V0LmRhdGEubGVuZ3RoID4gY3VycmVudERhdGFzZXQuZGF0YS5sZW5ndGggPyBwcmV2aW91c0RhdGFzZXQgOiBjdXJyZW50RGF0YXNldFxuICAgICk7XG4gICAgcmV0dXJuIEFycmF5KGxhcmdlc3REYXRhc2V0LmRhdGEubGVuZ3RoKS5maWxsKCcnKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlEZWZhdWx0c1RvQW5ub3RhdGlvbnMoYW5ub3RhdGlvbnM6IEFubm90YXRpb25PcHRpb25zW10pIHtcbiAgICByZXR1cm4gYW5ub3RhdGlvbnMubWFwKChhbm5vdGF0aW9uKSA9PiB7XG4gICAgICBjb25zdCBhbm5vdGF0aW9uVHlwZURlZmF1bHRzID0gdGhpcy5jaGFydENvbmZpZ1NlcnZpY2UuZ2V0QW5ub3RhdGlvbkRlZmF1bHRzKGFubm90YXRpb24udHlwZSk7XG4gICAgICByZXR1cm4gbWVyZ2VEZWVwQWxsKGFubm90YXRpb25UeXBlRGVmYXVsdHMsIGFubm90YXRpb24pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVBbm5vdGF0aW9uUGx1Z2luT3B0aW9uc09iamVjdChhbm5vdGF0aW9uczogQW5ub3RhdGlvbk9wdGlvbnNbXSkge1xuICAgIGNvbnN0IGFubm90YXRpb25zV2l0aERlZmF1bHRzID0gdGhpcy5hcHBseURlZmF1bHRzVG9Bbm5vdGF0aW9ucyhhbm5vdGF0aW9ucyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBsdWdpbnM6IHtcbiAgICAgICAgYW5ub3RhdGlvbjoge1xuICAgICAgICAgIGFubm90YXRpb25zOiBhbm5vdGF0aW9uc1dpdGhEZWZhdWx0cyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlJbnRlcmFjdGlvbkZ1bmN0aW9uc0V4dGVuc2lvbnMob3B0aW9uczogQ2hhcnRPcHRpb25zKTogQ2hhcnRPcHRpb25zIHtcbiAgICBjb25zdCBpbnRlcmFjdGlvbkZ1bmN0aW9uc0V4dGVuc2lvbnMgPSB0aGlzLmNoYXJ0Q29uZmlnU2VydmljZS5nZXRJbnRlcmFjdGlvbkZ1bmN0aW9uc0V4dGVuc2lvbnMoKTtcbiAgICBPYmplY3QuZW50cmllcyhpbnRlcmFjdGlvbkZ1bmN0aW9uc0V4dGVuc2lvbnMpLmZvckVhY2goKFtrZXksIF9dKSA9PiB7XG4gICAgICBjb25zdCBjYWxsYmFjayA9IG9wdGlvbnNba2V5XTtcbiAgICAgIG9wdGlvbnNba2V5XSA9IChlOiBFdmVudCwgYTogQWN0aXZlRWxlbWVudFtdLCBjOiBDaGFydCkgPT4ge1xuICAgICAgICBpbnRlcmFjdGlvbkZ1bmN0aW9uc0V4dGVuc2lvbnNba2V5XShlLCBhLCBjLCBjYWxsYmFjayk7XG4gICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVTdG9ja09wdGlvbnNPYmplY3QoZGF0YUxhYmVsT3B0aW9uczogQ2hhcnREYXRhTGFiZWxPcHRpb25zKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvY2FsZTogdGhpcy5sb2NhbGUsXG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgIHRvb2x0aXA6IHtcbiAgICAgICAgICBjYWxsYmFja3M6IHtcbiAgICAgICAgICAgIHRpdGxlOiAodG9vbHRpcEl0ZW1zKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGRhdGUgPSB0b0RhdGUoKHRvb2x0aXBJdGVtc1swXT8ucmF3IGFzIGFueSk/LngpO1xuICAgICAgICAgICAgICBpZiAoZGF0ZS52YWx1ZU9mKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZS50b0xvY2FsZVRpbWVTdHJpbmcodGhpcy5sb2NhbGUsIHtcbiAgICAgICAgICAgICAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgICAgICAgICAgICAgbW9udGg6ICdzaG9ydCcsXG4gICAgICAgICAgICAgICAgICBob3VyOiAnMi1kaWdpdCcsXG4gICAgICAgICAgICAgICAgICBtaW51dGU6ICcyLWRpZ2l0JyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhYmVsOiAoY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAvLyBJdCdzIG5vdCBwb3NzaWJsZSB0byBhZGQgc3BhY2luZyBiZXR3ZWVuIGNvbG9yIGxlZ2VuZCBhbmQgdGV4dCBzbyB3ZVxuICAgICAgICAgICAgICAvLyBwcmVmaXggd2l0aCBhIHNwYWNlLlxuICAgICAgICAgICAgICByZXR1cm4gJyAnICsgY29udGV4dC5mb3JtYXR0ZWRWYWx1ZSArIChkYXRhTGFiZWxPcHRpb25zLnZhbHVlU3VmZml4IHx8ICcnKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBzY2FsZXM6IHtcbiAgICAgICAgeToge1xuICAgICAgICAgIHRpY2tzOiB7XG4gICAgICAgICAgICBjYWxsYmFjazogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB2YWx1ZSArIChkYXRhTGFiZWxPcHRpb25zLnZhbHVlU3VmZml4IHx8ICcnKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlT3B0aW9uc09iamVjdChhcmdzOiB7XG4gICAgY3VzdG9tT3B0aW9ucz86IENoYXJ0T3B0aW9ucztcbiAgICBhbm5vdGF0aW9ucz86IEFubm90YXRpb25PcHRpb25zW107XG4gICAgZGF0YUxhYmVsT3B0aW9ucz86IENoYXJ0RGF0YUxhYmVsT3B0aW9ucztcbiAgfSk6IENoYXJ0T3B0aW9ucyB7XG4gICAgY29uc3QgeyBjdXN0b21PcHRpb25zLCBhbm5vdGF0aW9ucywgZGF0YUxhYmVsT3B0aW9uczogY2hhcnREYXRhTGFiZWxPcHRpb25zIH0gPSBhcmdzO1xuXG4gICAgY29uc3QgdHlwZUNvbmZpZyA9IHRoaXMuY2hhcnRDb25maWdTZXJ2aWNlLmdldFR5cGVDb25maWcodGhpcy5jaGFydFR5cGUpO1xuICAgIGNvbnN0IHR5cGVDb25maWdPcHRpb25zID0gdHlwZUNvbmZpZz8ub3B0aW9ucztcbiAgICBjb25zdCBhbm5vdGF0aW9uUGx1Z2luT3B0aW9ucyA9IGFubm90YXRpb25zXG4gICAgICA/IHRoaXMuY3JlYXRlQW5ub3RhdGlvblBsdWdpbk9wdGlvbnNPYmplY3QoYW5ub3RhdGlvbnMpXG4gICAgICA6IHt9O1xuICAgIGNvbnN0IHN0b2NrT3B0aW9uczogQ2hhcnRPcHRpb25zID1cbiAgICAgIHRoaXMuY2hhcnRUeXBlID09PSAnc3RvY2snID8gdGhpcy5jcmVhdGVTdG9ja09wdGlvbnNPYmplY3QoY2hhcnREYXRhTGFiZWxPcHRpb25zKSA6IHt9O1xuXG4gICAgbGV0IG9wdGlvbnM6IENoYXJ0T3B0aW9ucyA9IG1lcmdlRGVlcEFsbChcbiAgICAgIHN0b2NrT3B0aW9ucyxcbiAgICAgIHR5cGVDb25maWdPcHRpb25zLFxuICAgICAgY3VzdG9tT3B0aW9ucyxcbiAgICAgIGFubm90YXRpb25QbHVnaW5PcHRpb25zXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLmFwcGx5SW50ZXJhY3Rpb25GdW5jdGlvbnNFeHRlbnNpb25zKG9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREZWZhdWx0U3RvY2tMYWJlbHMoZGF0YXNldHM6IENoYXJ0RGF0YXNldFtdLCBsb2NhbGU6IENoYXJ0TG9jYWxlKSB7XG4gICAgY29uc3QgbGFyZ2VzdERhdGFzZXQgPSBkYXRhc2V0cy5yZWR1Y2UoKHByZXZpb3VzRGF0YXNldCwgY3VycmVudERhdGFzZXQpID0+XG4gICAgICBwcmV2aW91c0RhdGFzZXQuZGF0YS5sZW5ndGggPiBjdXJyZW50RGF0YXNldC5kYXRhLmxlbmd0aCA/IHByZXZpb3VzRGF0YXNldCA6IGN1cnJlbnREYXRhc2V0XG4gICAgKTtcbiAgICByZXR1cm4gbGFyZ2VzdERhdGFzZXQuZGF0YS5tYXAoKHBvaW50OiBTY2F0dGVyRGF0YVBvaW50KSA9PlxuICAgICAgdG9EYXRlKHBvaW50LngpLnRvTG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUsIHtcbiAgICAgICAgbW9udGg6ICdzaG9ydCcsXG4gICAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDb25maWd1cmF0aW9uT2JqZWN0KFxuICAgIHR5cGU6IENoYXJ0VHlwZSxcbiAgICBkYXRhc2V0czogQ2hhcnREYXRhc2V0W10sXG4gICAgb3B0aW9uczogQ2hhcnRPcHRpb25zLFxuICAgIGxhYmVscz86IHVua25vd25bXVxuICApOiBDaGFydENvbmZpZ3VyYXRpb24ge1xuICAgIGNvbnN0IHR5cGVDb25maWcgPSB0aGlzLmNoYXJ0Q29uZmlnU2VydmljZS5nZXRUeXBlQ29uZmlnKHR5cGUpO1xuXG4gICAgY29uc3QgbGFiZWxzVG9BcHBseSA9ICgoKSA9PiB7XG4gICAgICBpZiAobGFiZWxzPy5sZW5ndGggPiAwKSByZXR1cm4gbGFiZWxzO1xuICAgICAgZWxzZSBpZiAodHlwZSA9PT0gJ3N0b2NrJykgcmV0dXJuIHRoaXMuZ2V0RGVmYXVsdFN0b2NrTGFiZWxzKGRhdGFzZXRzLCB0aGlzLmxvY2FsZSk7XG4gICAgICBlbHNlIHJldHVybiB0aGlzLmNyZWF0ZUJsYW5rTGFiZWxzKGRhdGFzZXRzKTsgLy8gQ2hhcnRKUyByZXF1aXJlcyBsYWJlbHNcbiAgICB9KSgpO1xuXG4gICAgcmV0dXJuIG1lcmdlRGVlcEFsbCh0eXBlQ29uZmlnLCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIGxhYmVsczogbGFiZWxzVG9BcHBseSxcbiAgICAgICAgZGF0YXNldHMsXG4gICAgICB9LFxuICAgICAgb3B0aW9ucyxcbiAgICB9KSBhcyBDaGFydENvbmZpZ3VyYXRpb247XG4gIH1cblxuICBwcml2YXRlIGFkZEhpZ2hsaWdodGVkRWxlbWVudHNUb0RhdGFzZXRzKFxuICAgIGhpZ2hsaWdodGVkRWxlbWVudHM6IENoYXJ0SGlnaGxpZ2h0ZWRFbGVtZW50cyxcbiAgICBkYXRhc2V0czogQ2hhcnREYXRhc2V0W11cbiAgKSB7XG4gICAgaGlnaGxpZ2h0ZWRFbGVtZW50cy5mb3JFYWNoKChbZGF0YXNldEluZGV4LCBkYXRhSW5kZXhdKSA9PiB7XG4gICAgICBjb25zdCBkYXRhc2V0ID0gZGF0YXNldHNbZGF0YXNldEluZGV4XTtcbiAgICAgIGlmICghZGF0YXNldCkgcmV0dXJuO1xuXG4gICAgICBpZiAoZGF0YXNldD8ua2lyYnlPcHRpb25zPy5oaWdobGlnaHRlZEVsZW1lbnRzKSB7XG4gICAgICAgIGRhdGFzZXQua2lyYnlPcHRpb25zLmhpZ2hsaWdodGVkRWxlbWVudHMucHVzaChkYXRhSW5kZXgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGF0YXNldC5raXJieU9wdGlvbnMgPSB7XG4gICAgICAgICAgLi4uZGF0YXNldC5raXJieU9wdGlvbnMsXG4gICAgICAgICAgaGlnaGxpZ2h0ZWRFbGVtZW50czogW2RhdGFJbmRleF0sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVEYXRhc2V0cyhkYXRhOiBDaGFydERhdGFzZXRbXSB8IG51bWJlcltdKTogQ2hhcnREYXRhc2V0W10ge1xuICAgIC8vIFdlIG5lZWQgdG8gbW9kaWZ5IHRoZSBkYXRhc2V0cyBpbiBvcmRlciB0byBhZGQgZGF0YWxhYmVscy5cbiAgICBpZiAoXG4gICAgICB0aGlzLmRhdGFMYWJlbE9wdGlvbnM/LnNob3dDdXJyZW50IHx8XG4gICAgICB0aGlzLmRhdGFMYWJlbE9wdGlvbnM/LnNob3dNYXggfHxcbiAgICAgIHRoaXMuZGF0YUxhYmVsT3B0aW9ucz8uc2hvd01pblxuICAgICkge1xuICAgICAgZGF0YSA9IHRoaXMuYWRkRGF0YUxhYmVsc0RhdGEoZGF0YSk7XG4gICAgfVxuICAgIGxldCBkYXRhc2V0cyA9IGlzTnVtYmVyQXJyYXkoZGF0YSkgPyBbeyBkYXRhIH1dIDogZGF0YTtcbiAgICBpZiAodGhpcy5oaWdobGlnaHRlZEVsZW1lbnRzKVxuICAgICAgdGhpcy5hZGRIaWdobGlnaHRlZEVsZW1lbnRzVG9EYXRhc2V0cyh0aGlzLmhpZ2hsaWdodGVkRWxlbWVudHMsIGRhdGFzZXRzKTtcblxuICAgIC8qIFxuICAgICAgIEhhY2t5IHNvbHV0aW9uLiBTaG91bGQgYmUgZml4ZWQgaW4gdGhpcyBpc3N1ZTpcbiAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9raXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vaXNzdWVzLzE5NjcgXG4gICAgKi9cbiAgICBpZiAodGhpcy5jaGFydFR5cGUgPT09ICdzdG9jaycpIHtcbiAgICAgIGRhdGFzZXRzLmZvckVhY2goKGRhdGFzZXQpID0+IHtcbiAgICAgICAgZGF0YXNldC5raXJieU9wdGlvbnMgPSB7XG4gICAgICAgICAgLi4uZGF0YXNldC5raXJieU9wdGlvbnMsXG4gICAgICAgICAgaXNTdG9ja0NoYXJ0OiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGFzZXRzO1xuICB9XG4gIC8qKlxuICAgKiBEZWNvcmF0ZSBDaGFydERhdGFzZXQgd2l0aCBwcm9wZXJ0aWVzIHRvIGFsbG93IGZvciBkYXRhbGFiZWxzLlxuICAgKlxuICAgKiBAcGFyYW0gZGF0YVxuICAgKiBAcmV0dXJucyBDaGFydERhdGFzZXRbXVxuICAgKi9cbiAgcHVibGljIGFkZERhdGFMYWJlbHNEYXRhKGRhdGE6IENoYXJ0RGF0YXNldFtdIHwgbnVtYmVyW10pOiBDaGFydERhdGFzZXRbXSB7XG4gICAgaWYgKGlzTnVtYmVyQXJyYXkoZGF0YSkpIHtcbiAgICAgIHRocm93IEVycm9yKFwiQ3VycmVudGx5IGl0J3MgaW1wb3NzaWJsZSB0byBhZGQgZGF0YUxhYmVscyB0byBub24gU2NhdHRlckRhdGFQb2ludCBkYXRhc2V0c1wiKTtcbiAgICB9XG5cbiAgICBjb25zdCBkZWNvcmF0ZURhdGFQb2ludCA9IChcbiAgICAgIHNldDogQ2hhcnREYXRhc2V0LFxuICAgICAgYXhpczogJ3gnIHwgJ3knLFxuICAgICAgZGlyZWN0aW9uOiAnaGlnaCcgfCAnbG93JyxcbiAgICAgIHBvc2l0aW9uOiAnYm90dG9tJyB8ICd0b3AnIHwgJ2xlZnQnIHwgJ3JpZ2h0J1xuICAgICk6IHZvaWQgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSwgcG9pbnRlciB9ID0gdGhpcy5sb2NhdGVWYWx1ZUluZGV4SW5EYXRhc2V0KHNldCwgYXhpcywgZGlyZWN0aW9uKTtcbiAgICAgIHNldC5kYXRhW3BvaW50ZXJdID0ge1xuICAgICAgICAuLi4oc2V0LmRhdGFbcG9pbnRlcl0gYXMgU2NhdHRlckRhdGFQb2ludCksXG4gICAgICAgIGRhdGFsYWJlbDoge1xuICAgICAgICAgIHZhbHVlOiB2YWx1ZSArICh0aGlzLmRhdGFMYWJlbE9wdGlvbnMudmFsdWVTdWZmaXggfHwgJycpLFxuICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICB9LFxuICAgICAgfSBhcyBTY2F0dGVyRGF0YVBvaW50O1xuICAgIH07XG5cbiAgICBkYXRhLm1hcCgoc2V0KSA9PiB7XG4gICAgICBpZiAodGhpcy5kYXRhTGFiZWxPcHRpb25zLnNob3dNaW4pIHtcbiAgICAgICAgZGVjb3JhdGVEYXRhUG9pbnQoc2V0LCAneScsICdsb3cnLCAnYm90dG9tJyk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5kYXRhTGFiZWxPcHRpb25zLnNob3dNYXgpIHtcbiAgICAgICAgZGVjb3JhdGVEYXRhUG9pbnQoc2V0LCAneScsICdoaWdoJywgJ3RvcCcpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZGF0YUxhYmVsT3B0aW9ucy5zaG93Q3VycmVudCkge1xuICAgICAgICBkZWNvcmF0ZURhdGFQb2ludChzZXQsICd4JywgJ2hpZ2gnLCAncmlnaHQnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgbG9jYXRlVmFsdWVJbmRleEluRGF0YXNldChcbiAgICBkYXRhc2V0OiBDaGFydERhdGFzZXQsXG4gICAgYXhpczogc3RyaW5nLFxuICAgIGRpcmVjdGlvbjogJ2xvdycgfCAnaGlnaCdcbiAgKTogeyB2YWx1ZTogbnVtYmVyOyBwb2ludGVyOiBudW1iZXIgfSB7XG4gICAgbGV0IHBvaW50ZXI6IG51bWJlcjtcbiAgICBsZXQgdmFsdWU6IG51bWJlcjtcbiAgICBkYXRhc2V0LmRhdGEuZm9yRWFjaCgoZGF0YXBvaW50LCBpbmRleCkgPT4ge1xuICAgICAgaWYgKGRpcmVjdGlvbiA9PSAnbG93JyAmJiAoIXZhbHVlIHx8IGRhdGFwb2ludFtheGlzXSA8IHZhbHVlKSkge1xuICAgICAgICB2YWx1ZSA9IGRhdGFwb2ludFsneSddO1xuICAgICAgICBwb2ludGVyID0gaW5kZXg7XG4gICAgICB9XG4gICAgICBpZiAoZGlyZWN0aW9uID09ICdoaWdoJyAmJiAoIXZhbHVlIHx8IGRhdGFwb2ludFtheGlzXSA+IHZhbHVlKSkge1xuICAgICAgICB2YWx1ZSA9IGRhdGFwb2ludFsneSddO1xuICAgICAgICBwb2ludGVyID0gaW5kZXg7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHsgdmFsdWUsIHBvaW50ZXIgfTtcbiAgfVxufVxuIl19
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"ChartJSService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":20,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"../configs/chart-config.service","name":"ChartConfigService","line":28,"character":42}]}],"renderChart":[{"__symbolic":"method"}],"redrawChart":[{"__symbolic":"method"}],"updateData":[{"__symbolic":"method"}],"updateDataLabels":[{"__symbolic":"method"}],"updateType":[{"__symbolic":"method"}],"setDataLabelOptions":[{"__symbolic":"method"}],"updateOptions":[{"__symbolic":"method"}],"updateAnnotations":[{"__symbolic":"method"}],"updateHighlightedElements":[{"__symbolic":"method"}],"getExistingChartAnnotations":[{"__symbolic":"method"}],"destructivelyUpdateType":[{"__symbolic":"method"}],"nonDestructivelyUpdateType":[{"__symbolic":"method"}],"initializeNewChart":[{"__symbolic":"method"}],"createBlankLabels":[{"__symbolic":"method"}],"applyDefaultsToAnnotations":[{"__symbolic":"method"}],"createAnnotationPluginOptionsObject":[{"__symbolic":"method"}],"applyInteractionFunctionsExtensions":[{"__symbolic":"method"}],"createStockOptionsObject":[{"__symbolic":"method"}],"createOptionsObject":[{"__symbolic":"method"}],"getDefaultStockLabels":[{"__symbolic":"method"}],"createConfigurationObject":[{"__symbolic":"method"}],"addHighlightedElementsToDatasets":[{"__symbolic":"method"}],"createDatasets":[{"__symbolic":"method"}],"addDataLabelsData":[{"__symbolic":"method"}],"locateValueIndexInDataset":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"ChartJSService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":20,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"../configs/chart-config.service","name":"ChartConfigService","line":28,"character":42}]}],"renderChart":[{"__symbolic":"method"}],"redrawChart":[{"__symbolic":"method"}],"updateData":[{"__symbolic":"method"}],"updateLabels":[{"__symbolic":"method"}],"updateType":[{"__symbolic":"method"}],"setDataLabelOptions":[{"__symbolic":"method"}],"updateOptions":[{"__symbolic":"method"}],"updateAnnotations":[{"__symbolic":"method"}],"updateHighlightedElements":[{"__symbolic":"method"}],"getExistingChartAnnotations":[{"__symbolic":"method"}],"destructivelyUpdateType":[{"__symbolic":"method"}],"nonDestructivelyUpdateType":[{"__symbolic":"method"}],"initializeNewChart":[{"__symbolic":"method"}],"createBlankLabels":[{"__symbolic":"method"}],"applyDefaultsToAnnotations":[{"__symbolic":"method"}],"createAnnotationPluginOptionsObject":[{"__symbolic":"method"}],"applyInteractionFunctionsExtensions":[{"__symbolic":"method"}],"createStockOptionsObject":[{"__symbolic":"method"}],"createOptionsObject":[{"__symbolic":"method"}],"getDefaultStockLabels":[{"__symbolic":"method"}],"createConfigurationObject":[{"__symbolic":"method"}],"addHighlightedElementsToDatasets":[{"__symbolic":"method"}],"createDatasets":[{"__symbolic":"method"}],"addDataLabelsData":[{"__symbolic":"method"}],"locateValueIndexInDataset":[{"__symbolic":"method"}]}}}}]
@@ -18,4 +18,4 @@ Object.entries(CHART_GLOBAL_DEFAULTS).forEach(([key]) => {
18
18
  Chart.defaults[key] = mergedDefaults[key];
19
19
  });
20
20
  export { Chart };
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlZC1jaGFydC1qcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9jaGFydC9jaGFydC1qcy9jb25maWd1cmVkLWNoYXJ0LWpzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxhQUFhLEVBQ2IsVUFBVSxFQUNWLGFBQWEsRUFDYixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixXQUFXLEVBQ1gsY0FBYyxFQUNkLFdBQVcsRUFDWCxZQUFZLEVBRVosT0FBTyxHQUNSLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sZ0JBQWdCLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxlQUFlLE1BQU0sMkJBQTJCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sWUFBWSxNQUFNLHlEQUF5RCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTFFLE1BQU0sWUFBWSxHQUFHLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ2xELE1BQU0sY0FBYyxHQUFHLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztBQUMvRCxNQUFNLGlCQUFpQixHQUFHLENBQUMsYUFBYSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQzFELE1BQU0sYUFBYSxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFFekY7a0RBQ2tEO0FBQ2xELEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsWUFBWSxFQUFFLEdBQUcsY0FBYyxFQUFFLEdBQUcsaUJBQWlCLEVBQUUsR0FBRyxhQUFhLENBQUMsQ0FBQztBQUVuRztvQ0FDb0M7QUFDcEMsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUscUJBQXFCLENBQUMsQ0FBQztBQUMzRSxNQUFNLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFO0lBQ3RELEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzVDLENBQUMsQ0FBQyxDQUFDO0FBRUgsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFyQ29udHJvbGxlcixcbiAgQmFyRWxlbWVudCxcbiAgQ2F0ZWdvcnlTY2FsZSxcbiAgQ2hhcnQsXG4gIEZpbGxlcixcbiAgTGVnZW5kLFxuICBMaW5lYXJTY2FsZSxcbiAgTGluZUNvbnRyb2xsZXIsXG4gIExpbmVFbGVtZW50LFxuICBQb2ludEVsZW1lbnQsXG4gIFRpbWVTY2FsZSxcbiAgVG9vbHRpcCxcbn0gZnJvbSAnY2hhcnQuanMnO1xuaW1wb3J0IGFubm90YXRpb25QbHVnaW4gZnJvbSAnY2hhcnRqcy1wbHVnaW4tYW5ub3RhdGlvbic7XG5pbXBvcnQgQ2hhcnREYXRhTGFiZWxzIGZyb20gJ2NoYXJ0anMtcGx1Z2luLWRhdGFsYWJlbHMnO1xuXG5pbXBvcnQgeyBtZXJnZURlZXBBbGwgfSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAnO1xuaW1wb3J0IE1hcmtlclBsdWdpbiBmcm9tICcuLi9jaGFydC1qcy9jaGFydGpzLXBsdWdpbi1tYXJrZXIvY2hhcnRqcy1wbHVnaW4tbWFya2VyJztcbmltcG9ydCB7IENIQVJUX0dMT0JBTF9ERUZBVUxUUyB9IGZyb20gJy4uL2NvbmZpZ3MvZ2xvYmFsLWRlZmF1bHRzLmNvbmZpZyc7XG5cbmNvbnN0IENIQVJUX1NDQUxFUyA9IFtDYXRlZ29yeVNjYWxlLCBMaW5lYXJTY2FsZV07XG5jb25zdCBDSEFSVF9FTEVNRU5UUyA9IFtCYXJFbGVtZW50LCBMaW5lRWxlbWVudCwgUG9pbnRFbGVtZW50XTtcbmNvbnN0IENIQVJUX0NPTlRST0xMRVJTID0gW0JhckNvbnRyb2xsZXIsIExpbmVDb250cm9sbGVyXTtcbmNvbnN0IENIQVJUX1BMVUdJTlMgPSBbYW5ub3RhdGlvblBsdWdpbiwgRmlsbGVyLCBDaGFydERhdGFMYWJlbHMsIFRvb2x0aXAsIE1hcmtlclBsdWdpbl07XG5cbi8qIE9yZGVyIG1hdHRlcnM7IGRlZmF1bHRzIG11c3QgYmUgbWVyZ2VkIGFmdGVyIHJlZ2lzdGVyIGFzIFxuICAgcmVnaXN0ZXIgbW9kaWZpZXMgdGhlIENoYXJ0LmRlZmF1bHRzIG9iamVjdHMgKi9cbkNoYXJ0LnJlZ2lzdGVyKExlZ2VuZCwgLi4uQ0hBUlRfU0NBTEVTLCAuLi5DSEFSVF9FTEVNRU5UUywgLi4uQ0hBUlRfQ09OVFJPTExFUlMsIC4uLkNIQVJUX1BMVUdJTlMpO1xuXG4vKiBDaGFydC5kZWZhdWx0cyBpcyByZWFkIG9ubHk7IHNldCBlYWNoIGtleSBtb2RpZmllZCBpbiBcbiAgIENIQVJUX0dMT0JBTF9ERUZBVUxUUyBtYW51YWxseSAqL1xuY29uc3QgbWVyZ2VkRGVmYXVsdHMgPSBtZXJnZURlZXBBbGwoQ2hhcnQuZGVmYXVsdHMsIENIQVJUX0dMT0JBTF9ERUZBVUxUUyk7XG5PYmplY3QuZW50cmllcyhDSEFSVF9HTE9CQUxfREVGQVVMVFMpLmZvckVhY2goKFtrZXldKSA9PiB7XG4gIENoYXJ0LmRlZmF1bHRzW2tleV0gPSBtZXJnZWREZWZhdWx0c1trZXldO1xufSk7XG5cbmV4cG9ydCB7IENoYXJ0IH07XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlZC1jaGFydC1qcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9jaGFydC9jaGFydC1qcy9jb25maWd1cmVkLWNoYXJ0LWpzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxhQUFhLEVBQ2IsVUFBVSxFQUNWLGFBQWEsRUFDYixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixXQUFXLEVBQ1gsY0FBYyxFQUNkLFdBQVcsRUFDWCxZQUFZLEVBQ1osT0FBTyxHQUNSLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sZ0JBQWdCLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxlQUFlLE1BQU0sMkJBQTJCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sWUFBWSxNQUFNLHlEQUF5RCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTFFLE1BQU0sWUFBWSxHQUFHLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ2xELE1BQU0sY0FBYyxHQUFHLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztBQUMvRCxNQUFNLGlCQUFpQixHQUFHLENBQUMsYUFBYSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQzFELE1BQU0sYUFBYSxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFFekY7a0RBQ2tEO0FBQ2xELEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsWUFBWSxFQUFFLEdBQUcsY0FBYyxFQUFFLEdBQUcsaUJBQWlCLEVBQUUsR0FBRyxhQUFhLENBQUMsQ0FBQztBQUVuRztvQ0FDb0M7QUFDcEMsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUscUJBQXFCLENBQUMsQ0FBQztBQUMzRSxNQUFNLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFO0lBQ3RELEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzVDLENBQUMsQ0FBQyxDQUFDO0FBRUgsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFyQ29udHJvbGxlcixcbiAgQmFyRWxlbWVudCxcbiAgQ2F0ZWdvcnlTY2FsZSxcbiAgQ2hhcnQsXG4gIEZpbGxlcixcbiAgTGVnZW5kLFxuICBMaW5lYXJTY2FsZSxcbiAgTGluZUNvbnRyb2xsZXIsXG4gIExpbmVFbGVtZW50LFxuICBQb2ludEVsZW1lbnQsXG4gIFRvb2x0aXAsXG59IGZyb20gJ2NoYXJ0LmpzJztcbmltcG9ydCBhbm5vdGF0aW9uUGx1Z2luIGZyb20gJ2NoYXJ0anMtcGx1Z2luLWFubm90YXRpb24nO1xuaW1wb3J0IENoYXJ0RGF0YUxhYmVscyBmcm9tICdjaGFydGpzLXBsdWdpbi1kYXRhbGFiZWxzJztcblxuaW1wb3J0IHsgbWVyZ2VEZWVwQWxsIH0gZnJvbSAnLi4vLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwJztcbmltcG9ydCBNYXJrZXJQbHVnaW4gZnJvbSAnLi4vY2hhcnQtanMvY2hhcnRqcy1wbHVnaW4tbWFya2VyL2NoYXJ0anMtcGx1Z2luLW1hcmtlcic7XG5pbXBvcnQgeyBDSEFSVF9HTE9CQUxfREVGQVVMVFMgfSBmcm9tICcuLi9jb25maWdzL2dsb2JhbC1kZWZhdWx0cy5jb25maWcnO1xuXG5jb25zdCBDSEFSVF9TQ0FMRVMgPSBbQ2F0ZWdvcnlTY2FsZSwgTGluZWFyU2NhbGVdO1xuY29uc3QgQ0hBUlRfRUxFTUVOVFMgPSBbQmFyRWxlbWVudCwgTGluZUVsZW1lbnQsIFBvaW50RWxlbWVudF07XG5jb25zdCBDSEFSVF9DT05UUk9MTEVSUyA9IFtCYXJDb250cm9sbGVyLCBMaW5lQ29udHJvbGxlcl07XG5jb25zdCBDSEFSVF9QTFVHSU5TID0gW2Fubm90YXRpb25QbHVnaW4sIEZpbGxlciwgQ2hhcnREYXRhTGFiZWxzLCBUb29sdGlwLCBNYXJrZXJQbHVnaW5dO1xuXG4vKiBPcmRlciBtYXR0ZXJzOyBkZWZhdWx0cyBtdXN0IGJlIG1lcmdlZCBhZnRlciByZWdpc3RlciBhcyBcbiAgIHJlZ2lzdGVyIG1vZGlmaWVzIHRoZSBDaGFydC5kZWZhdWx0cyBvYmplY3RzICovXG5DaGFydC5yZWdpc3RlcihMZWdlbmQsIC4uLkNIQVJUX1NDQUxFUywgLi4uQ0hBUlRfRUxFTUVOVFMsIC4uLkNIQVJUX0NPTlRST0xMRVJTLCAuLi5DSEFSVF9QTFVHSU5TKTtcblxuLyogQ2hhcnQuZGVmYXVsdHMgaXMgcmVhZCBvbmx5OyBzZXQgZWFjaCBrZXkgbW9kaWZpZWQgaW4gXG4gICBDSEFSVF9HTE9CQUxfREVGQVVMVFMgbWFudWFsbHkgKi9cbmNvbnN0IG1lcmdlZERlZmF1bHRzID0gbWVyZ2VEZWVwQWxsKENoYXJ0LmRlZmF1bHRzLCBDSEFSVF9HTE9CQUxfREVGQVVMVFMpO1xuT2JqZWN0LmVudHJpZXMoQ0hBUlRfR0xPQkFMX0RFRkFVTFRTKS5mb3JFYWNoKChba2V5XSkgPT4ge1xuICBDaGFydC5kZWZhdWx0c1trZXldID0gbWVyZ2VkRGVmYXVsdHNba2V5XTtcbn0pO1xuXG5leHBvcnQgeyBDaGFydCB9O1xuIl19
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"Chart":{"__symbolic":"reference","module":"chart.js","name":"Chart","line":37,"character":9}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"Chart":{"__symbolic":"reference","module":"chart.js","name":"Chart","line":36,"character":9}}}]
@@ -1,11 +1,22 @@
1
1
  import { Component, ElementRef, HostBinding, Input, ViewChild, } from '@angular/core';
2
2
  import { ResizeObserverFactory } from '../shared';
3
3
  import { ChartJSService } from './chart-js/chart-js.service';
4
+ const DATA_LABELS_DEPRECATION_WARNING = 'Deprecation warning: The "kirby-chart" input property "dataLabels" will be removed in a future release of Kirby designsystem. Use "labels" instead. For more information see the following announcement: https://github.com/kirbydesign/designsystem/discussions/1980';
4
5
  export class ChartComponent {
5
6
  constructor(chartJSService) {
6
7
  this.chartJSService = chartJSService;
7
8
  this.type = 'column';
8
9
  }
10
+ get labels() {
11
+ return this._labels;
12
+ }
13
+ set labels(value) {
14
+ this._labels = value;
15
+ }
16
+ set dataLabels(value) {
17
+ console.warn(DATA_LABELS_DEPRECATION_WARNING);
18
+ this._labels = value;
19
+ }
9
20
  set height(value) {
10
21
  this._height = typeof value === 'number' ? `${value}px` : value;
11
22
  }
@@ -36,9 +47,11 @@ export class ChartComponent {
36
47
  }
37
48
  ngOnChanges(simpleChanges) {
38
49
  let shouldRedrawChart = false;
50
+ // TODO: Remove 'dataLabels' key when the input property is removed
39
51
  const keyUpdateFnPairs = {
40
52
  data: () => this.updateData(),
41
- dataLabels: () => this.updateDataLabels(),
53
+ dataLabels: () => this.updateLabels(),
54
+ labels: () => this.updateLabels(),
42
55
  type: () => this.updateType(),
43
56
  customOptions: () => this.updateCustomOptions(),
44
57
  annotations: () => this.updateAnnotations(),
@@ -58,7 +71,7 @@ export class ChartComponent {
58
71
  targetElement: this.canvasElement,
59
72
  type: this.type,
60
73
  data: this.data,
61
- dataLabels: this.dataLabels,
74
+ labels: this.labels,
62
75
  customOptions: this.customOptions,
63
76
  annotations: this.annotations,
64
77
  dataLabelOptions: this.dataLabelOptions,
@@ -68,8 +81,8 @@ export class ChartComponent {
68
81
  updateData() {
69
82
  this.chartJSService.updateData(this.data);
70
83
  }
71
- updateDataLabels() {
72
- this.chartJSService.updateDataLabels(this.dataLabels);
84
+ updateLabels() {
85
+ this.chartJSService.updateLabels(this.labels);
73
86
  }
74
87
  updateType() {
75
88
  this.chartJSService.updateType(this.type, this.customOptions);
@@ -102,6 +115,7 @@ ChartComponent.ctorParameters = () => [
102
115
  ChartComponent.propDecorators = {
103
116
  type: [{ type: Input }],
104
117
  data: [{ type: Input }],
118
+ labels: [{ type: Input }],
105
119
  dataLabels: [{ type: Input }],
106
120
  customOptions: [{ type: Input }],
107
121
  dataLabelOptions: [{ type: Input }],
@@ -111,4 +125,4 @@ ChartComponent.propDecorators = {
111
125
  height: [{ type: Input }],
112
126
  canvasElement: [{ type: ViewChild, args: ['chartCanvas',] }]
113
127
  };
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NoYXJ0L2NoYXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUdMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUscUJBQXFCLEVBQXlCLE1BQU0sV0FBVyxDQUFDO0FBRXpFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQWM3RCxNQUFNLE9BQU8sY0FBYztJQWtCekIsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBakJ6QyxTQUFJLEdBQWMsUUFBUSxDQUFDO0lBaUJpQixDQUFDO0lBUHRELElBQWEsTUFBTSxDQUFDLEtBQXNCO1FBQ3hDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDbEUsQ0FBQztJQU9ELGVBQWU7UUFDYjs7Ozs7VUFLRTtRQUNGLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDO1FBQ3ZELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVPLDRCQUE0QixDQUFDLE9BQW9CO1FBQ3ZELE1BQU0sUUFBUSxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FB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QUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVPLHlCQUF5QjtRQUMvQixJQUFJLENBQUMsY0FBYyxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsQ0FBQzs7O1lBbkhGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsYUFBYTtnQkFDdkIsNFJBQXFDO2dCQUVyQyxTQUFTLEVBQUUsQ0FBQyxjQUFjLENBQUM7O2FBQzVCOzs7O1lBYlEsY0FBYzs7O21CQWVwQixLQUFLO21CQUNMLEtBQUs7eUJBQ0wsS0FBSzs0QkFDTCxLQUFLOytCQUNMLEtBQUs7MEJBQ0wsS0FBSztrQ0FDTCxLQUFLO3NCQUVMLFdBQVcsU0FBQyw0QkFBNEI7cUJBRXhDLEtBQUs7NEJBSUwsU0FBUyxTQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hhcnRPcHRpb25zIH0gZnJvbSAnY2hhcnQuanMnO1xuaW1wb3J0IHsgQW5ub3RhdGlvbk9wdGlvbnMgfSBmcm9tICdjaGFydGpzLXBsdWdpbi1hbm5vdGF0aW9uJztcblxuaW1wb3J0IHsgUmVzaXplT2JzZXJ2ZXJGYWN0b3J5LCBSZXNpemVPYnNlcnZlclNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQnO1xuXG5pbXBvcnQgeyBDaGFydEpTU2VydmljZSB9IGZyb20gJy4vY2hhcnQtanMvY2hhcnQtanMuc2VydmljZSc7XG5pbXBvcnQge1xuICBDaGFydERhdGFMYWJlbE9wdGlvbnMsXG4gIENoYXJ0RGF0YXNldCxcbiAgQ2hhcnRIaWdobGlnaHRlZEVsZW1lbnRzLFxuICBDaGFydFR5cGUsXG59IGZyb20gJy4vY2hhcnQudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdraXJieS1jaGFydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGFydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoYXJ0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW0NoYXJ0SlNTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhcnRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSB0eXBlOiBDaGFydFR5cGUgPSAnY29sdW1uJztcbiAgQElucHV0KCkgZGF0YTogQ2hhcnREYXRhc2V0W10gfCBudW1iZXJbXTtcbiAgQElucHV0KCkgZGF0YUxhYmVscz86IHN0cmluZ1tdIHwgc3RyaW5nW11bXTtcbiAgQElucHV0KCkgY3VzdG9tT3B0aW9ucz86IENoYXJ0T3B0aW9ucztcbiAgQElucHV0KCkgZGF0YUxhYmVsT3B0aW9ucz86IENoYXJ0RGF0YUxhYmVsT3B0aW9ucztcbiAgQElucHV0KCkgYW5ub3RhdGlvbnM/OiBBbm5vdGF0aW9uT3B0aW9uc1tdO1xuICBASW5wdXQoKSBoaWdobGlnaHRlZEVsZW1lbnRzPzogQ2hhcnRIaWdobGlnaHRlZEVsZW1lbnRzO1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUuLS1raXJieS1jaGFydC1oZWlnaHQnKVxuICBfaGVpZ2h0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNldCBoZWlnaHQodmFsdWU6IHN0cmluZyB8IG51bWJlcikge1xuICAgIHRoaXMuX2hlaWdodCA9IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgPyBgJHt2YWx1ZX1weGAgOiB2YWx1ZTtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2NoYXJ0Q2FudmFzJylcbiAgY2FudmFzRWxlbWVudDogRWxlbWVudFJlZjxIVE1MQ2FudmFzRWxlbWVudD47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFydEpTU2VydmljZTogQ2hhcnRKU1NlcnZpY2UpIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIC8qIFxuICAgICAgIEEgY2hhcnQgaXMgbm90IHJlbmRlcmVkIHVudGlsIGl0IGhhcyBib3RoIGEgaGVpZ2h0IGFuZCBhIHdpZHRoLiBcbiAgICAgICBJZiBDaGFydENvbXBvbmVudCBpcyBzbG90dGVkIGluIGFuIGlvbmljIGNvbXBvbmVudCBpdCB3aWxsXG4gICAgICAgbm90IGhhdmUgYW55IGhlaWdodCBvciB3aWR0aCBvbiBhZnRlclZpZXdJbml0LiBUaGlzIHdpbGwgY2F1c2UgXG4gICAgICAgdGhlIGFuaW1hdGlvbiB0byBub3QgYmUgcGxheWVkIG9uIGZpcnN0IGRyYXcuIFxuICAgICovXG4gICAgY29uc3QgY2FudmFzRWxlbWVudCA9IHRoaXMuY2FudmFzRWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMud2hlbkVsZW1lbnRIYXNIZWlnaHRBbmRXaWR0aChjYW52YXNFbGVtZW50KS50aGVuKCgpID0+IHRoaXMucmVuZGVyQ2hhcnQoKSk7XG4gIH1cblxuICBwcml2YXRlIHdoZW5FbGVtZW50SGFzSGVpZ2h0QW5kV2lkdGgoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCByZWN0SXMyRCA9ICh7IHdpZHRoLCBoZWlnaHQgfSkgPT4gaGVpZ2h0ID4gMCAmJiB3aWR0aCA+IDA7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGNvbnN0IGluaXRpYWxDbGllbnRSZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGlmIChyZWN0SXMyRChpbml0aWFsQ2xpZW50UmVjdCkpIHJlc29sdmUoKTtcblxuICAgICAgY29uc3QgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXJGYWN0b3J5KCkuY3JlYXRlKChbcmVzaXplT2JzZXJ2ZXJFbnRyeV0pID0+IHtcbiAgICAgICAgaWYgKHJlY3RJczJEKHJlc2l6ZU9ic2VydmVyRW50cnkuY29udGVudFJlY3QpKSB7XG4gICAgICAgICAgcmVzaXplT2JzZXJ2ZXIudW5vYnNlcnZlKGVsZW1lbnQpO1xuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUoZWxlbWVudCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgbGV0IHNob3VsZFJlZHJhd0NoYXJ0ID0gZmFsc2U7XG5cbiAgICBjb25zdCBrZXlVcGRhdGVGblBhaXJzID0ge1xuICAgICAgZGF0YTogKCkgPT4gdGhpcy51cGRhdGVEYXRhKCksXG4gICAgICBkYXRhTGFiZWxzOiAoKSA9PiB0aGlzLnVwZGF0ZURhdGFMYWJlbHMoKSxcbiAgICAgIHR5cGU6ICgpID0+IHRoaXMudXBkYXRlVHlwZSgpLFxuICAgICAgY3VzdG9tT3B0aW9uczogKCkgPT4gdGhpcy51cGRhdGVDdXN0b21PcHRpb25zKCksXG4gICAgICBhbm5vdGF0aW9uczogKCkgPT4gdGhpcy51cGRhdGVBbm5vdGF0aW9ucygpLFxuICAgICAgaGlnaGxpZ2h0ZWRFbGVtZW50czogKCkgPT4gdGhpcy51cGRhdGVIaWdobGlnaHRlZEVsZW1lbnRzKCksXG4gICAgfTtcblxuICAgIE9iamVjdC5lbnRyaWVzKHNpbXBsZUNoYW5nZXMpLmZvckVhY2goKFtrZXldKSA9PiB7XG4gICAgICBpZiAoc2ltcGxlQ2hhbmdlc1trZXldLmZpcnN0Q2hhbmdlIHx8ICFrZXlVcGRhdGVGblBhaXJzW2tleV0pIHJldHVybjtcbiAgICAgIHNob3VsZFJlZHJhd0NoYXJ0ID0gdHJ1ZTtcbiAgICAgIGtleVVwZGF0ZUZuUGFpcnNba2V5XSgpO1xuICAgIH0pO1xuXG4gICAgaWYgKHNob3VsZFJlZHJhd0NoYXJ0KSB0aGlzLnJlZHJhd0NoYXJ0KCk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckNoYXJ0KCkge1xuICAgIHRoaXMuY2hhcnRKU1NlcnZpY2UucmVuZGVyQ2hhcnQoe1xuICAgICAgdGFyZ2V0RWxlbWVudDogdGhpcy5jYW52YXNFbGVtZW50LFxuICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgZGF0YTogdGhpcy5kYXRhLFxuICAgICAgZGF0YUxhYmVsczogdGhpcy5kYXRhTGFiZWxzLFxuICAgICAgY3VzdG9tT3B0aW9uczogdGhpcy5jdXN0b21PcHRpb25zLFxuICAgICAgYW5ub3RhdGlvbnM6IHRoaXMuYW5ub3RhdGlvbnMsXG4gICAgICBkYXRhTGFiZWxPcHRpb25zOiB0aGlzLmRhdGFMYWJlbE9wdGlvbnMsXG4gICAgICBoaWdobGlnaHRlZEVsZW1lbnRzOiB0aGlzLmhpZ2hsaWdodGVkRWxlbWVudHMsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZURhdGEoKSB7XG4gICAgdGhpcy5jaGFydEpTU2VydmljZS51cGRhdGVEYXRhKHRoaXMuZGF0YSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZURhdGFMYWJlbHMoKSB7XG4gICAgdGhpcy5jaGFydEpTU2VydmljZS51cGRhdGVEYXRhTGFiZWxzKHRoaXMuZGF0YUxhYmVscyk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVR5cGUoKSB7XG4gICAgdGhpcy5jaGFydEpTU2VydmljZS51cGRhdGVUeXBlKHRoaXMudHlwZSwgdGhpcy5jdXN0b21PcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ3VzdG9tT3B0aW9ucygpIHtcbiAgICB0aGlzLmNoYXJ0SlNTZXJ2aWNlLnVwZGF0ZU9wdGlvbnModGhpcy5jdXN0b21PcHRpb25zLCB0aGlzLnR5cGUpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVBbm5vdGF0aW9ucygpIHtcbiAgICB0aGlzLmNoYXJ0SlNTZXJ2aWNlLnVwZGF0ZUFubm90YXRpb25zKHRoaXMuYW5ub3RhdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVIaWdobGlnaHRlZEVsZW1lbnRzKCkge1xuICAgIHRoaXMuY2hhcnRKU1NlcnZpY2UudXBkYXRlSGlnaGxpZ2h0ZWRFbGVtZW50cyh0aGlzLmhpZ2hsaWdodGVkRWxlbWVudHMpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWRyYXdDaGFydCgpIHtcbiAgICB0aGlzLmNoYXJ0SlNTZXJ2aWNlLnJlZHJhd0NoYXJ0KCk7XG4gIH1cbn1cbiJdfQ==
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NoYXJ0L2NoYXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUdMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBUTdELE1BQU0sK0JBQStCLEdBQ25DLHVRQUF1USxDQUFDO0FBUTFRLE1BQU0sT0FBTyxjQUFjO0lBK0J6QixZQUFvQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUE5QnpDLFNBQUksR0FBYyxRQUFRLENBQUM7SUE4QmlCLENBQUM7SUF6QnRELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBYSxNQUFNLENBQUMsS0FBNEI7UUFDOUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQWEsVUFBVSxDQUFDLEtBQTRCO1FBQ2xELE9BQU8sQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBU0QsSUFBYSxNQUFNLENBQUMsS0FBc0I7UUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNsRSxDQUFDO0lBT0QsZUFBZTtRQUNiOzs7OztVQUtFO1FBQ0Ys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bnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoYXJ0T3B0aW9ucyB9IGZyb20gJ2NoYXJ0LmpzJztcbmltcG9ydCB7IEFubm90YXRpb25PcHRpb25zIH0gZnJvbSAnY2hhcnRqcy1wbHVnaW4tYW5ub3RhdGlvbic7XG5cbmltcG9ydCB7IFJlc2l6ZU9ic2VydmVyRmFjdG9yeSB9IGZyb20gJy4uL3NoYXJlZCc7XG5cbmltcG9ydCB7IENoYXJ0SlNTZXJ2aWNlIH0gZnJvbSAnLi9jaGFydC1qcy9jaGFydC1qcy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIENoYXJ0RGF0YUxhYmVsT3B0aW9ucyxcbiAgQ2hhcnREYXRhc2V0LFxuICBDaGFydEhpZ2hsaWdodGVkRWxlbWVudHMsXG4gIENoYXJ0VHlwZSxcbn0gZnJvbSAnLi9jaGFydC50eXBlcyc7XG5cbmNvbnN0IERBVEFfTEFCRUxTX0RFUFJFQ0FUSU9OX1dBUk5JTkcgPVxuICAnRGVwcmVjYXRpb24gd2FybmluZzogVGhlIFwia2lyYnktY2hhcnRcIiBpbnB1dCBwcm9wZXJ0eSBcImRhdGFMYWJlbHNcIiB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZSBvZiBLaXJieSBkZXNpZ25zeXN0ZW0uIFVzZSBcImxhYmVsc1wiIGluc3RlYWQuIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB0aGUgZm9sbG93aW5nIGFubm91bmNlbWVudDogaHR0cHM6Ly9naXRodWIuY29tL2tpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9kaXNjdXNzaW9ucy8xOTgwJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2lyYnktY2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGFydC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtDaGFydEpTU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIENoYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgdHlwZTogQ2hhcnRUeXBlID0gJ2NvbHVtbic7XG4gIEBJbnB1dCgpIGRhdGE6IENoYXJ0RGF0YXNldFtdIHwgbnVtYmVyW107XG5cbiAgcHJpdmF0ZSBfbGFiZWxzOiBzdHJpbmdbXSB8IHN0cmluZ1tdW107XG5cbiAgZ2V0IGxhYmVscygpOiBzdHJpbmdbXSB8IHN0cmluZ1tdW10ge1xuICAgIHJldHVybiB0aGlzLl9sYWJlbHM7XG4gIH1cbiAgQElucHV0KCkgc2V0IGxhYmVscyh2YWx1ZTogc3RyaW5nW10gfCBzdHJpbmdbXVtdKSB7XG4gICAgdGhpcy5fbGFiZWxzID0gdmFsdWU7XG4gIH1cbiAgQElucHV0KCkgc2V0IGRhdGFMYWJlbHModmFsdWU6IHN0cmluZ1tdIHwgc3RyaW5nW11bXSkge1xuICAgIGNvbnNvbGUud2FybihEQVRBX0xBQkVMU19ERVBSRUNBVElPTl9XQVJOSU5HKTtcbiAgICB0aGlzLl9sYWJlbHMgPSB2YWx1ZTtcbiAgfVxuXG4gIEBJbnB1dCgpIGN1c3RvbU9wdGlvbnM/OiBDaGFydE9wdGlvbnM7XG4gIEBJbnB1dCgpIGRhdGFMYWJlbE9wdGlvbnM/OiBDaGFydERhdGFMYWJlbE9wdGlvbnM7XG4gIEBJbnB1dCgpIGFubm90YXRpb25zPzogQW5ub3RhdGlvbk9wdGlvbnNbXTtcbiAgQElucHV0KCkgaGlnaGxpZ2h0ZWRFbGVtZW50cz86IENoYXJ0SGlnaGxpZ2h0ZWRFbGVtZW50cztcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0ta2lyYnktY2hhcnQtaGVpZ2h0JylcbiAgX2hlaWdodDogc3RyaW5nO1xuICBASW5wdXQoKSBzZXQgaGVpZ2h0KHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICB0aGlzLl9oZWlnaHQgPSB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInID8gYCR7dmFsdWV9cHhgIDogdmFsdWU7XG4gIH1cblxuICBAVmlld0NoaWxkKCdjaGFydENhbnZhcycpXG4gIGNhbnZhc0VsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTENhbnZhc0VsZW1lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhcnRKU1NlcnZpY2U6IENoYXJ0SlNTZXJ2aWNlKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvKiBcbiAgICAgICBBIGNoYXJ0IGlzIG5vdCByZW5kZXJlZCB1bnRpbCBpdCBoYXMgYm90aCBhIGhlaWdodCBhbmQgYSB3aWR0aC4gXG4gICAgICAgSWYgQ2hhcnRDb21wb25lbnQgaXMgc2xvdHRlZCBpbiBhbiBpb25pYyBjb21wb25lbnQgaXQgd2lsbFxuICAgICAgIG5vdCBoYXZlIGFueSBoZWlnaHQgb3Igd2lkdGggb24gYWZ0ZXJWaWV3SW5pdC4gVGhpcyB3aWxsIGNhdXNlIFxuICAgICAgIHRoZSBhbmltYXRpb24gdG8gbm90IGJlIHBsYXllZCBvbiBmaXJzdCBkcmF3LiBcbiAgICAqL1xuICAgIGNvbnN0IGNhbnZhc0VsZW1lbnQgPSB0aGlzLmNhbnZhc0VsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICB0aGlzLndoZW5FbGVtZW50SGFzSGVpZ2h0QW5kV2lkdGgoY2FudmFzRWxlbWVudCkudGhlbigoKSA9PiB0aGlzLnJlbmRlckNoYXJ0KCkpO1xuICB9XG5cbiAgcHJpdmF0ZSB3aGVuRWxlbWVudEhhc0hlaWdodEFuZFdpZHRoKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcmVjdElzMkQgPSAoeyB3aWR0aCwgaGVpZ2h0IH0pID0+IGhlaWdodCA+IDAgJiYgd2lkdGggPiAwO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICBjb25zdCBpbml0aWFsQ2xpZW50UmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBpZiAocmVjdElzMkQoaW5pdGlhbENsaWVudFJlY3QpKSByZXNvbHZlKCk7XG5cbiAgICAgIGNvbnN0IHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyRmFjdG9yeSgpLmNyZWF0ZSgoW3Jlc2l6ZU9ic2VydmVyRW50cnldKSA9PiB7XG4gICAgICAgIGlmIChyZWN0SXMyRChyZXNpemVPYnNlcnZlckVudHJ5LmNvbnRlbnRSZWN0KSkge1xuICAgICAgICAgIHJlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZShlbGVtZW50KTtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICByZXNpemVPYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGxldCBzaG91bGRSZWRyYXdDaGFydCA9IGZhbHNlO1xuXG4gICAgLy8gVE9ETzogUmVtb3ZlICdkYXRhTGFiZWxzJyBrZXkgd2hlbiB0aGUgaW5wdXQgcHJvcGVydHkgaXMgcmVtb3ZlZFxuICAgIGNvbnN0IGtleVVwZGF0ZUZuUGFpcnMgPSB7XG4gICAgICBkYXRhOiAoKSA9PiB0aGlzLnVwZGF0ZURhdGEoKSxcbiAgICAgIGRhdGFMYWJlbHM6ICgpID0+IHRoaXMudXBkYXRlTGFiZWxzKCksXG4gICAgICBsYWJlbHM6ICgpID0+IHRoaXMudXBkYXRlTGFiZWxzKCksXG4gICAgICB0eXBlOiAoKSA9PiB0aGlzLnVwZGF0ZVR5cGUoKSxcbiAgICAgIGN1c3RvbU9wdGlvbnM6ICgpID0+IHRoaXMudXBkYXRlQ3VzdG9tT3B0aW9ucygpLFxuICAgICAgYW5ub3RhdGlvbnM6ICgpID0+IHRoaXMudXBkYXRlQW5ub3RhdGlvbnMoKSxcbiAgICAgIGhpZ2hsaWdodGVkRWxlbWVudHM6ICgpID0+IHRoaXMudXBkYXRlSGlnaGxpZ2h0ZWRFbGVtZW50cygpLFxuICAgIH07XG5cbiAgICBPYmplY3QuZW50cmllcyhzaW1wbGVDaGFuZ2VzKS5mb3JFYWNoKChba2V5XSkgPT4ge1xuICAgICAgaWYgKHNpbXBsZUNoYW5nZXNba2V5XS5maXJzdENoYW5nZSB8fCAha2V5VXBkYXRlRm5QYWlyc1trZXldKSByZXR1cm47XG4gICAgICBzaG91bGRSZWRyYXdDaGFydCA9IHRydWU7XG4gICAgICBrZXlVcGRhdGVGblBhaXJzW2tleV0oKTtcbiAgICB9KTtcblxuICAgIGlmIChzaG91bGRSZWRyYXdDaGFydCkgdGhpcy5yZWRyYXdDaGFydCgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJDaGFydCgpIHtcbiAgICB0aGlzLmNoYXJ0SlNTZXJ2aWNlLnJlbmRlckNoYXJ0KHtcbiAgICAgIHRhcmdldEVsZW1lbnQ6IHRoaXMuY2FudmFzRWxlbWVudCxcbiAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgIGRhdGE6IHRoaXMuZGF0YSxcbiAgICAgIGxhYmVsczogdGhpcy5sYWJlbHMsXG4gICAgICBjdXN0b21PcHRpb25zOiB0aGlzLmN1c3RvbU9wdGlvbnMsXG4gICAgICBhbm5vdGF0aW9uczogdGhpcy5hbm5vdGF0aW9ucyxcbiAgICAgIGRhdGFMYWJlbE9wdGlvbnM6IHRoaXMuZGF0YUxhYmVsT3B0aW9ucyxcbiAgICAgIGhpZ2hsaWdodGVkRWxlbWVudHM6IHRoaXMuaGlnaGxpZ2h0ZWRFbGVtZW50cyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRGF0YSgpIHtcbiAgICB0aGlzLmNoYXJ0SlNTZXJ2aWNlLnVwZGF0ZURhdGEodGhpcy5kYXRhKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlTGFiZWxzKCkge1xuICAgIHRoaXMuY2hhcnRKU1NlcnZpY2UudXBkYXRlTGFiZWxzKHRoaXMubGFiZWxzKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVHlwZSgpIHtcbiAgICB0aGlzLmNoYXJ0SlNTZXJ2aWNlLnVwZGF0ZVR5cGUodGhpcy50eXBlLCB0aGlzLmN1c3RvbU9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDdXN0b21PcHRpb25zKCkge1xuICAgIHRoaXMuY2hhcnRKU1NlcnZpY2UudXBkYXRlT3B0aW9ucyh0aGlzLmN1c3RvbU9wdGlvbnMsIHRoaXMudHlwZSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUFubm90YXRpb25zKCkge1xuICAgIHRoaXMuY2hhcnRKU1NlcnZpY2UudXBkYXRlQW5ub3RhdGlvbnModGhpcy5hbm5vdGF0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUhpZ2hsaWdodGVkRWxlbWVudHMoKSB7XG4gICAgdGhpcy5jaGFydEpTU2VydmljZS51cGRhdGVIaWdobGlnaHRlZEVsZW1lbnRzKHRoaXMuaGlnaGxpZ2h0ZWRFbGVtZW50cyk7XG4gIH1cblxuICBwcml2YXRlIHJlZHJhd0NoYXJ0KCkge1xuICAgIHRoaXMuY2hhcnRKU1NlcnZpY2UucmVkcmF3Q2hhcnQoKTtcbiAgfVxufVxuIl19
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"ChartComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":23,"character":1},"arguments":[{"selector":"kirby-chart","providers":[{"__symbolic":"reference","module":"./chart-js/chart-js.service","name":"ChartJSService","line":27,"character":14}],"template":"<div class=\"chart-container\">\n <canvas #chartCanvas>\n <!-- Slotted content makes it possible to insert fallback content for screen readers \n https://www.chartjs.org/docs/latest/general/accessibility.html-->\n <ng-content></ng-content>\n </canvas>\n</div>\n","styles":[":host div{height:var(--kirby-chart-height,300px);position:relative}"]}]}],"members":{"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"dataLabels":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"customOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"dataLabelOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"annotations":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"highlightedElements":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"_height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":38,"character":3},"arguments":["style.--kirby-chart-height"]}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"canvasElement":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":44,"character":3},"arguments":["chartCanvas"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./chart-js/chart-js.service","name":"ChartJSService","line":47,"character":38}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"whenElementHasHeightAndWidth":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"renderChart":[{"__symbolic":"method"}],"updateData":[{"__symbolic":"method"}],"updateDataLabels":[{"__symbolic":"method"}],"updateType":[{"__symbolic":"method"}],"updateCustomOptions":[{"__symbolic":"method"}],"updateAnnotations":[{"__symbolic":"method"}],"updateHighlightedElements":[{"__symbolic":"method"}],"redrawChart":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"ChartComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":26,"character":1},"arguments":[{"selector":"kirby-chart","providers":[{"__symbolic":"reference","module":"./chart-js/chart-js.service","name":"ChartJSService","line":30,"character":14}],"template":"<div class=\"chart-container\">\n <canvas #chartCanvas>\n <!-- Slotted content makes it possible to insert fallback content for screen readers \n https://www.chartjs.org/docs/latest/general/accessibility.html-->\n <ng-content></ng-content>\n </canvas>\n</div>\n","styles":[":host div{height:var(--kirby-chart-height,300px);position:relative}"]}]}],"members":{"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"labels":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"dataLabels":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3}}]}],"customOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"dataLabelOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":3}}]}],"annotations":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":3}}]}],"highlightedElements":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":52,"character":3}}]}],"_height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":54,"character":3},"arguments":["style.--kirby-chart-height"]}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":56,"character":3}}]}],"canvasElement":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":60,"character":3},"arguments":["chartCanvas"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./chart-js/chart-js.service","name":"ChartJSService","line":63,"character":38}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"whenElementHasHeightAndWidth":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"renderChart":[{"__symbolic":"method"}],"updateData":[{"__symbolic":"method"}],"updateLabels":[{"__symbolic":"method"}],"updateType":[{"__symbolic":"method"}],"updateCustomOptions":[{"__symbolic":"method"}],"updateAnnotations":[{"__symbolic":"method"}],"updateHighlightedElements":[{"__symbolic":"method"}],"redrawChart":[{"__symbolic":"method"}]}}}}]
@@ -44,8 +44,16 @@ export class FitHeadingDirective {
44
44
  }
45
45
  }
46
46
  observeResize() {
47
- this.resizeObserverService.observe(this.elementRef, () => {
48
- this.scaleHeader();
47
+ this.resizeObserverService.observe(this.elementRef, (entry) => {
48
+ // We wrap it in requestAnimationFrame to avoid this error
49
+ // - ResizeObserver loop limit exceeded
50
+ // For more information @see(https://stackoverflow.com/questions/49384120/resizeobserver-loop-limit-exceeded)
51
+ window.requestAnimationFrame(() => {
52
+ if (!Array.isArray(entry) || !entry.length) {
53
+ return;
54
+ }
55
+ this.scaleHeader();
56
+ });
49
57
  });
50
58
  }
51
59
  scaleHeader() {
@@ -96,4 +104,4 @@ FitHeadingDirective.ctorParameters = () => [
96
104
  FitHeadingDirective.propDecorators = {
97
105
  config: [{ type: Input, args: ['kirbyFitHeading',] }]
98
106
  };
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml0LWhlYWRpbmcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9kaXJlY3RpdmVzL2ZpdC1oZWFkaW5nL2ZpdC1oZWFkaW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFbEUsTUFBTSxRQUFRLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxDQUFDO0FBQzVDLE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQztBQWdCaEQsTUFBTSxPQUFPLG1CQUFtQjtJQTBCOUIsWUFDVSxVQUFzQixFQUN0QixRQUFtQixFQUNuQixxQkFBNEMsRUFDNUMsZUFBZ0M7UUFIaEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBdEJsQyxpQkFBWSxHQUFrQjtZQUNwQztnQkFDRSxJQUFJLEVBQUUsSUFBSTtnQkFDVixRQUFRLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDeEIsVUFBVSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUM7YUFDN0I7WUFDRDtnQkFDRSxJQUFJLEVBQUUsSUFBSTtnQkFDVixRQUFRLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQztnQkFDdkIsVUFBVSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUM7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USxDQUFDO0lBQ3ZDLENBQUM7SUFFTyx3QkFBd0I7UUFDOUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxPQUFPLENBQUMsRUFBVyxFQUFFLElBQWlCO1FBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdELENBQUM7OztZQXJHRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDZEQUE2RDtnQkFDdkUsU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDO2FBQzdCOzs7O1lBdkJtQixVQUFVO1lBQTRCLFNBQVM7WUFJMUQscUJBQXFCO1lBQ3JCLGVBQWU7OztxQkFxQnJCLEtBQUssU0FBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERlc2lnblRva2VuSGVscGVyIH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2NvcmUnO1xuXG5pbXBvcnQgeyBSZXNpemVPYnNlcnZlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3NoYXJlZC9yZXNpemUtb2JzZXJ2ZXIvcmVzaXplLW9ic2VydmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGluZUNsYW1wSGVscGVyIH0gZnJvbSAnLi4vLi4vaGVscGVycy9saW5lLWNsYW1wLWhlbHBlcic7XG5cbmNvbnN0IGZvbnRTaXplID0gRGVzaWduVG9rZW5IZWxwZXIuZm9udFNpemU7XG5jb25zdCBsaW5lSGVpZ2h0ID0gRGVzaWduVG9rZW5IZWxwZXIubGluZUhlaWdodDtcblxuaW50ZXJmYWNlIEhlYWRpbmdTaXplIHtcbiAgbmFtZTogc3RyaW5nO1xuICBmb250U2l6ZTogc3RyaW5nO1xuICBsaW5lSGVpZ2h0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRml0SGVhZGluZ0NvbmZpZyB7XG4gIG1heExpbmVzOiBudW1iZXI7XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogYGgxW2tpcmJ5Rml0SGVhZGluZ10saDJba2lyYnlGaXRIZWFkaW5nXSxoM1traXJieUZpdEhlYWRpbmddYCxcbiAgcHJvdmlkZXJzOiBbTGluZUNsYW1wSGVscGVyXSxcbn0pXG5leHBvcnQgY2xhc3MgRml0SGVhZGluZ0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2tpcmJ5Rml0SGVhZGluZycpIGNvbmZpZz86IEZpdEhlYWRpbmdDb25maWc7XG5cbiAgcHJpdmF0ZSBpc09ic2VydmluZ0hvc3RFbGVtZW50OiBib29sZWFuO1xuICBwcml2YXRlIGhvc3RFbGVtZW50Q2xvbmU6IEVsZW1lbnQ7XG4gIHByaXZhdGUgaXNTY2FsaW5nSGVhZGVyOiBib29sZWFuOyAvLyB1c2VkIHRvIHByZXZlbnQgcmVzaXplT2JzZXJ2ZXIgdG8gdHJpZ2dlciBvbiBmb250IHNjYWxpbmcgYnkgdGhpcy5zY2FsZUhlYWRlcigpXG5cbiAgcHJpdmF0ZSBoZWFkaW5nU2l6ZXM6IEhlYWRpbmdTaXplW10gPSBbXG4gICAge1xuICAgICAgbmFtZTogJ2gxJyxcbiAgICAgIGZvbnRTaXplOiBmb250U2l6ZSgneGwnKSxcbiAgICAgIGxpbmVIZWlnaHQ6IGxpbmVIZWlnaHQoJ3hsJyksXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnaDInLFxuICAgICAgZm9udFNpemU6IGZvbnRTaXplKCdsJyksXG4gICAgICBsaW5lSGVpZ2h0OiBsaW5lSGVpZ2h0KCdsJyksXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnaDMnLFxuICAgICAgZm9udFNpemU6IGZvbnRTaXplKCdtJyksXG4gICAgICBsaW5lSGVpZ2h0OiBsaW5lSGVpZ2h0KCdtJyksXG4gICAgfSxcbiAgXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgcmVzaXplT2JzZXJ2ZXJTZXJ2aWNlOiBSZXNpemVPYnNlcnZlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsaW5lQ2xhbXBIZWxwZXI6IExpbmVDbGFtcEhlbHBlclxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29uZmlnICYmIHRoaXMuY29uZmlnLm1heExpbmVzKSB7XG4gICAgICB0aGlzLmxpbmVDbGFtcEhlbHBlci5zZXRNYXhMaW5lcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5jb25maWcubWF4TGluZXMpO1xuICAgICAgdGhpcy5vYnNlcnZlUmVzaXplKCk7XG4gICAgICB0aGlzLmlzT2JzZXJ2aW5nSG9zdEVsZW1lbnQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzT2JzZXJ2aW5nSG9zdEVsZW1lbnQpIHtcbiAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXJTZXJ2aWNlLnVub2JzZXJ2ZSh0aGlzLmVsZW1lbnRSZWYpO1xuICAgICAgaWYgKHRoaXMuaG9zdEVsZW1lbnRDbG9uZSkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmhvc3RFbGVtZW50Q2xvbmUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZVJlc2l6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyU2VydmljZS5vYnNlcnZlKHRoaXMuZWxlbWVudFJlZiwgKCkgPT4ge1xuICAgICAgdGhpcy5zY2FsZUhlYWRlcigpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzY2FsZUhlYWRlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc1NjYWxpbmdIZWFkZXIpIHJldHVybjtcblxuICAgIHRoaXMuaXNTY2FsaW5nSGVhZGVyID0gdHJ1ZTtcblxuICAgIGlmICghdGhpcy5ob3N0RWxlbWVudENsb25lKSB7XG4gICAgICB0aGlzLmhvc3RFbGVtZW50Q2xvbmUgPSB0aGlzLmdlbmVyYXRlSG9zdEVsZW1lbnRDbG9uZSgpO1xuICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5ob3N0RWxlbWVudENsb25lKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgdGhpcy5ob3N0RWxlbWVudENsb25lLFxuICAgICAgJ3dpZHRoJyxcbiAgICAgIGAke3RoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRofXB4YFxuICAgICk7XG5cbiAgICBjb25zdCBmYWxsYmFja1NpemUgPSB0aGlzLmhlYWRpbmdTaXplc1t0aGlzLmhlYWRpbmdTaXplcy5sZW5ndGggLSAxXTtcbiAgICBjb25zdCBmaXR0ZWRTaXplID0gdGhpcy5oZWFkaW5nU2l6ZXMuZmluZCh0aGlzLmNhbkZpdEhlYWRpbmcuYmluZCh0aGlzKSkgfHwgZmFsbGJhY2tTaXplO1xuXG4gICAgdGhpcy5zZXRTaXplKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBmaXR0ZWRTaXplKTtcbiAgICB0aGlzLmxpbmVDbGFtcEhlbHBlci5zZXRMaW5lSGVpZ2h0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBmaXR0ZWRTaXplLmxpbmVIZWlnaHQpO1xuICAgIHRoaXMuaXNTY2FsaW5nSGVhZGVyID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGNhbkZpdEhlYWRpbmcoc2l6ZTogSGVhZGluZ1NpemUpIHtcbiAgICB0aGlzLnNldFNpemUodGhpcy5ob3N0RWxlbWVudENsb25lLCBzaXplKTtcbiAgICBjb25zdCBsaW5lcyA9IHRoaXMuaG9zdEVsZW1lbnRDbG9uZS5jbGllbnRIZWlnaHQgLyBwYXJzZUludChzaXplLmxpbmVIZWlnaHQpO1xuICAgIHJldHVybiBsaW5lcyA8PSB0aGlzLmNvbmZpZy5tYXhMaW5lcztcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVIb3N0RWxlbWVudENsb25lKCk6IEVsZW1lbnQge1xuICAgIGNvbnN0IGNsb25lID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xvbmVOb2RlKHRydWUpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoY2xvbmUsICdwb3NpdGlvbicsICdhYnNvbHV0ZScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoY2xvbmUsICd2aXNpYmlsaXR5JywgJ2hpZGRlbicpO1xuICAgIHRoaXMubGluZUNsYW1wSGVscGVyLnJlbW92ZUxpbmVDbGFtcChjbG9uZSk7XG4gICAgcmV0dXJuIGNsb25lO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRTaXplKGVsOiBFbGVtZW50LCBzaXplOiBIZWFkaW5nU2l6ZSk6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZWwsICdmb250LXNpemUnLCBzaXplLmZvbnRTaXplKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsLCAnbGluZS1oZWlnaHQnLCBzaXplLmxpbmVIZWlnaHQpO1xuICB9XG59XG4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml0LWhlYWRpbmcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9kaXJlY3RpdmVzL2ZpdC1oZWFkaW5nL2ZpdC1oZWFkaW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFbEUsTUFBTSxRQUFRLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxDQUFDO0FBQzVDLE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQztBQWdCaEQsTUFBTSxPQUFPLG1CQUFtQjtJQTBCOUIsWUFDVSxVQUFzQixFQUN0QixRQUFtQixFQUNuQixxQkFBNEMsRUFDNUMsZUFBZ0M7UUFIaEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBdEJsQyxpQkFBWSxHQUFrQjtZQUNwQztnQkFDRSxJQUFJLEVBQUUsSUFBSTtnQkFDVixRQUFRLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDeEIsVUFBVSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUM7YUFDN0I7WUFDRDtnQkFDRSxJQUFJLEVBQUUsSUFBSTtnQkFDVixRQUFRLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQztnQkFDdkIsVUFBVSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUM7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c0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEZXNpZ25Ub2tlbkhlbHBlciB9IGZyb20gJ0BraXJieWRlc2lnbi9jb3JlJztcblxuaW1wb3J0IHsgUmVzaXplT2JzZXJ2ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zaGFyZWQvcmVzaXplLW9ic2VydmVyL3Jlc2l6ZS1vYnNlcnZlci5zZXJ2aWNlJztcbmltcG9ydCB7IExpbmVDbGFtcEhlbHBlciB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbGluZS1jbGFtcC1oZWxwZXInO1xuXG5jb25zdCBmb250U2l6ZSA9IERlc2lnblRva2VuSGVscGVyLmZvbnRTaXplO1xuY29uc3QgbGluZUhlaWdodCA9IERlc2lnblRva2VuSGVscGVyLmxpbmVIZWlnaHQ7XG5cbmludGVyZmFjZSBIZWFkaW5nU2l6ZSB7XG4gIG5hbWU6IHN0cmluZztcbiAgZm9udFNpemU6IHN0cmluZztcbiAgbGluZUhlaWdodDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpdEhlYWRpbmdDb25maWcge1xuICBtYXhMaW5lczogbnVtYmVyO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IGBoMVtraXJieUZpdEhlYWRpbmddLGgyW2tpcmJ5Rml0SGVhZGluZ10saDNba2lyYnlGaXRIZWFkaW5nXWAsXG4gIHByb3ZpZGVyczogW0xpbmVDbGFtcEhlbHBlcl0sXG59KVxuZXhwb3J0IGNsYXNzIEZpdEhlYWRpbmdEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdraXJieUZpdEhlYWRpbmcnKSBjb25maWc/OiBGaXRIZWFkaW5nQ29uZmlnO1xuXG4gIHByaXZhdGUgaXNPYnNlcnZpbmdIb3N0RWxlbWVudDogYm9vbGVhbjtcbiAgcHJpdmF0ZSBob3N0RWxlbWVudENsb25lOiBFbGVtZW50O1xuICBwcml2YXRlIGlzU2NhbGluZ0hlYWRlcjogYm9vbGVhbjsgLy8gdXNlZCB0byBwcmV2ZW50IHJlc2l6ZU9ic2VydmVyIHRvIHRyaWdnZXIgb24gZm9udCBzY2FsaW5nIGJ5IHRoaXMuc2NhbGVIZWFkZXIoKVxuXG4gIHByaXZhdGUgaGVhZGluZ1NpemVzOiBIZWFkaW5nU2l6ZVtdID0gW1xuICAgIHtcbiAgICAgIG5hbWU6ICdoMScsXG4gICAgICBmb250U2l6ZTogZm9udFNpemUoJ3hsJyksXG4gICAgICBsaW5lSGVpZ2h0OiBsaW5lSGVpZ2h0KCd4bCcpLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ2gyJyxcbiAgICAgIGZvbnRTaXplOiBmb250U2l6ZSgnbCcpLFxuICAgICAgbGluZUhlaWdodDogbGluZUhlaWdodCgnbCcpLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ2gzJyxcbiAgICAgIGZvbnRTaXplOiBmb250U2l6ZSgnbScpLFxuICAgICAgbGluZUhlaWdodDogbGluZUhlaWdodCgnbScpLFxuICAgIH0sXG4gIF07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyU2VydmljZTogUmVzaXplT2JzZXJ2ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbGluZUNsYW1wSGVscGVyOiBMaW5lQ2xhbXBIZWxwZXJcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbmZpZyAmJiB0aGlzLmNvbmZpZy5tYXhMaW5lcykge1xuICAgICAgdGhpcy5saW5lQ2xhbXBIZWxwZXIuc2V0TWF4TGluZXModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuY29uZmlnLm1heExpbmVzKTtcbiAgICAgIHRoaXMub2JzZXJ2ZVJlc2l6ZSgpO1xuICAgICAgdGhpcy5pc09ic2VydmluZ0hvc3RFbGVtZW50ID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc09ic2VydmluZ0hvc3RFbGVtZW50KSB7XG4gICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyU2VydmljZS51bm9ic2VydmUodGhpcy5lbGVtZW50UmVmKTtcbiAgICAgIGlmICh0aGlzLmhvc3RFbGVtZW50Q2xvbmUpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5ob3N0RWxlbWVudENsb25lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVSZXNpemUoKTogdm9pZCB7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlclNlcnZpY2Uub2JzZXJ2ZSh0aGlzLmVsZW1lbnRSZWYsIChlbnRyeSkgPT4ge1xuICAgICAgLy8gV2Ugd3JhcCBpdCBpbiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgdG8gYXZvaWQgdGhpcyBlcnJvclxuICAgICAgLy8gLSBSZXNpemVPYnNlcnZlciBsb29wIGxpbWl0IGV4Y2VlZGVkXG4gICAgICAvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiBAc2VlKGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ5Mzg0MTIwL3Jlc2l6ZW9ic2VydmVyLWxvb3AtbGltaXQtZXhjZWVkZWQpXG4gICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGVudHJ5KSB8fCAhZW50cnkubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2NhbGVIZWFkZXIoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzY2FsZUhlYWRlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc1NjYWxpbmdIZWFkZXIpIHJldHVybjtcblxuICAgIHRoaXMuaXNTY2FsaW5nSGVhZGVyID0gdHJ1ZTtcblxuICAgIGlmICghdGhpcy5ob3N0RWxlbWVudENsb25lKSB7XG4gICAgICB0aGlzLmhvc3RFbGVtZW50Q2xvbmUgPSB0aGlzLmdlbmVyYXRlSG9zdEVsZW1lbnRDbG9uZSgpO1xuICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5ob3N0RWxlbWVudENsb25lKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgdGhpcy5ob3N0RWxlbWVudENsb25lLFxuICAgICAgJ3dpZHRoJyxcbiAgICAgIGAke3RoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRofXB4YFxuICAgICk7XG5cbiAgICBjb25zdCBmYWxsYmFja1NpemUgPSB0aGlzLmhlYWRpbmdTaXplc1t0aGlzLmhlYWRpbmdTaXplcy5sZW5ndGggLSAxXTtcbiAgICBjb25zdCBmaXR0ZWRTaXplID0gdGhpcy5oZWFkaW5nU2l6ZXMuZmluZCh0aGlzLmNhbkZpdEhlYWRpbmcuYmluZCh0aGlzKSkgfHwgZmFsbGJhY2tTaXplO1xuXG4gICAgdGhpcy5zZXRTaXplKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBmaXR0ZWRTaXplKTtcbiAgICB0aGlzLmxpbmVDbGFtcEhlbHBlci5zZXRMaW5lSGVpZ2h0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBmaXR0ZWRTaXplLmxpbmVIZWlnaHQpO1xuICAgIHRoaXMuaXNTY2FsaW5nSGVhZGVyID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGNhbkZpdEhlYWRpbmcoc2l6ZTogSGVhZGluZ1NpemUpIHtcbiAgICB0aGlzLnNldFNpemUodGhpcy5ob3N0RWxlbWVudENsb25lLCBzaXplKTtcbiAgICBjb25zdCBsaW5lcyA9IHRoaXMuaG9zdEVsZW1lbnRDbG9uZS5jbGllbnRIZWlnaHQgLyBwYXJzZUludChzaXplLmxpbmVIZWlnaHQpO1xuICAgIHJldHVybiBsaW5lcyA8PSB0aGlzLmNvbmZpZy5tYXhMaW5lcztcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVIb3N0RWxlbWVudENsb25lKCk6IEVsZW1lbnQge1xuICAgIGNvbnN0IGNsb25lID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xvbmVOb2RlKHRydWUpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoY2xvbmUsICdwb3NpdGlvbicsICdhYnNvbHV0ZScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoY2xvbmUsICd2aXNpYmlsaXR5JywgJ2hpZGRlbicpO1xuICAgIHRoaXMubGluZUNsYW1wSGVscGVyLnJlbW92ZUxpbmVDbGFtcChjbG9uZSk7XG4gICAgcmV0dXJuIGNsb25lO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRTaXplKGVsOiBFbGVtZW50LCBzaXplOiBIZWFkaW5nU2l6ZSk6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZWwsICdmb250LXNpemUnLCBzaXplLmZvbnRTaXplKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsLCAnbGluZS1oZWlnaHQnLCBzaXplLmxpbmVIZWlnaHQpO1xuICB9XG59XG4iXX0=
@@ -18,6 +18,7 @@ MockChartComponent.decorators = [
18
18
  MockChartComponent.propDecorators = {
19
19
  type: [{ type: Input }],
20
20
  data: [{ type: Input }],
21
+ labels: [{ type: Input }],
21
22
  dataLabels: [{ type: Input }],
22
23
  customOptions: [{ type: Input }],
23
24
  dataLabelOptions: [{ type: Input }],
@@ -26,4 +27,4 @@ MockChartComponent.propDecorators = {
26
27
  height: [{ type: Input }]
27
28
  };
28
29
  // #endregion
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay5jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Rlc2lnbnN5c3RlbS90ZXN0aW5nLWJhc2Uvc3JjL2xpYi9jb21wb25lbnRzL21vY2suY2hhcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBRUwsY0FBYyxHQU1mLE1BQU0sMkJBQTJCLENBQUM7QUFFbkMsNkRBQTZEO0FBVzdELE1BQU0sT0FBTyxrQkFBa0I7OztZQVY5QixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLFFBQVEsRUFBRSwyQkFBMkI7Z0JBQ3JDLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsY0FBYzt3QkFDdkIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztxQkFDbEQ7aUJBQ0Y7YUFDRjs7O21CQUVFLEtBQUs7bUJBQ0wsS0FBSzt5QkFDTCxLQUFLOzRCQUNMLEtBQUs7K0JBQ0wsS0FBSzswQkFDTCxLQUFLO2tDQUNMLEtBQUs7cUJBQ0wsS0FBSzs7QUFHUixhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICBBbm5vdGF0aW9uT3B0aW9ucyxcclxuICBDaGFydENvbXBvbmVudCxcclxuICBDaGFydERhdGFMYWJlbE9wdGlvbnMsXHJcbiAgQ2hhcnREYXRhc2V0LFxyXG4gIENoYXJ0SGlnaGxpZ2h0ZWRFbGVtZW50cyxcclxuICBDaGFydE9wdGlvbnMsXHJcbiAgQ2hhcnRUeXBlLFxyXG59IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0nO1xyXG5cclxuLy8gI3JlZ2lvbiBBVVRPLUdFTkVSQVRFRCAtIFBMRUFTRSBET04nVCBFRElUIENPTlRFTlQgV0lUSElOIVxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2tpcmJ5LWNoYXJ0JyxcclxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBDaGFydENvbXBvbmVudCxcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTW9ja0NoYXJ0Q29tcG9uZW50KSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vY2tDaGFydENvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgdHlwZTogQ2hhcnRUeXBlO1xyXG4gIEBJbnB1dCgpIGRhdGE6IENoYXJ0RGF0YXNldFtdIHwgbnVtYmVyW107XHJcbiAgQElucHV0KCkgZGF0YUxhYmVsczogc3RyaW5nW10gfCBzdHJpbmdbXVtdO1xyXG4gIEBJbnB1dCgpIGN1c3RvbU9wdGlvbnM6IENoYXJ0T3B0aW9ucztcclxuICBASW5wdXQoKSBkYXRhTGFiZWxPcHRpb25zOiBDaGFydERhdGFMYWJlbE9wdGlvbnM7XHJcbiAgQElucHV0KCkgYW5ub3RhdGlvbnM6IEFubm90YXRpb25PcHRpb25zW107XHJcbiAgQElucHV0KCkgaGlnaGxpZ2h0ZWRFbGVtZW50czogQ2hhcnRIaWdobGlnaHRlZEVsZW1lbnRzO1xyXG4gIEBJbnB1dCgpIGhlaWdodDogc3RyaW5nIHwgbnVtYmVyO1xyXG59XHJcblxyXG4vLyAjZW5kcmVnaW9uXHJcbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay5jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Rlc2lnbnN5c3RlbS90ZXN0aW5nLWJhc2Uvc3JjL2xpYi9jb21wb25lbnRzL21vY2suY2hhcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBRUwsY0FBYyxHQU1mLE1BQU0sMkJBQTJCLENBQUM7QUFFbkMsNkRBQTZEO0FBVzdELE1BQU0sT0FBTyxrQkFBa0I7OztZQVY5QixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLFFBQVEsRUFBRSwyQkFBMkI7Z0JBQ3JDLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsY0FBYzt3QkFDdkIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztxQkFDbEQ7aUJBQ0Y7YUFDRjs7O21CQUVFLEtBQUs7bUJBQ0wsS0FBSztxQkFDTCxLQUFLO3lCQUNMLEtBQUs7NEJBQ0wsS0FBSzsrQkFDTCxLQUFLOzBCQUNMLEtBQUs7a0NBQ0wsS0FBSztxQkFDTCxLQUFLOztBQUdSLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gIEFubm90YXRpb25PcHRpb25zLFxyXG4gIENoYXJ0Q29tcG9uZW50LFxyXG4gIENoYXJ0RGF0YUxhYmVsT3B0aW9ucyxcclxuICBDaGFydERhdGFzZXQsXHJcbiAgQ2hhcnRIaWdobGlnaHRlZEVsZW1lbnRzLFxyXG4gIENoYXJ0T3B0aW9ucyxcclxuICBDaGFydFR5cGUsXHJcbn0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbSc7XHJcblxyXG4vLyAjcmVnaW9uIEFVVE8tR0VORVJBVEVEIC0gUExFQVNFIERPTidUIEVESVQgQ09OVEVOVCBXSVRISU4hXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAna2lyYnktY2hhcnQnLFxyXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IENoYXJ0Q29tcG9uZW50LFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBNb2NrQ2hhcnRDb21wb25lbnQpLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTW9ja0NoYXJ0Q29tcG9uZW50IHtcclxuICBASW5wdXQoKSB0eXBlOiBDaGFydFR5cGU7XHJcbiAgQElucHV0KCkgZGF0YTogQ2hhcnREYXRhc2V0W10gfCBudW1iZXJbXTtcclxuICBASW5wdXQoKSBsYWJlbHM6IHN0cmluZ1tdIHwgc3RyaW5nW11bXTtcclxuICBASW5wdXQoKSBkYXRhTGFiZWxzOiBzdHJpbmdbXSB8IHN0cmluZ1tdW107XHJcbiAgQElucHV0KCkgY3VzdG9tT3B0aW9uczogQ2hhcnRPcHRpb25zO1xyXG4gIEBJbnB1dCgpIGRhdGFMYWJlbE9wdGlvbnM6IENoYXJ0RGF0YUxhYmVsT3B0aW9ucztcclxuICBASW5wdXQoKSBhbm5vdGF0aW9uczogQW5ub3RhdGlvbk9wdGlvbnNbXTtcclxuICBASW5wdXQoKSBoaWdobGlnaHRlZEVsZW1lbnRzOiBDaGFydEhpZ2hsaWdodGVkRWxlbWVudHM7XHJcbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmcgfCBudW1iZXI7XHJcbn1cclxuXHJcbi8vICNlbmRyZWdpb25cclxuIl19
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"MockChartComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":13,"character":1},"arguments":[{"selector":"kirby-chart","template":"<ng-content></ng-content>","providers":[{"provide":{"__symbolic":"reference","module":"@kirbydesign/designsystem","name":"ChartComponent","line":18,"character":15},"useExisting":{"__symbolic":"reference","name":"MockChartComponent"}}]}]}],"members":{"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"dataLabels":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"customOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"dataLabelOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"annotations":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"highlightedElements":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"MockChartComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":13,"character":1},"arguments":[{"selector":"kirby-chart","template":"<ng-content></ng-content>","providers":[{"provide":{"__symbolic":"reference","module":"@kirbydesign/designsystem","name":"ChartComponent","line":18,"character":15},"useExisting":{"__symbolic":"reference","name":"MockChartComponent"}}]}]}],"members":{"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"labels":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"dataLabels":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"customOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"dataLabelOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"annotations":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"highlightedElements":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}]}}}}]
@@ -270,6 +270,7 @@ MockChartComponent.decorators = [
270
270
  MockChartComponent.propDecorators = {
271
271
  type: [{ type: Input }],
272
272
  data: [{ type: Input }],
273
+ labels: [{ type: Input }],
273
274
  dataLabels: [{ type: Input }],
274
275
  customOptions: [{ type: Input }],
275
276
  dataLabelOptions: [{ type: Input }],