@taiga-ui/addon-charts 3.33.1 → 3.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/bundles/taiga-ui-addon-charts-components-arc-chart.umd.js +0 -18
  2. package/bundles/taiga-ui-addon-charts-components-arc-chart.umd.js.map +1 -1
  3. package/bundles/taiga-ui-addon-charts-components-axes.umd.js +0 -357
  4. package/bundles/taiga-ui-addon-charts-components-axes.umd.js.map +1 -1
  5. package/bundles/taiga-ui-addon-charts-components-bar-chart.umd.js +0 -17
  6. package/bundles/taiga-ui-addon-charts-components-bar-chart.umd.js.map +1 -1
  7. package/bundles/taiga-ui-addon-charts-components-bar-set.umd.js +0 -9
  8. package/bundles/taiga-ui-addon-charts-components-bar-set.umd.js.map +1 -1
  9. package/bundles/taiga-ui-addon-charts-components-bar.umd.js +0 -6
  10. package/bundles/taiga-ui-addon-charts-components-bar.umd.js.map +1 -1
  11. package/bundles/taiga-ui-addon-charts-components-legend-item.umd.js +4 -334
  12. package/bundles/taiga-ui-addon-charts-components-legend-item.umd.js.map +1 -1
  13. package/bundles/taiga-ui-addon-charts-components-line-chart.umd.js +8 -48
  14. package/bundles/taiga-ui-addon-charts-components-line-chart.umd.js.map +1 -1
  15. package/bundles/taiga-ui-addon-charts-components-line-days-chart.umd.js +0 -21
  16. package/bundles/taiga-ui-addon-charts-components-line-days-chart.umd.js.map +1 -1
  17. package/bundles/taiga-ui-addon-charts-components-pie-chart.umd.js +10 -36
  18. package/bundles/taiga-ui-addon-charts-components-pie-chart.umd.js.map +1 -1
  19. package/bundles/taiga-ui-addon-charts-components-ring-chart.umd.js +4 -331
  20. package/bundles/taiga-ui-addon-charts-components-ring-chart.umd.js.map +1 -1
  21. package/bundles/taiga-ui-addon-charts-utils.umd.js +1 -0
  22. package/bundles/taiga-ui-addon-charts-utils.umd.js.map +1 -1
  23. package/components/line-chart/line-chart.component.d.ts +2 -5
  24. package/components/pie-chart/pie-chart.component.d.ts +2 -5
  25. package/esm2015/components/arc-chart/arc-chart.component.js +2 -21
  26. package/esm2015/components/axes/axes.component.js +2 -42
  27. package/esm2015/components/bar/bar.component.js +2 -8
  28. package/esm2015/components/bar-chart/bar-chart.component.js +2 -19
  29. package/esm2015/components/bar-set/bar-set.component.js +2 -11
  30. package/esm2015/components/legend-item/legend-item.component.js +1 -15
  31. package/esm2015/components/line-chart/line-chart.component.js +6 -48
  32. package/esm2015/components/line-days-chart/line-days-chart.component.js +2 -23
  33. package/esm2015/components/pie-chart/pie-chart.component.js +5 -31
  34. package/esm2015/components/pie-chart/pie-chart.directive.js +2 -6
  35. package/esm2015/components/ring-chart/ring-chart.component.js +1 -12
  36. package/esm2015/utils/prepare-external-url.js +2 -1
  37. package/fesm2015/taiga-ui-addon-charts-components-arc-chart.js +1 -20
  38. package/fesm2015/taiga-ui-addon-charts-components-arc-chart.js.map +1 -1
  39. package/fesm2015/taiga-ui-addon-charts-components-axes.js +1 -41
  40. package/fesm2015/taiga-ui-addon-charts-components-axes.js.map +1 -1
  41. package/fesm2015/taiga-ui-addon-charts-components-bar-chart.js +1 -18
  42. package/fesm2015/taiga-ui-addon-charts-components-bar-chart.js.map +1 -1
  43. package/fesm2015/taiga-ui-addon-charts-components-bar-set.js +1 -10
  44. package/fesm2015/taiga-ui-addon-charts-components-bar-set.js.map +1 -1
  45. package/fesm2015/taiga-ui-addon-charts-components-bar.js +1 -7
  46. package/fesm2015/taiga-ui-addon-charts-components-bar.js.map +1 -1
  47. package/fesm2015/taiga-ui-addon-charts-components-legend-item.js +0 -14
  48. package/fesm2015/taiga-ui-addon-charts-components-legend-item.js.map +1 -1
  49. package/fesm2015/taiga-ui-addon-charts-components-line-chart.js +7 -48
  50. package/fesm2015/taiga-ui-addon-charts-components-line-chart.js.map +1 -1
  51. package/fesm2015/taiga-ui-addon-charts-components-line-days-chart.js +1 -22
  52. package/fesm2015/taiga-ui-addon-charts-components-line-days-chart.js.map +1 -1
  53. package/fesm2015/taiga-ui-addon-charts-components-pie-chart.js +7 -33
  54. package/fesm2015/taiga-ui-addon-charts-components-pie-chart.js.map +1 -1
  55. package/fesm2015/taiga-ui-addon-charts-components-ring-chart.js +0 -11
  56. package/fesm2015/taiga-ui-addon-charts-components-ring-chart.js.map +1 -1
  57. package/fesm2015/taiga-ui-addon-charts-utils.js +1 -0
  58. package/fesm2015/taiga-ui-addon-charts-utils.js.map +1 -1
  59. package/package.json +3 -3
  60. package/utils/prepare-external-url.d.ts +1 -0
@@ -1,6 +1,6 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';
3
- import { tuiDefaultProp, tuiPure, tuiSum } from '@taiga-ui/cdk';
3
+ import { tuiPure, tuiSum } from '@taiga-ui/cdk';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/common";
6
6
  export class TuiBarComponent {
@@ -20,12 +20,6 @@ export class TuiBarComponent {
20
20
  }
21
21
  TuiBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
22
22
  TuiBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiBarComponent, selector: "tui-bar", inputs: { value: "value", size: "size" }, host: { properties: { "attr.data-size": "this.size" } }, ngImport: i0, template: "<div\n *ngFor=\"let item of value; let index = index\"\n automation-id=\"tui-bar__bar\"\n [style.height.%]=\"getHeight(item)\"\n [style.background]=\"getColor(index)\"\n></div>\n", styles: [":host{display:flex;min-width:.125rem;flex-direction:column-reverse;border-top-left-radius:var(--tui-radius-l);border-top-right-radius:var(--tui-radius-l);overflow:hidden}:host[data-size=l]{width:1rem;max-width:1rem;margin:0 .1875rem}:host[data-size=m]{width:.5rem;max-width:.5rem;margin:0 .1875rem}:host[data-size=s]{width:.25rem;max-width:.5rem;margin:0 .125rem}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
23
- __decorate([
24
- tuiDefaultProp()
25
- ], TuiBarComponent.prototype, "value", void 0);
26
- __decorate([
27
- tuiDefaultProp()
28
- ], TuiBarComponent.prototype, "size", void 0);
29
23
  __decorate([
30
24
  tuiPure
31
25
  ], TuiBarComponent.prototype, "getSum", null);
@@ -45,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
45
39
  type: HostBinding,
46
40
  args: ['attr.data-size']
47
41
  }], getSum: [] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLWNoYXJ0cy9jb21wb25lbnRzL2Jhci9iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tY2hhcnRzL2NvbXBvbmVudHMvYmFyL2Jhci50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFckYsT0FBTyxFQUFDLGNBQWMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFTOUQsTUFBTSxPQUFPLGVBQWU7SUFONUI7UUFTSSxVQUFLLEdBQXNCLEVBQUUsQ0FBQztRQUs5QixTQUFJLEdBQXdCLEdBQUcsQ0FBQztLQWNuQztJQVpHLFNBQVMsQ0FBQyxLQUFhO1FBQ25CLE9BQU8sQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFhO1FBQ2xCLE9BQU8sbUJBQW1CLEtBQUssR0FBRyxDQUFDO0lBQ3ZDLENBQUM7SUFHTyxNQUFNLENBQUMsS0FBd0I7UUFDbkMsT0FBTyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDOzs2R0FyQlEsZUFBZTtpR0FBZixlQUFlLGtKQ1g1QixnTUFNQTtBRFFJO0lBREMsY0FBYyxFQUFFOzhDQUNhO0FBSzlCO0lBREMsY0FBYyxFQUFFOzZDQUNlO0FBV2hDO0lBREMsT0FBTzs2Q0FHUDs0RkFyQlEsZUFBZTtrQkFOM0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsU0FBUztvQkFDbkIsV0FBVyxFQUFFLHFCQUFxQjtvQkFDbEMsU0FBUyxFQUFFLENBQUMsa0JBQWtCLENBQUM7b0JBQy9CLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDs4QkFJRyxLQUFLO3NCQUZKLEtBQUs7Z0JBT04sSUFBSTtzQkFISCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGdCQUFnQjtnQkFhckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U2FmZVZhbHVlfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7dHVpRGVmYXVsdFByb3AsIHR1aVB1cmUsIHR1aVN1bX0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aVNpemVMLCBUdWlTaXplU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1iYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXIudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYmFyLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVHVpQmFyQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgdmFsdWU6IHJlYWRvbmx5IG51bWJlcltdID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXNpemUnKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2l6ZTogVHVpU2l6ZUwgfCBUdWlTaXplUyA9ICdtJztcblxuICAgIGdldEhlaWdodCh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuICgxMDAgKiB2YWx1ZSkgLyB0aGlzLmdldFN1bSh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXRDb2xvcihpbmRleDogbnVtYmVyKTogU2FmZVZhbHVlIHtcbiAgICAgICAgcmV0dXJuIGB2YXIoLS10dWktY2hhcnQtJHtpbmRleH0pYDtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZ2V0U3VtKHZhbHVlOiByZWFkb25seSBudW1iZXJbXSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0dWlTdW0oLi4udmFsdWUpO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiB2YWx1ZTsgbGV0IGluZGV4ID0gaW5kZXhcIlxuICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktYmFyX19iYXJcIlxuICAgIFtzdHlsZS5oZWlnaHQuJV09XCJnZXRIZWlnaHQoaXRlbSlcIlxuICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImdldENvbG9yKGluZGV4KVwiXG4+PC9kaXY+XG4iXX0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLWNoYXJ0cy9jb21wb25lbnRzL2Jhci9iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tY2hhcnRzL2NvbXBvbmVudHMvYmFyL2Jhci50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFckYsT0FBTyxFQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQVM5QyxNQUFNLE9BQU8sZUFBZTtJQU41QjtRQVFJLFVBQUssR0FBc0IsRUFBRSxDQUFDO1FBSTlCLFNBQUksR0FBd0IsR0FBRyxDQUFDO0tBY25DO0lBWkcsU0FBUyxDQUFDLEtBQWE7UUFDbkIsT0FBTyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWE7UUFDbEIsT0FBTyxtQkFBbUIsS0FBSyxHQUFHLENBQUM7SUFDdkMsQ0FBQztJQUdPLE1BQU0sQ0FBQyxLQUF3QjtRQUNuQyxPQUFPLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7OzZHQW5CUSxlQUFlO2lHQUFmLGVBQWUsa0pDWDVCLGdNQU1BO0FEc0JJO0lBREMsT0FBTzs2Q0FHUDs0RkFuQlEsZUFBZTtrQkFOM0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsU0FBUztvQkFDbkIsV0FBVyxFQUFFLHFCQUFxQjtvQkFDbEMsU0FBUyxFQUFFLENBQUMsa0JBQWtCLENBQUM7b0JBQy9CLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDs4QkFHRyxLQUFLO3NCQURKLEtBQUs7Z0JBS04sSUFBSTtzQkFGSCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGdCQUFnQjtnQkFZckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U2FmZVZhbHVlfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7dHVpUHVyZSwgdHVpU3VtfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpU2l6ZUwsIFR1aVNpemVTfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Jhci50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9iYXIuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlCYXJDb21wb25lbnQge1xuICAgIEBJbnB1dCgpXG4gICAgdmFsdWU6IHJlYWRvbmx5IG51bWJlcltdID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXNpemUnKVxuICAgIHNpemU6IFR1aVNpemVMIHwgVHVpU2l6ZVMgPSAnbSc7XG5cbiAgICBnZXRIZWlnaHQodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoMTAwICogdmFsdWUpIC8gdGhpcy5nZXRTdW0odGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0Q29sb3IoaW5kZXg6IG51bWJlcik6IFNhZmVWYWx1ZSB7XG4gICAgICAgIHJldHVybiBgdmFyKC0tdHVpLWNoYXJ0LSR7aW5kZXh9KWA7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGdldFN1bSh2YWx1ZTogcmVhZG9ubHkgbnVtYmVyW10pOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdHVpU3VtKC4uLnZhbHVlKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdmFsdWU7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWJhcl9fYmFyXCJcbiAgICBbc3R5bGUuaGVpZ2h0LiVdPVwiZ2V0SGVpZ2h0KGl0ZW0pXCJcbiAgICBbc3R5bGUuYmFja2dyb3VuZF09XCJnZXRDb2xvcihpbmRleClcIlxuPjwvZGl2PlxuIl19
@@ -1,17 +1,12 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { ChangeDetectionStrategy, Component, Inject, Input, Optional, ViewChildren, } from '@angular/core';
3
- import { EMPTY_QUERY, tuiDefaultProp, TuiIdService, tuiPure, tuiSum, } from '@taiga-ui/cdk';
3
+ import { EMPTY_QUERY, TuiIdService, tuiPure, tuiSum, } from '@taiga-ui/cdk';
4
4
  import { TuiHintHoverDirective, TuiHintOptionsDirective, tuiHintOptionsProvider, } from '@taiga-ui/core';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@taiga-ui/addon-charts/components/bar-set";
7
7
  import * as i2 from "@angular/common";
8
8
  import * as i3 from "@taiga-ui/core";
9
9
  import * as i4 from "@taiga-ui/cdk";
10
- function valueAssertion(value) {
11
- const valid = value.every(array => array.length === value[0].length);
12
- return valid;
13
- }
14
- const VALUE_ERROR = 'All arrays must be of the same length';
15
10
  export class TuiBarChartComponent {
16
11
  constructor(hintOptions, idService) {
17
12
  this.hintOptions = hintOptions;
@@ -47,18 +42,6 @@ export class TuiBarChartComponent {
47
42
  }
48
43
  TuiBarChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiBarChartComponent, deps: [{ token: TuiHintOptionsDirective, optional: true }, { token: TuiIdService }], target: i0.ɵɵFactoryTarget.Component });
49
44
  TuiBarChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiBarChartComponent, selector: "tui-bar-chart", inputs: { value: "value", max: "max", size: "size", collapsed: "collapsed" }, viewQueries: [{ propertyName: "drivers", predicate: TuiHintHoverDirective, descendants: true }], ngImport: i0, template: "<div\n *ngFor=\"let set of transposed; let index = index\"\n class=\"t-wrapper\"\n [class.t-wrapper_hoverable]=\"!!hintContent\"\n [class.t-wrapper_hovered]=\"drivers.get(index) | async\"\n [tuiHintHost]=\"hintHost\"\n [tuiHint]=\"hintContent\"\n [tuiHintContext]=\"{$implicit: index}\"\n [tuiHintDescribe]=\"getHintId(index)\"\n (mouseenter.once)=\"(0)\"\n>\n <div\n class=\"t-container\"\n [style.height.%]=\"set | tuiMapper : percentMapper : collapsed : computedMax\"\n >\n <div\n #hintHost\n class=\"t-host\"\n ></div>\n <tui-bar-set\n class=\"t-set\"\n [id]=\"getHintId(index)\"\n [tuiFocusable]=\"!!hintContent\"\n [value]=\"set\"\n [size]=\"size\"\n [collapsed]=\"collapsed\"\n ></tui-bar-set>\n </div>\n</div>\n", styles: [":host{display:flex;flex:1;height:100%}.t-wrapper{transition-property:background-color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:flex;flex:1;align-items:flex-end;justify-content:center;height:100%}.t-wrapper_hoverable{cursor:pointer}.t-wrapper_hoverable:hover,.t-wrapper_hoverable.t-wrapper_hovered{background-color:#0000000d}.t-container{flex:1}.t-host{position:absolute;left:50%;right:50%}.t-set{border-radius:var(--tui-radius-m);pointer-events:none;outline:none}.t-set:focus{box-shadow:0 0 0 2px var(--tui-focus)}\n"], components: [{ type: i1.TuiBarSetComponent, selector: "tui-bar-set", inputs: ["value", "size", "collapsed"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.TuiHintDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"] }, { type: i3.TuiHintDriverDirective, selector: "[tuiHint]" }, { type: i3.TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHintShowDelay", "tuiHintHideDelay"], exportAs: ["tuiHintHover"] }, { type: i3.TuiHintPositionDirective, selector: "[tuiHint]:not([tuiHintCustomPosition])", inputs: ["tuiHintDirection"] }, { type: i3.TuiHintHostDirective, selector: "[tuiHint][tuiHintHost]", inputs: ["tuiHintHost"] }, { type: i3.TuiHintDescribeDirective, selector: "[tuiHintDescribe]", inputs: ["tuiHintDescribe"] }, { type: i4.TuiFocusableDirective, selector: "[tuiFocusable]", inputs: ["tuiFocusable"] }], pipes: { "async": i2.AsyncPipe, "tuiMapper": i4.TuiMapperPipe }, viewProviders: [tuiHintOptionsProvider({ direction: 'top' })], changeDetection: i0.ChangeDetectionStrategy.OnPush });
50
- __decorate([
51
- tuiDefaultProp(valueAssertion, VALUE_ERROR)
52
- ], TuiBarChartComponent.prototype, "value", void 0);
53
- __decorate([
54
- tuiDefaultProp()
55
- ], TuiBarChartComponent.prototype, "max", void 0);
56
- __decorate([
57
- tuiDefaultProp()
58
- ], TuiBarChartComponent.prototype, "size", void 0);
59
- __decorate([
60
- tuiDefaultProp()
61
- ], TuiBarChartComponent.prototype, "collapsed", void 0);
62
45
  __decorate([
63
46
  tuiPure
64
47
  ], TuiBarChartComponent.prototype, "transpose", null);
@@ -94,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
94
77
  }], collapsed: [{
95
78
  type: Input
96
79
  }], transpose: [], getMax: [] } });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyLWNoYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLWNoYXJ0cy9jb21wb25lbnRzL2Jhci1jaGFydC9iYXItY2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tY2hhcnRzL2NvbXBvbmVudHMvYmFyLWNoYXJ0L2Jhci1jaGFydC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFFUixZQUFZLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILFdBQVcsRUFFWCxjQUFjLEVBQ2QsWUFBWSxFQUVaLE9BQU8sRUFDUCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsc0JBQXNCLEdBR3pCLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQUl4QixTQUFTLGNBQWMsQ0FBQyxLQUF1QztJQUMzRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFckUsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQztBQUVELE1BQU0sV0FBVyxHQUFHLHVDQUF1QyxDQUFDO0FBUzVELE1BQU0sT0FBTyxvQkFBb0I7SUFzQjdCLFlBR3FCLFdBQTJDLEVBQ3RDLFNBQXVCO1FBRDVCLGdCQUFXLEdBQVgsV0FBVyxDQUFnQztRQXJCdkQsWUFBTyxHQUFtQyxXQUFXLENBQUM7UUFJL0QsVUFBSyxHQUFxQyxFQUFFLENBQUM7UUFJN0MsUUFBRyxHQUFHLEdBQUcsQ0FBQztRQUlWLFNBQUks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LGFBQWEsRUFBRSxDQUFDLHNCQUFzQixDQUFDLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7aUJBQzlEOzswQkF3QlEsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyx1QkFBdUI7OzBCQUU5QixNQUFNOzJCQUFDLFlBQVk7NENBdEJmLE9BQU87c0JBRGYsWUFBWTt1QkFBQyxxQkFBcUI7Z0JBS25DLEtBQUs7c0JBRkosS0FBSztnQkFNTixHQUFHO3NCQUZGLEtBQUs7Z0JBTU4sSUFBSTtzQkFGSCxLQUFLO2dCQU1OLFNBQVM7c0JBRlIsS0FBSztnQkFvQ0UsU0FBUyxNQVdULE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEVNUFRZX1FVRVJZLFxuICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpSWRTZXJ2aWNlLFxuICAgIFR1aU1hcHBlcixcbiAgICB0dWlQdXJlLFxuICAgIHR1aVN1bSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFR1aUhpbnRIb3ZlckRpcmVjdGl2ZSxcbiAgICBUdWlIaW50T3B0aW9uc0RpcmVjdGl2ZSxcbiAgICB0dWlIaW50T3B0aW9uc1Byb3ZpZGVyLFxuICAgIFR1aVNpemVMLFxuICAgIFR1aVNpemVTLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5mdW5jdGlvbiB2YWx1ZUFzc2VydGlvbih2YWx1ZTogUmVhZG9ubHlBcnJheTxyZWFkb25seSBudW1iZXJbXT4pOiBib29sZWFuIHtcbiAgICBjb25zdCB2YWxpZCA9IHZhbHVlLmV2ZXJ5KGFycmF5ID0+IGFycmF5Lmxlbmd0aCA9PT0gdmFsdWVbMF0ubGVuZ3RoKTtcblxuICAgIHJldHVybiB2YWxpZDtcbn1cblxuY29uc3QgVkFMVUVfRVJST1IgPSAnQWxsIGFycmF5cyBtdXN0IGJlIG9mIHRoZSBzYW1lIGxlbmd0aCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWJhci1jaGFydCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Jhci1jaGFydC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9iYXItY2hhcnQuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHZpZXdQcm92aWRlcnM6IFt0dWlIaW50T3B0aW9uc1Byb3ZpZGVyKHtkaXJlY3Rpb246ICd0b3AnfSldLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlCYXJDaGFydENvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhdXRvSWRTdHJpbmc6IHN0cmluZztcblxuICAgIEBWaWV3Q2hpbGRyZW4oVHVpSGludEhvdmVyRGlyZWN0aXZlKVxuICAgIHJlYWRvbmx5IGRyaXZlcnM6IFF1ZXJ5TGlzdDxPYnNlcnZhYmxlPGJvb2xlYW4+PiA9IEVNUFRZX1FVRVJZO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AodmFsdWVBc3NlcnRpb24sIFZBTFVFX0VSUk9SKVxuICAgIHZhbHVlOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IG51bWJlcltdPiA9IFtdO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1heCA9IE5hTjtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzaXplOiBUdWlTaXplTCB8IFR1aVNpemVTIHwgbnVsbCA9ICdtJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBjb2xsYXBzZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFR1aUhpbnRPcHRpb25zRGlyZWN0aXZlKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGhpbnRPcHRpb25zOiBUdWlIaW50T3B0aW9uc0RpcmVjdGl2ZSB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoVHVpSWRTZXJ2aWNlKSBpZFNlcnZpY2U6IFR1aUlkU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgdGhpcy5hdXRvSWRTdHJpbmcgPSBpZFNlcnZpY2UuZ2VuZXJhdGUoKTtcbiAgICB9XG5cbiAgICBnZXQgaGludENvbnRlbnQoKTogUG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0V2l0aEltcGxpY2l0PG51bWJlcj4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGludE9wdGlvbnM/LmNvbnRlbnQgfHwgJyc7XG4gICAgfVxuXG4gICAgZ2V0IHRyYW5zcG9zZWQoKTogUmVhZG9ubHlBcnJheTxyZWFkb25seSBudW1iZXJbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc3Bvc2UodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkTWF4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm1heCB8fCB0aGlzLmdldE1heCh0aGlzLnZhbHVlLCB0aGlzLmNvbGxhcHNlZCk7XG4gICAgfVxuXG4gICAgcmVhZG9ubHkgcGVyY2VudE1hcHBlcjogVHVpTWFwcGVyPHJlYWRvbmx5IG51bWJlcltdLCBudW1iZXI+ID0gKFxuICAgICAgICBzZXQsXG4gICAgICAgIGNvbGxhcHNlZDogYm9vbGVhbixcbiAgICAgICAgbWF4OiBudW1iZXIsXG4gICAgKSA9PiAoMTAwICogKGNvbGxhcHNlZCA/IHR1aVN1bSguLi5zZXQpIDogTWF0aC5tYXgoLi4uc2V0KSkpIC8gbWF4O1xuXG4gICAgZ2V0SGludElkKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5hdXRvSWRTdHJpbmd9XyR7aW5kZXh9YDtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgdHJhbnNwb3NlKFxuICAgICAgICB2YWx1ZTogUmVhZG9ubHlBcnJheTxyZWFkb25seSBudW1iZXJbXT4sXG4gICAgKTogUmVhZG9ubHlBcnJheTxyZWFkb25seSBudW1iZXJbXT4ge1xuICAgICAgICByZXR1cm4gdmFsdWUucmVkdWNlPFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgbnVtYmVyW10+PihcbiAgICAgICAgICAgIChyZXN1bHQsIG5leHQpID0+XG4gICAgICAgICAgICAgICAgbmV4dC5tYXAoKF8sIGluZGV4KSA9PiBbLi4uKHJlc3VsdFtpbmRleF0gfHwgW10pLCBuZXh0W2luZGV4XV0pLFxuICAgICAgICAgICAgW10sXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGdldE1heCh2YWx1ZXM6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgbnVtYmVyW10+LCBjb2xsYXBzZWQ6IGJvb2xlYW4pOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gY29sbGFwc2VkXG4gICAgICAgICAgICA/IE1hdGgubWF4KFxuICAgICAgICAgICAgICAgICAgLi4udmFsdWVzLnJlZHVjZSgocmVzdWx0LCBuZXh0KSA9PlxuICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5tYXAoKHZhbHVlLCBpbmRleCkgPT4gdmFsdWUgKyBuZXh0W2luZGV4XSksXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IHZhbHVlcy5yZWR1Y2UoKG1heCwgdmFsdWUpID0+IE1hdGgubWF4KC4uLnZhbHVlLCBtYXgpLCAwKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgKm5nRm9yPVwibGV0IHNldCBvZiB0cmFuc3Bvc2VkOyBsZXQgaW5kZXggPSBpbmRleFwiXG4gICAgY2xhc3M9XCJ0LXdyYXBwZXJcIlxuICAgIFtjbGFzcy50LXdyYXBwZXJfaG92ZXJhYmxlXT1cIiEhaGludENvbnRlbnRcIlxuICAgIFtjbGFzcy50LXdyYXBwZXJfaG92ZXJlZF09XCJkcml2ZXJzLmdldChpbmRleCkgfCBhc3luY1wiXG4gICAgW3R1aUhpbnRIb3N0XT1cImhpbnRIb3N0XCJcbiAgICBbdHVpSGludF09XCJoaW50Q29udGVudFwiXG4gICAgW3R1aUhpbnRDb250ZXh0XT1cInskaW1wbGljaXQ6IGluZGV4fVwiXG4gICAgW3R1aUhpbnREZXNjcmliZV09XCJnZXRIaW50SWQoaW5kZXgpXCJcbiAgICAobW91c2VlbnRlci5vbmNlKT1cIigwKVwiXG4+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cInQtY29udGFpbmVyXCJcbiAgICAgICAgW3N0eWxlLmhlaWdodC4lXT1cInNldCB8IHR1aU1hcHBlciA6IHBlcmNlbnRNYXBwZXIgOiBjb2xsYXBzZWQgOiBjb21wdXRlZE1heFwiXG4gICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAjaGludEhvc3RcbiAgICAgICAgICAgIGNsYXNzPVwidC1ob3N0XCJcbiAgICAgICAgPjwvZGl2PlxuICAgICAgICA8dHVpLWJhci1zZXRcbiAgICAgICAgICAgIGNsYXNzPVwidC1zZXRcIlxuICAgICAgICAgICAgW2lkXT1cImdldEhpbnRJZChpbmRleClcIlxuICAgICAgICAgICAgW3R1aUZvY3VzYWJsZV09XCIhIWhpbnRDb250ZW50XCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJzZXRcIlxuICAgICAgICAgICAgW3NpemVdPVwic2l6ZVwiXG4gICAgICAgICAgICBbY29sbGFwc2VkXT1cImNvbGxhcHNlZFwiXG4gICAgICAgID48L3R1aS1iYXItc2V0PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyLWNoYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLWNoYXJ0cy9jb21wb25lbnRzL2Jhci1jaGFydC9iYXItY2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tY2hhcnRzL2NvbXBvbmVudHMvYmFyLWNoYXJ0L2Jhci1jaGFydC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFFUixZQUFZLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILFdBQVcsRUFFWCxZQUFZLEVBRVosT0FBTyxFQUNQLE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gscUJBQXFCLEVBQ3JCLHVCQUF1QixFQUN2QixzQkFBc0IsR0FHekIsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBV3hCLE1BQU0sT0FBTyxvQkFBb0I7SUFrQjdCLFlBR3FCLFdBQTJDLEVBQ3RDLFNBQXVCO1FBRDVCLGdCQUFXLEdBQVgsV0FBVyxDQUFnQztRQWpCdkQsWUFBTyxHQUFtQyxXQUFXLENBQUM7UUFHL0QsVUFBSyxHQUFxQyxFQUFFLENBQUM7UUFHN0MsUUFBRyxHQUFHLEdBQUcsQ0FBQztRQUdWLFNBQUksR0FBK0IsR0FBRyxDQUFDO1FBR3ZDLGNBQVMsR0FBRyxLQUFLLENBQUM7UUF1QlQsa0JBQWEsR0FBeUMsQ0FDM0QsR0FBRyxFQUNILFNBQWtCLEVBQ2xCLEdBQVcsRUFDYixFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQW5CL0QsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksV0FBVzs7UUFDWCxPQUFPLENBQUEsTUFBQSxJQUFJLENBQUMsV0FBVywwQ0FBRSxPQUFPLEtBQUksRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBUUQsU0FBUyxDQUFDLEtBQWE7UUFDbkIsT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLElBQUksS0FBSyxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUdPLFNBQVMsQ0FDYixLQUF1QztRQUV2QyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQ2YsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FDYixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ25FLEVBQUUsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUdPLE1BQU0sQ0FBQyxNQUF3QyxFQUFFLFNBQWtCO1FBQ3ZFLE9BQU8sU0FBUztZQUNaLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNKLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUM5QixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNwRCxDQUNKO1lBQ0gsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7O2tIQXJFUSxvQkFBb0Isa0JBb0JqQix1QkFBdUIsNkJBRXZCLFlBQVk7c0dBdEJmLG9CQUFvQiwrSkFHZixxQkFBcUIsZ0RDckN2Qyx1M0JBNkJBLGtvRERHbUIsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO0FBb0QzRDtJQURDLE9BQU87cURBU1A7QUFHRDtJQURDLE9BQU87a0RBU1A7NEZBckVRLG9CQUFvQjtrQkFQaEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsV0FBVyxFQUFFLDJCQUEyQjtvQkFDeEMsU0FBUyxFQUFFLENBQUMsd0JBQXdCLENBQUM7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO2lCQUM5RDs7MEJBb0JRLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsdUJBQXVCOzswQkFFOUIsTUFBTTsyQkFBQyxZQUFZOzRDQWxCZixPQUFPO3NCQURmLFlBQVk7dUJBQUMscUJBQXFCO2dCQUluQyxLQUFLO3NCQURKLEtBQUs7Z0JBSU4sR0FBRztzQkFERixLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBbUNFLFNBQVMsTUFXVCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBFTVBUWV9RVUVSWSxcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIFR1aUlkU2VydmljZSxcbiAgICBUdWlNYXBwZXIsXG4gICAgdHVpUHVyZSxcbiAgICB0dWlTdW0sXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBUdWlIaW50SG92ZXJEaXJlY3RpdmUsXG4gICAgVHVpSGludE9wdGlvbnNEaXJlY3RpdmUsXG4gICAgdHVpSGludE9wdGlvbnNQcm92aWRlcixcbiAgICBUdWlTaXplTCxcbiAgICBUdWlTaXplUyxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktYmFyLWNoYXJ0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFyLWNoYXJ0LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2Jhci1jaGFydC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgdmlld1Byb3ZpZGVyczogW3R1aUhpbnRPcHRpb25zUHJvdmlkZXIoe2RpcmVjdGlvbjogJ3RvcCd9KV0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUJhckNoYXJ0Q29tcG9uZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGF1dG9JZFN0cmluZzogc3RyaW5nO1xuXG4gICAgQFZpZXdDaGlsZHJlbihUdWlIaW50SG92ZXJEaXJlY3RpdmUpXG4gICAgcmVhZG9ubHkgZHJpdmVyczogUXVlcnlMaXN0PE9ic2VydmFibGU8Ym9vbGVhbj4+ID0gRU1QVFlfUVVFUlk7XG5cbiAgICBASW5wdXQoKVxuICAgIHZhbHVlOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IG51bWJlcltdPiA9IFtdO1xuXG4gICAgQElucHV0KClcbiAgICBtYXggPSBOYU47XG5cbiAgICBASW5wdXQoKVxuICAgIHNpemU6IFR1aVNpemVMIHwgVHVpU2l6ZVMgfCBudWxsID0gJ20nO1xuXG4gICAgQElucHV0KClcbiAgICBjb2xsYXBzZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFR1aUhpbnRPcHRpb25zRGlyZWN0aXZlKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGhpbnRPcHRpb25zOiBUdWlIaW50T3B0aW9uc0RpcmVjdGl2ZSB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoVHVpSWRTZXJ2aWNlKSBpZFNlcnZpY2U6IFR1aUlkU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgdGhpcy5hdXRvSWRTdHJpbmcgPSBpZFNlcnZpY2UuZ2VuZXJhdGUoKTtcbiAgICB9XG5cbiAgICBnZXQgaGludENvbnRlbnQoKTogUG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0V2l0aEltcGxpY2l0PG51bWJlcj4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGludE9wdGlvbnM/LmNvbnRlbnQgfHwgJyc7XG4gICAgfVxuXG4gICAgZ2V0IHRyYW5zcG9zZWQoKTogUmVhZG9ubHlBcnJheTxyZWFkb25seSBudW1iZXJbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc3Bvc2UodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkTWF4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm1heCB8fCB0aGlzLmdldE1heCh0aGlzLnZhbHVlLCB0aGlzLmNvbGxhcHNlZCk7XG4gICAgfVxuXG4gICAgcmVhZG9ubHkgcGVyY2VudE1hcHBlcjogVHVpTWFwcGVyPHJlYWRvbmx5IG51bWJlcltdLCBudW1iZXI+ID0gKFxuICAgICAgICBzZXQsXG4gICAgICAgIGNvbGxhcHNlZDogYm9vbGVhbixcbiAgICAgICAgbWF4OiBudW1iZXIsXG4gICAgKSA9PiAoMTAwICogKGNvbGxhcHNlZCA/IHR1aVN1bSguLi5zZXQpIDogTWF0aC5tYXgoLi4uc2V0KSkpIC8gbWF4O1xuXG4gICAgZ2V0SGludElkKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5hdXRvSWRTdHJpbmd9XyR7aW5kZXh9YDtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgdHJhbnNwb3NlKFxuICAgICAgICB2YWx1ZTogUmVhZG9ubHlBcnJheTxyZWFkb25seSBudW1iZXJbXT4sXG4gICAgKTogUmVhZG9ubHlBcnJheTxyZWFkb25seSBudW1iZXJbXT4ge1xuICAgICAgICByZXR1cm4gdmFsdWUucmVkdWNlPFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgbnVtYmVyW10+PihcbiAgICAgICAgICAgIChyZXN1bHQsIG5leHQpID0+XG4gICAgICAgICAgICAgICAgbmV4dC5tYXAoKF8sIGluZGV4KSA9PiBbLi4uKHJlc3VsdFtpbmRleF0gfHwgW10pLCBuZXh0W2luZGV4XV0pLFxuICAgICAgICAgICAgW10sXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGdldE1heCh2YWx1ZXM6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgbnVtYmVyW10+LCBjb2xsYXBzZWQ6IGJvb2xlYW4pOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gY29sbGFwc2VkXG4gICAgICAgICAgICA/IE1hdGgubWF4KFxuICAgICAgICAgICAgICAgICAgLi4udmFsdWVzLnJlZHVjZSgocmVzdWx0LCBuZXh0KSA9PlxuICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5tYXAoKHZhbHVlLCBpbmRleCkgPT4gdmFsdWUgKyBuZXh0W2luZGV4XSksXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IHZhbHVlcy5yZWR1Y2UoKG1heCwgdmFsdWUpID0+IE1hdGgubWF4KC4uLnZhbHVlLCBtYXgpLCAwKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgKm5nRm9yPVwibGV0IHNldCBvZiB0cmFuc3Bvc2VkOyBsZXQgaW5kZXggPSBpbmRleFwiXG4gICAgY2xhc3M9XCJ0LXdyYXBwZXJcIlxuICAgIFtjbGFzcy50LXdyYXBwZXJfaG92ZXJhYmxlXT1cIiEhaGludENvbnRlbnRcIlxuICAgIFtjbGFzcy50LXdyYXBwZXJfaG92ZXJlZF09XCJkcml2ZXJzLmdldChpbmRleCkgfCBhc3luY1wiXG4gICAgW3R1aUhpbnRIb3N0XT1cImhpbnRIb3N0XCJcbiAgICBbdHVpSGludF09XCJoaW50Q29udGVudFwiXG4gICAgW3R1aUhpbnRDb250ZXh0XT1cInskaW1wbGljaXQ6IGluZGV4fVwiXG4gICAgW3R1aUhpbnREZXNjcmliZV09XCJnZXRIaW50SWQoaW5kZXgpXCJcbiAgICAobW91c2VlbnRlci5vbmNlKT1cIigwKVwiXG4+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cInQtY29udGFpbmVyXCJcbiAgICAgICAgW3N0eWxlLmhlaWdodC4lXT1cInNldCB8IHR1aU1hcHBlciA6IHBlcmNlbnRNYXBwZXIgOiBjb2xsYXBzZWQgOiBjb21wdXRlZE1heFwiXG4gICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAjaGludEhvc3RcbiAgICAgICAgICAgIGNsYXNzPVwidC1ob3N0XCJcbiAgICAgICAgPjwvZGl2PlxuICAgICAgICA8dHVpLWJhci1zZXRcbiAgICAgICAgICAgIGNsYXNzPVwidC1zZXRcIlxuICAgICAgICAgICAgW2lkXT1cImdldEhpbnRJZChpbmRleClcIlxuICAgICAgICAgICAgW3R1aUZvY3VzYWJsZV09XCIhIWhpbnRDb250ZW50XCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJzZXRcIlxuICAgICAgICAgICAgW3NpemVdPVwic2l6ZVwiXG4gICAgICAgICAgICBbY29sbGFwc2VkXT1cImNvbGxhcHNlZFwiXG4gICAgICAgID48L3R1aS1iYXItc2V0PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
3
- import { tuiDefaultProp, tuiPure } from '@taiga-ui/cdk';
3
+ import { tuiPure } from '@taiga-ui/cdk';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@taiga-ui/addon-charts/components/bar";
6
6
  import * as i2 from "@angular/common";
@@ -34,15 +34,6 @@ export class TuiBarSetComponent {
34
34
  }
35
35
  TuiBarSetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiBarSetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
36
36
  TuiBarSetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiBarSetComponent, selector: "tui-bar-set", inputs: { value: "value", size: "size", collapsed: "collapsed" }, ngImport: i0, template: "<ng-container *ngIf=\"size; else flexible\">\n <ng-container\n *ngFor=\"let item of computedValue; let index = index\"\n [ngTemplateOutlet]=\"bar\"\n [ngTemplateOutletContext]=\"{$implicit: item, index: index, flexible: false}\"\n ></ng-container>\n</ng-container>\n<ng-template #flexible>\n <div\n *ngFor=\"let item of computedValue; let index = index\"\n class=\"t-wrapper\"\n >\n <ng-container\n [ngTemplateOutlet]=\"bar\"\n [ngTemplateOutletContext]=\"{$implicit: item, index: index, flexible: true}\"\n ></ng-container>\n </div>\n</ng-template>\n<ng-template\n #bar\n let-item\n let-index=\"index\"\n let-flexible=\"flexible\"\n>\n <tui-bar\n automation-id=\"tui-bar-set__bar\"\n class=\"t-bar\"\n [class.t-bar_flexible]=\"flexible\"\n [class.t-bar_negative]=\"item < 0\"\n [style.height.%]=\"getHeight(item)\"\n [style.background]=\"getColor(index)\"\n [value]=\"computedSegments\"\n [size]=\"computedSize\"\n ></tui-bar>\n</ng-template>\n<span class=\"t-label\">\n <ng-content></ng-content>\n</span>\n", styles: [":host{position:relative;display:flex;height:100%;align-items:flex-end;justify-content:center}.t-wrapper{display:flex;flex:1;height:100%;align-items:flex-end}.t-wrapper:first-of-type{margin-left:25%}.t-wrapper:last-of-type{margin-right:25%}.t-bar{transform-origin:bottom center}.t-bar_negative{transform:rotate(180deg);opacity:var(--tui-disabled-opacity)}.t-bar.t-bar_flexible{max-width:none;width:75%;margin:0 auto}.t-label{position:absolute;top:-1.5rem;font:var(--tui-font-text-xs);color:var(--tui-text-02)}\n"], components: [{ type: i1.TuiBarComponent, selector: "tui-bar", inputs: ["value", "size"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
37
- __decorate([
38
- tuiDefaultProp()
39
- ], TuiBarSetComponent.prototype, "value", void 0);
40
- __decorate([
41
- tuiDefaultProp()
42
- ], TuiBarSetComponent.prototype, "size", void 0);
43
- __decorate([
44
- tuiDefaultProp()
45
- ], TuiBarSetComponent.prototype, "collapsed", void 0);
46
37
  __decorate([
47
38
  tuiPure
48
39
  ], TuiBarSetComponent.prototype, "getLargest", null);
@@ -61,4 +52,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
61
52
  }], collapsed: [{
62
53
  type: Input
63
54
  }], getLargest: [] } });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyLXNldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jaGFydHMvY29tcG9uZW50cy9iYXItc2V0L2Jhci1zZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tY2hhcnRzL2NvbXBvbmVudHMvYmFyLXNldC9iYXItc2V0LnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXhFLE9BQU8sRUFBQyxjQUFjLEVBQUUsT0FBTyxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7O0FBR3RELE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUNwQixNQUFNLFdBQVcsR0FBc0IsRUFBRSxDQUFDO0FBQzFDLE1BQU0sWUFBWSxHQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDO0FBUTVDLE1BQU0sT0FBTyxrQkFBa0I7SUFOL0I7UUFTSSxVQUFLLEdBQXNCLEVBQUUsQ0FBQztRQUk5QixTQUFJLEdBQStCLEdBQUcsQ0FBQztRQUl2QyxjQUFTLEdBQUcsS0FBSyxDQUFDO0tBMEJyQjtJQXhCRyxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0RCxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksSUFBSSxHQUFHLENBQUM7SUFDNUIsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYTtRQUNsQixPQUFPLG1CQUFtQixLQUFLLEdBQUcsQ0FBQztJQUN2QyxDQUFDO0lBR08sVUFBVSxDQUFDLEtBQXdCO1FBQ3ZDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDOztnSEFwQ1Esa0JBQWtCO29HQUFsQixrQkFBa0IscUhDZi9CLHFwQ0FzQ0E7QURwQkk7SUFEQyxjQUFjLEVBQUU7aURBQ2E7QUFJOUI7SUFEQyxjQUFjLEVBQUU7Z0RBQ3NCO0FBSXZDO0lBREMsY0FBYyxFQUFFO3FEQUNDO0FBdUJsQjtJQURDLE9BQU87b0RBR1A7NEZBcENRLGtCQUFrQjtrQkFOOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsV0FBVyxFQUFFLHlCQUF5QjtvQkFDdEMsU0FBUyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ25DLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDs4QkFJRyxLQUFLO3NCQUZKLEtBQUs7Z0JBTU4sSUFBSTtzQkFGSCxLQUFLO2dCQU1OLFNBQVM7c0JBRlIsS0FBSztnQkF5QkUsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTYWZlVmFsdWV9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHt0dWlEZWZhdWx0UHJvcCwgdHVpUHVyZX0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aVNpemVMLCBUdWlTaXplU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuXG5jb25zdCBQRVJDRU5UID0gMTAwO1xuY29uc3QgRU1QVFlfQVJSQVk6IHJlYWRvbmx5IG51bWJlcltdID0gW107XG5jb25zdCBGSUxMRVJfQVJSQVk6IHJlYWRvbmx5IG51bWJlcltdID0gWzFdO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1iYXItc2V0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFyLXNldC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9iYXItc2V0LnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVHVpQmFyU2V0Q29tcG9uZW50IHtcbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgdmFsdWU6IHJlYWRvbmx5IG51bWJlcltdID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2l6ZTogVHVpU2l6ZUwgfCBUdWlTaXplUyB8IG51bGwgPSAnbSc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgY29sbGFwc2VkID0gZmFsc2U7XG5cbiAgICBnZXQgY29tcHV0ZWRWYWx1ZSgpOiByZWFkb25seSBudW1iZXJbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbGxhcHNlZCA/IEZJTExFUl9BUlJBWSA6IHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkU2VnbWVudHMoKTogcmVhZG9ubHkgbnVtYmVyW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2xsYXBzZWQgPyB0aGlzLnZhbHVlIDogRU1QVFlfQVJSQVk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkU2l6ZSgpOiBUdWlTaXplTCB8IFR1aVNpemVTIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2l6ZSB8fCAnbSc7XG4gICAgfVxuXG4gICAgZ2V0SGVpZ2h0KHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gTWF0aC5hYnMoKFBFUkNFTlQgKiB2YWx1ZSkgLyB0aGlzLmdldExhcmdlc3QodGhpcy5jb21wdXRlZFZhbHVlKSk7XG4gICAgfVxuXG4gICAgZ2V0Q29sb3IoaW5kZXg6IG51bWJlcik6IFNhZmVWYWx1ZSB7XG4gICAgICAgIHJldHVybiBgdmFyKC0tdHVpLWNoYXJ0LSR7aW5kZXh9KWA7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGdldExhcmdlc3QodmFsdWU6IHJlYWRvbmx5IG51bWJlcltdKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnJlZHVjZSgoYSwgYikgPT4gKGEgPiBiID8gYSA6IGIpLCAwKTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwic2l6ZTsgZWxzZSBmbGV4aWJsZVwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29tcHV0ZWRWYWx1ZTsgbGV0IGluZGV4ID0gaW5kZXhcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJiYXJcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDogaXRlbSwgaW5kZXg6IGluZGV4LCBmbGV4aWJsZTogZmFsc2V9XCJcbiAgICA+PC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjZmxleGlibGU+XG4gICAgPGRpdlxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb21wdXRlZFZhbHVlOyBsZXQgaW5kZXggPSBpbmRleFwiXG4gICAgICAgIGNsYXNzPVwidC13cmFwcGVyXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJhclwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDogaXRlbSwgaW5kZXg6IGluZGV4LCBmbGV4aWJsZTogdHJ1ZX1cIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlXG4gICAgI2JhclxuICAgIGxldC1pdGVtXG4gICAgbGV0LWluZGV4PVwiaW5kZXhcIlxuICAgIGxldC1mbGV4aWJsZT1cImZsZXhpYmxlXCJcbj5cbiAgICA8dHVpLWJhclxuICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWJhci1zZXRfX2JhclwiXG4gICAgICAgIGNsYXNzPVwidC1iYXJcIlxuICAgICAgICBbY2xhc3MudC1iYXJfZmxleGlibGVdPVwiZmxleGlibGVcIlxuICAgICAgICBbY2xhc3MudC1iYXJfbmVnYXRpdmVdPVwiaXRlbSA8IDBcIlxuICAgICAgICBbc3R5bGUuaGVpZ2h0LiVdPVwiZ2V0SGVpZ2h0KGl0ZW0pXCJcbiAgICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwiZ2V0Q29sb3IoaW5kZXgpXCJcbiAgICAgICAgW3ZhbHVlXT1cImNvbXB1dGVkU2VnbWVudHNcIlxuICAgICAgICBbc2l6ZV09XCJjb21wdXRlZFNpemVcIlxuICAgID48L3R1aS1iYXI+XG48L25nLXRlbXBsYXRlPlxuPHNwYW4gY2xhc3M9XCJ0LWxhYmVsXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9zcGFuPlxuIl19
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyLXNldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jaGFydHMvY29tcG9uZW50cy9iYXItc2V0L2Jhci1zZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tY2hhcnRzL2NvbXBvbmVudHMvYmFyLXNldC9iYXItc2V0LnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXhFLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7QUFHdEMsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3BCLE1BQU0sV0FBVyxHQUFzQixFQUFFLENBQUM7QUFDMUMsTUFBTSxZQUFZLEdBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFRNUMsTUFBTSxPQUFPLGtCQUFrQjtJQU4vQjtRQVFJLFVBQUssR0FBc0IsRUFBRSxDQUFDO1FBRzlCLFNBQUksR0FBK0IsR0FBRyxDQUFDO1FBR3ZDLGNBQVMsR0FBRyxLQUFLLENBQUM7S0EwQnJCO0lBeEJHLElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQztJQUM1QixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWE7UUFDbkIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFhO1FBQ2xCLE9BQU8sbUJBQW1CLEtBQUssR0FBRyxDQUFDO0lBQ3ZDLENBQUM7SUFHTyxVQUFVLENBQUMsS0FBd0I7UUFDdkMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7O2dIQWpDUSxrQkFBa0I7b0dBQWxCLGtCQUFrQixxSENmL0IscXBDQXNDQTtBRFFJO0lBREMsT0FBTztvREFHUDs0RkFqQ1Esa0JBQWtCO2tCQU45QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxhQUFhO29CQUN2QixXQUFXLEVBQUUseUJBQXlCO29CQUN0QyxTQUFTLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDbkMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEOzhCQUdHLEtBQUs7c0JBREosS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQXdCRSxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NhZmVWYWx1ZX0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQge3R1aVB1cmV9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUdWlTaXplTCwgVHVpU2l6ZVN9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcblxuY29uc3QgUEVSQ0VOVCA9IDEwMDtcbmNvbnN0IEVNUFRZX0FSUkFZOiByZWFkb25seSBudW1iZXJbXSA9IFtdO1xuY29uc3QgRklMTEVSX0FSUkFZOiByZWFkb25seSBudW1iZXJbXSA9IFsxXTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktYmFyLXNldCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Jhci1zZXQudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYmFyLXNldC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFR1aUJhclNldENvbXBvbmVudCB7XG4gICAgQElucHV0KClcbiAgICB2YWx1ZTogcmVhZG9ubHkgbnVtYmVyW10gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2l6ZTogVHVpU2l6ZUwgfCBUdWlTaXplUyB8IG51bGwgPSAnbSc7XG5cbiAgICBASW5wdXQoKVxuICAgIGNvbGxhcHNlZCA9IGZhbHNlO1xuXG4gICAgZ2V0IGNvbXB1dGVkVmFsdWUoKTogcmVhZG9ubHkgbnVtYmVyW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2xsYXBzZWQgPyBGSUxMRVJfQVJSQVkgOiB0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZFNlZ21lbnRzKCk6IHJlYWRvbmx5IG51bWJlcltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sbGFwc2VkID8gdGhpcy52YWx1ZSA6IEVNUFRZX0FSUkFZO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZFNpemUoKTogVHVpU2l6ZUwgfCBUdWlTaXplUyB7XG4gICAgICAgIHJldHVybiB0aGlzLnNpemUgfHwgJ20nO1xuICAgIH1cblxuICAgIGdldEhlaWdodCh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE1hdGguYWJzKChQRVJDRU5UICogdmFsdWUpIC8gdGhpcy5nZXRMYXJnZXN0KHRoaXMuY29tcHV0ZWRWYWx1ZSkpO1xuICAgIH1cblxuICAgIGdldENvbG9yKGluZGV4OiBudW1iZXIpOiBTYWZlVmFsdWUge1xuICAgICAgICByZXR1cm4gYHZhcigtLXR1aS1jaGFydC0ke2luZGV4fSlgO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBnZXRMYXJnZXN0KHZhbHVlOiByZWFkb25seSBudW1iZXJbXSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB2YWx1ZS5yZWR1Y2UoKGEsIGIpID0+IChhID4gYiA/IGEgOiBiKSwgMCk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInNpemU7IGVsc2UgZmxleGlibGVcIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbXB1dGVkVmFsdWU7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiYmFyXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInskaW1wbGljaXQ6IGl0ZW0sIGluZGV4OiBpbmRleCwgZmxleGlibGU6IGZhbHNlfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI2ZsZXhpYmxlPlxuICAgIDxkaXZcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29tcHV0ZWRWYWx1ZTsgbGV0IGluZGV4ID0gaW5kZXhcIlxuICAgICAgICBjbGFzcz1cInQtd3JhcHBlclwiXG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJiYXJcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInskaW1wbGljaXQ6IGl0ZW0sIGluZGV4OiBpbmRleCwgZmxleGlibGU6IHRydWV9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZVxuICAgICNiYXJcbiAgICBsZXQtaXRlbVxuICAgIGxldC1pbmRleD1cImluZGV4XCJcbiAgICBsZXQtZmxleGlibGU9XCJmbGV4aWJsZVwiXG4+XG4gICAgPHR1aS1iYXJcbiAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1iYXItc2V0X19iYXJcIlxuICAgICAgICBjbGFzcz1cInQtYmFyXCJcbiAgICAgICAgW2NsYXNzLnQtYmFyX2ZsZXhpYmxlXT1cImZsZXhpYmxlXCJcbiAgICAgICAgW2NsYXNzLnQtYmFyX25lZ2F0aXZlXT1cIml0ZW0gPCAwXCJcbiAgICAgICAgW3N0eWxlLmhlaWdodC4lXT1cImdldEhlaWdodChpdGVtKVwiXG4gICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImdldENvbG9yKGluZGV4KVwiXG4gICAgICAgIFt2YWx1ZV09XCJjb21wdXRlZFNlZ21lbnRzXCJcbiAgICAgICAgW3NpemVdPVwiY29tcHV0ZWRTaXplXCJcbiAgICA+PC90dWktYmFyPlxuPC9uZy10ZW1wbGF0ZT5cbjxzcGFuIGNsYXNzPVwidC1sYWJlbFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvc3Bhbj5cbiJdfQ==
@@ -1,6 +1,4 @@
1
- import { __decorate } from "tslib";
2
1
  import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';
3
- import { tuiDefaultProp } from '@taiga-ui/cdk';
4
2
  import * as i0 from "@angular/core";
5
3
  import * as i1 from "@taiga-ui/core";
6
4
  export class TuiLegendItemComponent {
@@ -17,18 +15,6 @@ export class TuiLegendItemComponent {
17
15
  }
18
16
  TuiLegendItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiLegendItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
17
  TuiLegendItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiLegendItemComponent, selector: "tui-legend-item", inputs: { active: "active", color: "color", text: "text", size: "size", disabled: "disabled" }, host: { properties: { "attr.data-size": "this.size", "class._disabled": "this.disabled", "style.--tui-primary": "this.computedColor" } }, ngImport: i0, template: "<button\n tuiButton\n type=\"button\"\n size=\"s\"\n appearance=\"whiteblock\"\n class=\"t-button\"\n [pseudoHover]=\"active || null\"\n>\n <div class=\"t-wrapper\">\n <ng-content select=\"tui-primitive-checkbox\"></ng-content>\n <span\n class=\"t-dot\"\n [style.backgroundColor]=\"color || 'var(--tui-primary)'\"\n ></span>\n <span class=\"t-text\">{{ text }}</span>\n <ng-content></ng-content>\n </div>\n</button>\n", styles: [":host{display:inline-block}.t-button{height:2rem;font-weight:bold}:host[data-size=m] .t-button{height:2.25rem;font:var(--tui-font-text-m);font-weight:bold}.t-wrapper{display:flex;align-items:center;pointer-events:none}:host._disabled .t-wrapper{color:var(--tui-text-03)}.t-dot{width:.5rem;height:.5rem;border-radius:100%;flex-shrink:0}:host._disabled .t-dot{background:var(--tui-base-04)}.t-dot:not(:first-child){display:none}.t-text{margin:0 .5rem;font-weight:normal}\n"], components: [{ type: i1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
20
- __decorate([
21
- tuiDefaultProp()
22
- ], TuiLegendItemComponent.prototype, "active", void 0);
23
- __decorate([
24
- tuiDefaultProp()
25
- ], TuiLegendItemComponent.prototype, "color", void 0);
26
- __decorate([
27
- tuiDefaultProp()
28
- ], TuiLegendItemComponent.prototype, "text", void 0);
29
- __decorate([
30
- tuiDefaultProp()
31
- ], TuiLegendItemComponent.prototype, "size", void 0);
32
18
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiLegendItemComponent, decorators: [{
33
19
  type: Component,
34
20
  args: [{
@@ -57,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
57
43
  type: HostBinding,
58
44
  args: ['style.--tui-primary']
59
45
  }] } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnZW5kLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tY2hhcnRzL2NvbXBvbmVudHMvbGVnZW5kLWl0ZW0vbGVnZW5kLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tY2hhcnRzL2NvbXBvbmVudHMvbGVnZW5kLWl0ZW0vbGVnZW5kLWl0ZW0udGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQVM3QyxNQUFNLE9BQU8sc0JBQXNCO0lBTm5DO1FBU0ksV0FBTSxHQUFHLEtBQUssQ0FBQztRQUlmLFVBQUssR0FBRyxFQUFFLENBQUM7UUFJWCxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBS1YsU0FBSSxHQUFhLEdBQUcsQ0FBQztRQUlyQixhQUFRLEdBQUcsS0FBSyxDQUFDO0tBTXBCO0lBSkcsSUFDSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDbkUsQ0FBQzs7b0hBekJRLHNCQUFzQjt3R0FBdEIsc0JBQXNCLGlTQ1ZuQyxvZkFrQkE7QURMSTtJQURDLGNBQWMsRUFBRTtzREFDRjtBQUlmO0lBREMsY0FBYyxFQUFFO3FEQUNOO0FBSVg7SUFEQyxjQUFjLEVBQUU7b0RBQ1A7QUFLVjtJQURDLGNBQWMsRUFBRTtvREFDSTs0RkFoQlosc0JBQXNCO2tCQU5sQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFdBQVcsRUFBRSw2QkFBNkI7b0JBQzFDLFNBQVMsRUFBRSxDQUFDLDBCQUEwQixDQUFDO29CQUN2QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7OEJBSUcsTUFBTTtzQkFGTCxLQUFLO2dCQU1OLEtBQUs7c0JBRkosS0FBSztnQkFNTixJQUFJO3NCQUZILEtBQUs7Z0JBT04sSUFBSTtzQkFISCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGdCQUFnQjtnQkFNN0IsUUFBUTtzQkFGUCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGlCQUFpQjtnQkFJMUIsYUFBYTtzQkFEaEIsV0FBVzt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3R1aURlZmF1bHRQcm9wfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpU2l6ZVN9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktbGVnZW5kLWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9sZWdlbmQtaXRlbS50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9sZWdlbmQtaXRlbS5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFR1aUxlZ2VuZEl0ZW1Db21wb25lbnQge1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBhY3RpdmUgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBjb2xvciA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHRleHQgPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtc2l6ZScpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzaXplOiBUdWlTaXplUyA9ICdtJztcblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fZGlzYWJsZWQnKVxuICAgIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tdHVpLXByaW1hcnknKVxuICAgIGdldCBjb21wdXRlZENvbG9yKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2xvciA9PT0gJ3ZhcigtLXR1aS1wcmltYXJ5KScgPyBudWxsIDogdGhpcy5jb2xvcjtcbiAgICB9XG59XG4iLCI8YnV0dG9uXG4gICAgdHVpQnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgc2l6ZT1cInNcIlxuICAgIGFwcGVhcmFuY2U9XCJ3aGl0ZWJsb2NrXCJcbiAgICBjbGFzcz1cInQtYnV0dG9uXCJcbiAgICBbcHNldWRvSG92ZXJdPVwiYWN0aXZlIHx8IG51bGxcIlxuPlxuICAgIDxkaXYgY2xhc3M9XCJ0LXdyYXBwZXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwidHVpLXByaW1pdGl2ZS1jaGVja2JveFwiPjwvbmctY29udGVudD5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwidC1kb3RcIlxuICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJjb2xvciB8fCAndmFyKC0tdHVpLXByaW1hcnkpJ1wiXG4gICAgICAgID48L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidC10ZXh0XCI+e3sgdGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuPC9idXR0b24+XG4iXX0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnZW5kLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tY2hhcnRzL2NvbXBvbmVudHMvbGVnZW5kLWl0ZW0vbGVnZW5kLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tY2hhcnRzL2NvbXBvbmVudHMvbGVnZW5kLWl0ZW0vbGVnZW5kLWl0ZW0udGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQVNyRixNQUFNLE9BQU8sc0JBQXNCO0lBTm5DO1FBUUksV0FBTSxHQUFHLEtBQUssQ0FBQztRQUdmLFVBQUssR0FBRyxFQUFFLENBQUM7UUFHWCxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBSVYsU0FBSSxHQUFhLEdBQUcsQ0FBQztRQUlyQixhQUFRLEdBQUcsS0FBSyxDQUFDO0tBTXBCO0lBSkcsSUFDSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDbkUsQ0FBQzs7b0hBckJRLHNCQUFzQjt3R0FBdEIsc0JBQXNCLGlTQ1RuQyxvZkFrQkE7NEZEVGEsc0JBQXNCO2tCQU5sQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFdBQVcsRUFBRSw2QkFBNkI7b0JBQzFDLFNBQVMsRUFBRSxDQUFDLDBCQUEwQixDQUFDO29CQUN2QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7OEJBR0csTUFBTTtzQkFETCxLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBS04sSUFBSTtzQkFGSCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGdCQUFnQjtnQkFLN0IsUUFBUTtzQkFGUCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGlCQUFpQjtnQkFJMUIsYUFBYTtzQkFEaEIsV0FBVzt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1R1aVNpemVTfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWxlZ2VuZC1pdGVtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGVnZW5kLWl0ZW0udGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGVnZW5kLWl0ZW0uc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlMZWdlbmRJdGVtQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKVxuICAgIGFjdGl2ZSA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBjb2xvciA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICB0ZXh0ID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXNpemUnKVxuICAgIHNpemU6IFR1aVNpemVTID0gJ20nO1xuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9kaXNhYmxlZCcpXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuLS10dWktcHJpbWFyeScpXG4gICAgZ2V0IGNvbXB1dGVkQ29sb3IoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbG9yID09PSAndmFyKC0tdHVpLXByaW1hcnkpJyA/IG51bGwgOiB0aGlzLmNvbG9yO1xuICAgIH1cbn1cbiIsIjxidXR0b25cbiAgICB0dWlCdXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBzaXplPVwic1wiXG4gICAgYXBwZWFyYW5jZT1cIndoaXRlYmxvY2tcIlxuICAgIGNsYXNzPVwidC1idXR0b25cIlxuICAgIFtwc2V1ZG9Ib3Zlcl09XCJhY3RpdmUgfHwgbnVsbFwiXG4+XG4gICAgPGRpdiBjbGFzcz1cInQtd3JhcHBlclwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ0dWktcHJpbWl0aXZlLWNoZWNrYm94XCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJ0LWRvdFwiXG4gICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImNvbG9yIHx8ICd2YXIoLS10dWktcHJpbWFyeSknXCJcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0LXRleHRcIj57eyB0ZXh0IH19PC9zcGFuPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG48L2J1dHRvbj5cbiJdfQ==
@@ -1,9 +1,7 @@
1
1
  import { __decorate } from "tslib";
2
- import { Location as NgLocation } from '@angular/common';
3
2
  import { ChangeDetectionStrategy, Component, HostListener, Inject, Input, NgZone, Optional, ViewChildren, } from '@angular/core';
4
- import { LOCATION } from '@ng-web-apis/common';
5
- import { tuiDraw, tuiPrepareExternalUrl } from '@taiga-ui/addon-charts/utils';
6
- import { EMPTY_QUERY, tuiDefaultProp, TuiIdService, tuiInRange, tuiIsPresent, tuiPure, tuiZoneOptimized, } from '@taiga-ui/cdk';
3
+ import { tuiDraw } from '@taiga-ui/addon-charts/utils';
4
+ import { EMPTY_QUERY, TuiIdService, tuiIsPresent, tuiPure, tuiZoneOptimized, } from '@taiga-ui/cdk';
7
5
  import { TuiHintHoverDirective, TuiHintOptionsDirective, tuiHintOptionsProvider, } from '@taiga-ui/core';
8
6
  import { Subject } from 'rxjs';
9
7
  import { distinctUntilChanged } from 'rxjs/operators';
@@ -15,10 +13,8 @@ import * as i2 from "@angular/common";
15
13
  import * as i3 from "@taiga-ui/core";
16
14
  import * as i4 from "./line-chart-hint.directive";
17
15
  export class TuiLineChartComponent {
18
- constructor(idService, ngZone, ngLocation, locationRef, hintDirective, hintOptions, options) {
16
+ constructor(idService, ngZone, hintDirective, hintOptions, options) {
19
17
  this.ngZone = ngZone;
20
- this.ngLocation = ngLocation;
21
- this.locationRef = locationRef;
22
18
  this.hintDirective = hintDirective;
23
19
  this.hintOptions = hintOptions;
24
20
  this.options = options;
@@ -50,9 +46,7 @@ export class TuiLineChartComponent {
50
46
  return `tui-line-chart-${this.autoIdString}`;
51
47
  }
52
48
  get fill() {
53
- return this.filled
54
- ? tuiPrepareExternalUrl(this.ngLocation, this.locationRef, this.fillId)
55
- : 'none';
49
+ return this.filled ? `url(#${this.fillId})` : 'none';
56
50
  }
57
51
  get viewBox() {
58
52
  return `${this.x} ${this.y} ${this.width} ${this.height}`;
@@ -139,38 +133,8 @@ export class TuiLineChartComponent {
139
133
  : this.getX(index + 1) - this.getX(index);
140
134
  }
141
135
  }
142
- TuiLineChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiLineChartComponent, deps: [{ token: TuiIdService }, { token: NgZone }, { token: NgLocation }, { token: LOCATION }, { token: TuiLineChartHintDirective, optional: true }, { token: TuiHintOptionsDirective, optional: true }, { token: TUI_LINE_CHART_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
136
+ TuiLineChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiLineChartComponent, deps: [{ token: TuiIdService }, { token: NgZone }, { token: TuiLineChartHintDirective, optional: true }, { token: TuiHintOptionsDirective, optional: true }, { token: TUI_LINE_CHART_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
143
137
  TuiLineChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiLineChartComponent, selector: "tui-line-chart", inputs: { valueSetter: ["value", "valueSetter"], x: "x", y: "y", width: "width", height: "height", smoothingFactor: "smoothingFactor", xStringify: "xStringify", yStringify: "yStringify", filled: "filled", dots: "dots" }, host: { listeners: { "mouseleave": "onMouseLeave()" } }, viewQueries: [{ propertyName: "drivers", predicate: TuiHintHoverDirective, descendants: true }], ngImport: i0, template: "<ng-container *tuiLet=\"hovered$ | async as hovered\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n focusable=\"false\"\n preserveAspectRatio=\"none\"\n width=\"100%\"\n height=\"100%\"\n class=\"t-svg\"\n [attr.viewBox]=\"viewBox\"\n >\n <defs>\n <linearGradient\n x1=\"0\"\n x2=\"0\"\n y1=\"1\"\n y2=\"0\"\n [attr.id]=\"fillId\"\n >\n <stop\n stop-color=\"currentColor\"\n offset=\"0%\"\n stop-opacity=\"0.5\"\n />\n <stop\n stop-color=\"currentColor\"\n offset=\"100%\"\n stop-opacity=\"0\"\n />\n </linearGradient>\n </defs>\n <path\n stroke=\"none\"\n [attr.fill]=\"fill\"\n [attr.d]=\"fillD\"\n />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n vector-effect=\"non-scaling-stroke\"\n stroke-width=\"2\"\n [attr.d]=\"d\"\n />\n </svg>\n <ng-container *ngIf=\"dots\">\n <div\n *ngFor=\"let point of value\"\n class=\"t-dot\"\n [style.left.%]=\"getLeft(point[0])\"\n [style.bottom.%]=\"getBottom(point[1])\"\n ></div>\n </ng-container>\n <ng-container *ngIf=\"hasHints\">\n <ng-container *ngFor=\"let point of value; let index = index\">\n <!-- TODO: Fix hint type -->\n <div\n *ngIf=\"value.length > 1 || dots\"\n class=\"t-column\"\n [class.t-column_hovered]=\"hovered === index\"\n [class.t-column_hint_hovered]=\"drivers.get(index) | async\"\n [tuiHintHost]=\"hintHost\"\n [tuiHint]=\"$any(hintDirective?.hint || hintContent)\"\n [tuiHintContext]=\"getContentContext(point, index)\"\n [tuiHintDescribe]=\"getHintId(index)\"\n [style.left.%]=\"getLeft(getX(index))\"\n [style.width.%]=\"getWidth(index)\"\n (mouseenter)=\"onMouseEnter(index)\"\n >\n <div\n class=\"t-line t-line_vertical\"\n [style.left.%]=\"getOffset(index)\"\n ></div>\n <div\n #hintHost\n class=\"t-host\"\n [style.left.%]=\"getOffset(index)\"\n [style.bottom.%]=\"getBottom(point[1])\"\n [tuiFocusable]=\"isFocusable\"\n [id]=\"getHintId(index)\"\n ></div>\n </div>\n <div\n *ngIf=\"isFocusable\"\n class=\"t-line t-line_horizontal\"\n [style.bottom.%]=\"getBottom(point[1])\"\n ></div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"getHovered(hovered) as point\">\n <div\n *ngIf=\"xStringify\"\n class=\"t-hint t-hint_x\"\n [style.left.%]=\"getLeft(point[0])\"\n >\n {{ xStringify(point[0]) }}\n </div>\n <div\n *ngIf=\"yStringify\"\n class=\"t-hint t-hint_y\"\n [style.bottom.%]=\"getBottom(point[1])\"\n >\n {{ yStringify(point[1]) }}\n </div>\n </ng-container>\n</ng-container>\n", styles: [":host{display:flex;width:100%;height:100%;pointer-events:none}.t-svg{transform:scaleY(-1)}.t-column{position:absolute;top:0;height:100%;pointer-events:auto}.t-dot{position:absolute;width:.375rem;height:.375rem;border-radius:100%;background:currentColor;margin:-.1875rem;box-shadow:0 0 0 2px #fff}.t-host{position:absolute;left:50%;width:.5rem;height:.5rem;border-radius:100%;opacity:0;background:#fff;margin:-.25rem;box-shadow:0 0 0 2px currentColor,0 .0625rem .1875rem .125rem #0000001a;outline:none;pointer-events:none}.t-host:focus,.t-column_hovered .t-host,.t-column:hover .t-host,.t-column_hint_hovered .t-host{opacity:1}.t-line{position:absolute;opacity:0;background:var(--tui-base-03)}.t-line_vertical{top:0;bottom:0;left:50%;width:1px}.t-line_horizontal{z-index:-1;width:100%;height:1px}:host[style^=\"z-index: 0\"] .t-column_hovered .t-line,:host:not([style]) .t-column:hover .t-line,:host:not([style]) .t-column_hint_hovered .t-line,:host[style^=\"z-index: 0\"] .t-column_hovered+.t-line,:host:not([style]) .t-column:hover+.t-line,:host:not([style]) .t-column_hint_hovered+.t-line{opacity:1}.t-hint{box-shadow:0 .25rem 1.5rem #0000001f;position:absolute;font:var(--tui-font-text-xs);height:1.25rem;line-height:1.25rem;margin-bottom:-.625rem;padding:0 .375rem;white-space:nowrap;color:var(--tui-base-09);background:var(--tui-base-01);transform:translate(-50%)}.t-hint_x{bottom:0}.t-hint_y{left:0}\n"], directives: [{ type: i1.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.TuiHintDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"] }, { type: i3.TuiHintDriverDirective, selector: "[tuiHint]" }, { type: i3.TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHintShowDelay", "tuiHintHideDelay"], exportAs: ["tuiHintHover"] }, { type: i3.TuiHintPositionDirective, selector: "[tuiHint]:not([tuiHintCustomPosition])", inputs: ["tuiHintDirection"] }, { type: i3.TuiHintHostDirective, selector: "[tuiHint][tuiHintHost]", inputs: ["tuiHintHost"] }, { type: i3.TuiHintDescribeDirective, selector: "[tuiHintDescribe]", inputs: ["tuiHintDescribe"] }, { type: i1.TuiFocusableDirective, selector: "[tuiFocusable]", inputs: ["tuiFocusable"] }], pipes: { "async": i2.AsyncPipe }, viewProviders: [tuiHintOptionsProvider({ direction: 'top', hideDelay: 0 })], changeDetection: i0.ChangeDetectionStrategy.OnPush });
144
- __decorate([
145
- tuiDefaultProp()
146
- ], TuiLineChartComponent.prototype, "valueSetter", null);
147
- __decorate([
148
- tuiDefaultProp()
149
- ], TuiLineChartComponent.prototype, "x", void 0);
150
- __decorate([
151
- tuiDefaultProp()
152
- ], TuiLineChartComponent.prototype, "y", void 0);
153
- __decorate([
154
- tuiDefaultProp()
155
- ], TuiLineChartComponent.prototype, "width", void 0);
156
- __decorate([
157
- tuiDefaultProp()
158
- ], TuiLineChartComponent.prototype, "height", void 0);
159
- __decorate([
160
- tuiDefaultProp((smoothingFactor) => tuiInRange(smoothingFactor, 0, 100), 'smoothingFactor must be between 0 and 100')
161
- ], TuiLineChartComponent.prototype, "smoothingFactor", void 0);
162
- __decorate([
163
- tuiDefaultProp()
164
- ], TuiLineChartComponent.prototype, "xStringify", void 0);
165
- __decorate([
166
- tuiDefaultProp()
167
- ], TuiLineChartComponent.prototype, "yStringify", void 0);
168
- __decorate([
169
- tuiDefaultProp()
170
- ], TuiLineChartComponent.prototype, "filled", void 0);
171
- __decorate([
172
- tuiDefaultProp()
173
- ], TuiLineChartComponent.prototype, "dots", void 0);
174
138
  __decorate([
175
139
  tuiPure
176
140
  ], TuiLineChartComponent.prototype, "hovered$", null);
@@ -192,12 +156,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
192
156
  }] }, { type: i0.NgZone, decorators: [{
193
157
  type: Inject,
194
158
  args: [NgZone]
195
- }] }, { type: i2.Location, decorators: [{
196
- type: Inject,
197
- args: [NgLocation]
198
- }] }, { type: Location, decorators: [{
199
- type: Inject,
200
- args: [LOCATION]
201
159
  }] }, { type: i4.TuiLineChartHintDirective, decorators: [{
202
160
  type: Optional
203
161
  }, {
@@ -239,4 +197,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
239
197
  type: HostListener,
240
198
  args: ['mouseleave']
241
199
  }], getD: [] } });
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jaGFydHMvY29tcG9uZW50cy9saW5lLWNoYXJ0L2xpbmUtY2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tY2hhcnRzL2NvbXBvbmVudHMvbGluZS1jaGFydC9saW5lLWNoYXJ0LnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxRQUFRLElBQUksVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFFBQVEsRUFFUixZQUFZLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRTdDLE9BQU8sRUFBQyxPQUFPLEVBQUUscUJBQXFCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RSxPQUFPLEVBQ0gsV0FBVyxFQUNYLGNBQWMsRUFDZCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixPQUFPLEVBRVAsZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixHQUV6QixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBYSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFDLHNCQUFzQixFQUFzQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7QUFTakYsTUFB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QUFNOzJCQUFDLFVBQVU7OEJBQzhCLFFBQVE7MEJBQXZELE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyx5QkFBeUI7OzBCQUVoQyxRQUFROzswQkFDUixNQUFNOzJCQUFDLHVCQUF1Qjs7MEJBRTlCLE1BQU07MkJBQUMsc0JBQXNCOzRDQTVEekIsT0FBTztzQkFEZixZQUFZO3VCQUFDLHFCQUFxQjtnQkFLL0IsV0FBVztzQkFGZCxLQUFLO3VCQUFDLE9BQU87Z0JBUWQsQ0FBQztzQkFGQSxLQUFLO2dCQU1OLENBQUM7c0JBRkEsS0FBSztnQkFNTixLQUFLO3NCQUZKLEtBQUs7Z0JBTU4sTUFBTTtzQkFGTCxLQUFLO2dCQVNOLGVBQWU7c0JBTGQsS0FBSztnQkFTTixVQUFVO3NCQUZULEtBQUs7Z0JBTU4sVUFBVTtzQkFGVCxLQUFLO2dCQU1OLE1BQU07c0JBRkwsS0FBSztnQkFNTixJQUFJO3NCQUZILEtBQUs7Z0JBdUJGLFFBQVEsTUE4Q1osWUFBWTtzQkFEWCxZQUFZO3VCQUFDLFlBQVk7Z0JBeUVsQixJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMb2NhdGlvbiBhcyBOZ0xvY2F0aW9ufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT3B0aW9uYWwsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xPQ0FUSU9OfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7VHVpTGluZUNoYXJ0SGludENvbnRleHR9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1jaGFydHMvaW50ZXJmYWNlcyc7XG5pbXBvcnQge3R1aURyYXcsIHR1aVByZXBhcmVFeHRlcm5hbFVybH0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWNoYXJ0cy91dGlscyc7XG5pbXBvcnQge1xuICAgIEVNUFRZX1FVRVJZLFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUlkU2VydmljZSxcbiAgICB0dWlJblJhbmdlLFxuICAgIHR1aUlzUHJlc2VudCxcbiAgICB0dWlQdXJlLFxuICAgIFR1aVN0cmluZ0hhbmRsZXIsXG4gICAgdHVpWm9uZU9wdGltaXplZCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFR1aUhpbnRIb3ZlckRpcmVjdGl2ZSxcbiAgICBUdWlIaW50T3B0aW9uc0RpcmVjdGl2ZSxcbiAgICB0dWlIaW50T3B0aW9uc1Byb3ZpZGVyLFxuICAgIFR1aVBvaW50LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1R1aUxpbmVDaGFydEhpbnREaXJlY3RpdmV9IGZyb20gJy4vbGluZS1jaGFydC1oaW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQge1RVSV9MSU5FX0NIQVJUX09QVElPTlMsIFR1aUxpbmVDaGFydE9wdGlvbnN9IGZyb20gJy4vbGluZS1jaGFydC1vcHRpb25zJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktbGluZS1jaGFydCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xpbmUtY2hhcnQudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGluZS1jaGFydC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgdmlld1Byb3ZpZGVyczogW3R1aUhpbnRPcHRpb25zUHJvdmlkZXIoe2RpcmVjdGlvbjogJ3RvcCcsIGhpZGVEZWxheTogMH0pXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpTGluZUNoYXJ0Q29tcG9uZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ob3ZlcmVkJCA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0b0lkU3RyaW5nOiBzdHJpbmc7XG5cbiAgICBAVmlld0NoaWxkcmVuKFR1aUhpbnRIb3ZlckRpcmVjdGl2ZSlcbiAgICByZWFkb25seSBkcml2ZXJzOiBRdWVyeUxpc3Q8T2JzZXJ2YWJsZTxib29sZWFuPj4gPSBFTVBUWV9RVUVSWTtcblxuICAgIEBJbnB1dCgndmFsdWUnKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2V0IHZhbHVlU2V0dGVyKHZhbHVlOiByZWFkb25seSBUdWlQb2ludFtdKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZS5maWx0ZXIoaXRlbSA9PiAhaXRlbS5zb21lKE51bWJlci5pc05hTikpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICB4ID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICB5ID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICB3aWR0aCA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaGVpZ2h0ID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKFxuICAgICAgICAoc21vb3RoaW5nRmFjdG9yOiBudW1iZXIpID0+IHR1aUluUmFuZ2Uoc21vb3RoaW5nRmFjdG9yLCAwLCAxMDApLFxuICAgICAgICAnc21vb3RoaW5nRmFjdG9yIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAxMDAnLFxuICAgIClcbiAgICBzbW9vdGhpbmdGYWN0b3IgPSB0aGlzLm9wdGlvbnMuc21vb3RoaW5nRmFjdG9yO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHhTdHJpbmdpZnk6IFR1aVN0cmluZ0hhbmRsZXI8bnVtYmVyPiB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHlTdHJpbmdpZnk6IFR1aVN0cmluZ0hhbmRsZXI8bnVtYmVyPiB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGZpbGxlZCA9IHRoaXMub3B0aW9ucy5maWxsZWQ7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZG90cyA9IHRoaXMub3B0aW9ucy5kb3RzO1xuXG4gICAgdmFsdWU6IHJlYWRvbmx5IFR1aVBvaW50W10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFR1aUlkU2VydmljZSkgaWRTZXJ2aWNlOiBUdWlJZFNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoTmdab25lKSBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KE5nTG9jYXRpb24pIHByaXZhdGUgcmVhZG9ubHkgbmdMb2NhdGlvbjogTmdMb2NhdGlvbixcbiAgICAgICAgQEluamVjdChMT0NBVElPTikgcHJpdmF0ZSByZWFkb25seSBsb2NhdGlvblJlZjogTG9jYXRpb24sXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVHVpTGluZUNoYXJ0SGludERpcmVjdGl2ZSlcbiAgICAgICAgcmVhZG9ubHkgaGludERpcmVjdGl2ZTogVHVpTGluZUNoYXJ0SGludERpcmVjdGl2ZSB8IG51bGwsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVHVpSGludE9wdGlvbnNEaXJlY3RpdmUpXG4gICAgICAgIHJlYWRvbmx5IGhpbnRPcHRpb25zOiBUdWlIaW50T3B0aW9uc0RpcmVjdGl2ZSB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoVFVJX0xJTkVfQ0hBUlRfT1BUSU9OUykgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBUdWlMaW5lQ2hhcnRPcHRpb25zLFxuICAgICkge1xuICAgICAgICB0aGlzLmF1dG9JZFN0cmluZyA9IGlkU2VydmljZS5nZW5lcmF0ZSgpO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgZ2V0IGhvdmVyZWQkKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ob3ZlcmVkJC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHR1aVpvbmVPcHRpbWl6ZWQodGhpcy5uZ1pvbmUpKTtcbiAgICB9XG5cbiAgICBnZXQgaGludENvbnRlbnQoKTogUG9seW1vcnBoZXVzQ29udGVudDxUdWlMaW5lQ2hhcnRIaW50Q29udGV4dDxUdWlQb2ludD4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGludE9wdGlvbnM/LmNvbnRlbnQgfHwgJyc7XG4gICAgfVxuXG4gICAgZ2V0IGZpbGxJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYHR1aS1saW5lLWNoYXJ0LSR7dGhpcy5hdXRvSWRTdHJpbmd9YDtcbiAgICB9XG5cbiAgICBnZXQgZmlsbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5maWxsZWRcbiAgICAgICAgICAgID8gdHVpUHJlcGFyZUV4dGVybmFsVXJsKHRoaXMubmdMb2NhdGlvbiwgdGhpcy5sb2NhdGlvblJlZiwgdGhpcy5maWxsSWQpXG4gICAgICAgICAgICA6ICdub25lJztcbiAgICB9XG5cbiAgICBnZXQgdmlld0JveCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy54fSAke3RoaXMueX0gJHt0aGlzLndpZHRofSAke3RoaXMuaGVpZ2h0fWA7XG4gICAgfVxuXG4gICAgZ2V0IGQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RCh0aGlzLnZhbHVlLCB0aGlzLnNtb290aGluZ0ZhY3Rvcik7XG4gICAgfVxuXG4gICAgZ2V0IGZpbGxEKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlLmxlbmd0aFxuICAgICAgICAgICAgPyBgJHt0aGlzLmR9ViAke3RoaXMueX0gSCAke3RoaXMudmFsdWVbMF1bMF19IFYgJHt0aGlzLnZhbHVlWzBdWzFdfWBcbiAgICAgICAgICAgIDogdGhpcy5kO1xuICAgIH1cblxuICAgIGdldCBpc0ZvY3VzYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmhpbnREaXJlY3RpdmUgJiYgdGhpcy5oYXNIaW50cztcbiAgICB9XG5cbiAgICBnZXQgaGFzSGludHMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhIXRoaXMueFN0cmluZ2lmeSB8fFxuICAgICAgICAgICAgISF0aGlzLnlTdHJpbmdpZnkgfHxcbiAgICAgICAgICAgICEhdGhpcy5oaW50RGlyZWN0aXZlPy5oaW50IHx8XG4gICAgICAgICAgICAhIXRoaXMuaGludENvbnRlbnRcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcbiAgICBvbk1vdXNlTGVhdmUoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5oaW50RGlyZWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLm9uSG92ZXJlZChOYU4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0WChpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTaW5nbGVQb2ludCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVbMF1bMF0gLyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluZGV4XG4gICAgICAgICAgICA/ICh0aGlzLnZhbHVlW2luZGV4IC0gMV1bMF0gKyB0aGlzLnZhbHVlW2luZGV4XVswXSkgLyAyXG4gICAgICAgICAgICA6IDIgKiB0aGlzLnZhbHVlWzBdWzBdIC0gdGhpcy5nZXRYKDEpO1xuICAgIH1cblxuICAgIGdldFdpZHRoKGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKDEwMCAqIHRoaXMuY29tcHV0ZVdpZHRoKGluZGV4KSkgLyB0aGlzLndpZHRoO1xuICAgIH1cblxuICAgIGdldEhpbnRJZChpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuYXV0b0lkU3RyaW5nfV8ke2luZGV4fWA7XG4gICAgfVxuXG4gICAgZ2V0Q29udGVudENvbnRleHQoXG4gICAgICAgICRpbXBsaWNpdDogVHVpUG9pbnQsXG4gICAgICAgIGluZGV4OiBudW1iZXIsXG4gICAgKTogVHVpTGluZUNoYXJ0SGludENvbnRleHQ8VHVpUG9pbnQgfCByZWFkb25seSBUdWlQb2ludFtdPiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmhpbnREaXJlY3RpdmU/LmdldENvbnRleHQodGhpcy52YWx1ZS5pbmRleE9mKCRpbXBsaWNpdCksIHRoaXMpIHx8IHtcbiAgICAgICAgICAgICAgICAkaW1wbGljaXQsXG4gICAgICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0SG92ZXJlZChob3ZlcmVkOiBudW1iZXIgfCBudWxsKTogVHVpUG9pbnQgfCBudWxsIHtcbiAgICAgICAgLy8gVGhpcyBjaGVja3MgZm9yIE5hTiBhbmQgbnVsbCB0b28gc2luY2UgYXN5bmMgcGlwZSByZXR1cm5zIG51bGwgYmVmb3JlIGZpcnN0IGl0ZW1cbiAgICAgICAgcmV0dXJuIHR1aUlzUHJlc2VudChob3ZlcmVkKSAmJiBOdW1iZXIuaXNJbnRlZ2VyKGhvdmVyZWQpXG4gICAgICAgICAgICA/IHRoaXMudmFsdWVbaG92ZXJlZF1cbiAgICAgICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXRCb3R0b20oeTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuICgxMDAgKiAoeSAtIHRoaXMueSkpIC8gdGhpcy5oZWlnaHQ7XG4gICAgfVxuXG4gICAgZ2V0TGVmdCh4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKDEwMCAqICh4IC0gdGhpcy54KSkgLyB0aGlzLndpZHRoO1xuICAgIH1cblxuICAgIGdldE9mZnNldCh4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKDEwMCAqICh0aGlzLnZhbHVlW3hdWzBdIC0gdGhpcy5nZXRYKHgpKSkgLyB0aGlzLmNvbXB1dGVXaWR0aCh4KTtcbiAgICB9XG5cbiAgICBvbk1vdXNlRW50ZXIoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5oaW50RGlyZWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLmhpbnREaXJlY3RpdmUucmFpc2UoaW5kZXgsIHRoaXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vbkhvdmVyZWQoaW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faG92ZXJlZCQubmV4dChpbmRleCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNTaW5nbGVQb2ludCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUubGVuZ3RoID09PSAxO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBnZXREKHZhbHVlOiByZWFkb25seSBUdWlQb2ludFtdLCBzbW9vdGhpbmdGYWN0b3I6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB2YWx1ZS5yZWR1Y2UoXG4gICAgICAgICAgICAoZCwgcG9pbnQsIGluZGV4KSA9PlxuICAgICAgICAgICAgICAgIGluZGV4ID8gYCR7ZH0gJHt0dWlEcmF3KHZhbHVlLCBpbmRleCwgc21vb3RoaW5nRmFjdG9yKX1gIDogYE0gJHtwb2ludH1gLFxuICAgICAgICAgICAgJycsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb21wdXRlV2lkdGgoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBpbmRleCA9PT0gdGhpcy52YWx1ZS5sZW5ndGggLSAxXG4gICAgICAgICAgICA/IDIgKiAodGhpcy52YWx1ZVtpbmRleF1bMF0gLSB0aGlzLmdldFgoaW5kZXgpKVxuICAgICAgICAgICAgOiB0aGlzLmdldFgoaW5kZXggKyAxKSAtIHRoaXMuZ2V0WChpbmRleCk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqdHVpTGV0PVwiaG92ZXJlZCQgfCBhc3luYyBhcyBob3ZlcmVkXCI+XG4gICAgPHN2Z1xuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwibm9uZVwiXG4gICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgIGhlaWdodD1cIjEwMCVcIlxuICAgICAgICBjbGFzcz1cInQtc3ZnXCJcbiAgICAgICAgW2F0dHIudmlld0JveF09XCJ2aWV3Qm94XCJcbiAgICA+XG4gICAgICAgIDxkZWZzPlxuICAgICAgICAgICAgPGxpbmVhckdyYWRpZW50XG4gICAgICAgICAgICAgICAgeDE9XCIwXCJcbiAgICAgICAgICAgICAgICB4Mj1cIjBcIlxuICAgICAgICAgICAgICAgIHkxPVwiMVwiXG4gICAgICAgICAgICAgICAgeTI9XCIwXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5pZF09XCJmaWxsSWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzdG9wXG4gICAgICAgICAgICAgICAgICAgIHN0b3AtY29sb3I9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQ9XCIwJVwiXG4gICAgICAgICAgICAgICAgICAgIHN0b3Atb3BhY2l0eT1cIjAuNVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8c3RvcFxuICAgICAgICAgICAgICAgICAgICBzdG9wLWNvbG9yPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0PVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgIHN0b3Atb3BhY2l0eT1cIjBcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2xpbmVhckdyYWRpZW50PlxuICAgICAgICA8L2RlZnM+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgICBzdHJva2U9XCJub25lXCJcbiAgICAgICAgICAgIFthdHRyLmZpbGxdPVwiZmlsbFwiXG4gICAgICAgICAgICBbYXR0ci5kXT1cImZpbGxEXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICB2ZWN0b3ItZWZmZWN0PVwibm9uLXNjYWxpbmctc3Ryb2tlXCJcbiAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxuICAgICAgICAgICAgW2F0dHIuZF09XCJkXCJcbiAgICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZG90c1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgcG9pbnQgb2YgdmFsdWVcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWRvdFwiXG4gICAgICAgICAgICBbc3R5bGUubGVmdC4lXT1cImdldExlZnQocG9pbnRbMF0pXCJcbiAgICAgICAgICAgIFtzdHlsZS5ib3R0b20uJV09XCJnZXRCb3R0b20ocG9pbnRbMV0pXCJcbiAgICAgICAgPjwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNIaW50c1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwb2ludCBvZiB2YWx1ZTsgbGV0IGluZGV4ID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDwhLS0gVE9ETzogRml4IGhpbnQgdHlwZSAtLT5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cInZhbHVlLmxlbmd0aCA+IDEgfHwgZG90c1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWNvbHVtblwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnQtY29sdW1uX2hvdmVyZWRdPVwiaG92ZXJlZCA9PT0gaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy50LWNvbHVtbl9oaW50X2hvdmVyZWRdPVwiZHJpdmVycy5nZXQoaW5kZXgpIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgIFt0dWlIaW50SG9zdF09XCJoaW50SG9zdFwiXG4gICAgICAgICAgICAgICAgW3R1aUhpbnRdPVwiJGFueShoaW50RGlyZWN0aXZlPy5oaW50IHx8IGhpbnRDb250ZW50KVwiXG4gICAgICAgICAgICAgICAgW3R1aUhpbnRDb250ZXh0XT1cImdldENvbnRlbnRDb250ZXh0KHBvaW50LCBpbmRleClcIlxuICAgICAgICAgICAgICAgIFt0dWlIaW50RGVzY3JpYmVdPVwiZ2V0SGludElkKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQuJV09XCJnZXRMZWZ0KGdldFgoaW5kZXgpKVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLiVdPVwiZ2V0V2lkdGgoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJvbk1vdXNlRW50ZXIoaW5kZXgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1saW5lIHQtbGluZV92ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LiVdPVwiZ2V0T2Zmc2V0KGluZGV4KVwiXG4gICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgI2hpbnRIb3N0XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1ob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQuJV09XCJnZXRPZmZzZXQoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmJvdHRvbS4lXT1cImdldEJvdHRvbShwb2ludFsxXSlcIlxuICAgICAgICAgICAgICAgICAgICBbdHVpRm9jdXNhYmxlXT1cImlzRm9jdXNhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cImdldEhpbnRJZChpbmRleClcIlxuICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNGb2N1c2FibGVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidC1saW5lIHQtbGluZV9ob3Jpem9udGFsXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuYm90dG9tLiVdPVwiZ2V0Qm90dG9tKHBvaW50WzFdKVwiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJnZXRIb3ZlcmVkKGhvdmVyZWQpIGFzIHBvaW50XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwieFN0cmluZ2lmeVwiXG4gICAgICAgICAgICBjbGFzcz1cInQtaGludCB0LWhpbnRfeFwiXG4gICAgICAgICAgICBbc3R5bGUubGVmdC4lXT1cImdldExlZnQocG9pbnRbMF0pXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgeFN0cmluZ2lmeShwb2ludFswXSkgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwieVN0cmluZ2lmeVwiXG4gICAgICAgICAgICBjbGFzcz1cInQtaGludCB0LWhpbnRfeVwiXG4gICAgICAgICAgICBbc3R5bGUuYm90dG9tLiVdPVwiZ2V0Qm90dG9tKHBvaW50WzFdKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IHlTdHJpbmdpZnkocG9pbnRbMV0pIH19XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jaGFydHMvY29tcG9uZW50cy9saW5lLWNoYXJ0L2xpbmUtY2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tY2hhcnRzL2NvbXBvbmVudHMvbGluZS1jaGFydC9saW5lLWNoYXJ0LnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixRQUFRLEVBRVIsWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRCxPQUFPLEVBQ0gsV0FBVyxFQUNYLFlBQVksRUFDWixZQUFZLEVBQ1osT0FBTyxFQUVQLGdCQUFnQixHQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gscUJBQXFCLEVBQ3JCLHVCQUF1QixFQUN2QixzQkFBc0IsR0FFekIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQWEsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXBELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxzQkFBc0IsRUFBc0IsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0FBU2pGLE1BQU0sT0FBTyxxQkFBcUI7SUEwQzlCLFlBQzBCLFNBQXVCLEVBQ1osTUFBYyxFQUd0QyxhQUErQyxFQUcvQyxXQUEyQyxFQUNILE9BQTRCO1FBUDVDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFHdEMsa0JBQWEsR0FBYixhQUFhLENB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UzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixXQUFXLEVBQUUsNEJBQTRCO29CQUN6QyxTQUFTLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztvQkFDdEMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGFBQWEsRUFBRSxDQUFDLHNCQUFzQixDQUFDLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQztpQkFDNUU7OzBCQTRDUSxNQUFNOzJCQUFDLFlBQVk7OzBCQUNuQixNQUFNOzJCQUFDLE1BQU07OzBCQUNiLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMseUJBQXlCOzswQkFFaEMsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyx1QkFBdUI7OzBCQUU5QixNQUFNOzJCQUFDLHNCQUFzQjs0Q0E3Q3pCLE9BQU87c0JBRGYsWUFBWTt1QkFBQyxxQkFBcUI7Z0JBSS9CLFdBQVc7c0JBRGQsS0FBSzt1QkFBQyxPQUFPO2dCQU1kLENBQUM7c0JBREEsS0FBSztnQkFJTixDQUFDO3NCQURBLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLE1BQU07c0JBREwsS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixNQUFNO3NCQURMLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQW9CRixRQUFRLE1BNENaLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxZQUFZO2dCQXlFbEIsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9wdGlvbmFsLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUdWlMaW5lQ2hhcnRIaW50Q29udGV4dH0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWNoYXJ0cy9pbnRlcmZhY2VzJztcbmltcG9ydCB7dHVpRHJhd30gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWNoYXJ0cy91dGlscyc7XG5pbXBvcnQge1xuICAgIEVNUFRZX1FVRVJZLFxuICAgIFR1aUlkU2VydmljZSxcbiAgICB0dWlJc1ByZXNlbnQsXG4gICAgdHVpUHVyZSxcbiAgICBUdWlTdHJpbmdIYW5kbGVyLFxuICAgIHR1aVpvbmVPcHRpbWl6ZWQsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBUdWlIaW50SG92ZXJEaXJlY3RpdmUsXG4gICAgVHVpSGludE9wdGlvbnNEaXJlY3RpdmUsXG4gICAgdHVpSGludE9wdGlvbnNQcm92aWRlcixcbiAgICBUdWlQb2ludCxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGlzdGluY3RVbnRpbENoYW5nZWR9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtUdWlMaW5lQ2hhcnRIaW50RGlyZWN0aXZlfSBmcm9tICcuL2xpbmUtY2hhcnQtaGludC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtUVUlfTElORV9DSEFSVF9PUFRJT05TLCBUdWlMaW5lQ2hhcnRPcHRpb25zfSBmcm9tICcuL2xpbmUtY2hhcnQtb3B0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWxpbmUtY2hhcnQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9saW5lLWNoYXJ0LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2xpbmUtY2hhcnQuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHZpZXdQcm92aWRlcnM6IFt0dWlIaW50T3B0aW9uc1Byb3ZpZGVyKHtkaXJlY3Rpb246ICd0b3AnLCBoaWRlRGVsYXk6IDB9KV0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUxpbmVDaGFydENvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfaG92ZXJlZCQgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGF1dG9JZFN0cmluZzogc3RyaW5nO1xuXG4gICAgQFZpZXdDaGlsZHJlbihUdWlIaW50SG92ZXJEaXJlY3RpdmUpXG4gICAgcmVhZG9ubHkgZHJpdmVyczogUXVlcnlMaXN0PE9ic2VydmFibGU8Ym9vbGVhbj4+ID0gRU1QVFlfUVVFUlk7XG5cbiAgICBASW5wdXQoJ3ZhbHVlJylcbiAgICBzZXQgdmFsdWVTZXR0ZXIodmFsdWU6IHJlYWRvbmx5IFR1aVBvaW50W10pIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlLmZpbHRlcihpdGVtID0+ICFpdGVtLnNvbWUoTnVtYmVyLmlzTmFOKSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICB4ID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgeSA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIHdpZHRoID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgaGVpZ2h0ID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgc21vb3RoaW5nRmFjdG9yID0gdGhpcy5vcHRpb25zLnNtb290aGluZ0ZhY3RvcjtcblxuICAgIEBJbnB1dCgpXG4gICAgeFN0cmluZ2lmeTogVHVpU3RyaW5nSGFuZGxlcjxudW1iZXI+IHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIHlTdHJpbmdpZnk6IFR1aVN0cmluZ0hhbmRsZXI8bnVtYmVyPiB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBmaWxsZWQgPSB0aGlzLm9wdGlvbnMuZmlsbGVkO1xuXG4gICAgQElucHV0KClcbiAgICBkb3RzID0gdGhpcy5vcHRpb25zLmRvdHM7XG5cbiAgICB2YWx1ZTogcmVhZG9ubHkgVHVpUG9pbnRbXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVHVpSWRTZXJ2aWNlKSBpZFNlcnZpY2U6IFR1aUlkU2VydmljZSxcbiAgICAgICAgQEluamVjdChOZ1pvbmUpIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVHVpTGluZUNoYXJ0SGludERpcmVjdGl2ZSlcbiAgICAgICAgcmVhZG9ubHkgaGludERpcmVjdGl2ZTogVHVpTGluZUNoYXJ0SGludERpcmVjdGl2ZSB8IG51bGwsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVHVpSGludE9wdGlvbnNEaXJlY3RpdmUpXG4gICAgICAgIHJlYWRvbmx5IGhpbnRPcHRpb25zOiBUdWlIaW50T3B0aW9uc0RpcmVjdGl2ZSB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoVFVJX0xJTkVfQ0hBUlRfT1BUSU9OUykgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBUdWlMaW5lQ2hhcnRPcHRpb25zLFxuICAgICkge1xuICAgICAgICB0aGlzLmF1dG9JZFN0cmluZyA9IGlkU2VydmljZS5nZW5lcmF0ZSgpO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgZ2V0IGhvdmVyZWQkKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ob3ZlcmVkJC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHR1aVpvbmVPcHRpbWl6ZWQodGhpcy5uZ1pvbmUpKTtcbiAgICB9XG5cbiAgICBnZXQgaGludENvbnRlbnQoKTogUG9seW1vcnBoZXVzQ29udGVudDxUdWlMaW5lQ2hhcnRIaW50Q29udGV4dDxUdWlQb2ludD4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGludE9wdGlvbnM/LmNvbnRlbnQgfHwgJyc7XG4gICAgfVxuXG4gICAgZ2V0IGZpbGxJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYHR1aS1saW5lLWNoYXJ0LSR7dGhpcy5hdXRvSWRTdHJpbmd9YDtcbiAgICB9XG5cbiAgICBnZXQgZmlsbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5maWxsZWQgPyBgdXJsKCMke3RoaXMuZmlsbElkfSlgIDogJ25vbmUnO1xuICAgIH1cblxuICAgIGdldCB2aWV3Qm94KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLnh9ICR7dGhpcy55fSAke3RoaXMud2lkdGh9ICR7dGhpcy5oZWlnaHR9YDtcbiAgICB9XG5cbiAgICBnZXQgZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXREKHRoaXMudmFsdWUsIHRoaXMuc21vb3RoaW5nRmFjdG9yKTtcbiAgICB9XG5cbiAgICBnZXQgZmlsbEQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUubGVuZ3RoXG4gICAgICAgICAgICA/IGAke3RoaXMuZH1WICR7dGhpcy55fSBIICR7dGhpcy52YWx1ZVswXVswXX0gViAke3RoaXMudmFsdWVbMF1bMV19YFxuICAgICAgICAgICAgOiB0aGlzLmQ7XG4gICAgfVxuXG4gICAgZ2V0IGlzRm9jdXNhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaGludERpcmVjdGl2ZSAmJiB0aGlzLmhhc0hpbnRzO1xuICAgIH1cblxuICAgIGdldCBoYXNIaW50cygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICEhdGhpcy54U3RyaW5naWZ5IHx8XG4gICAgICAgICAgICAhIXRoaXMueVN0cmluZ2lmeSB8fFxuICAgICAgICAgICAgISF0aGlzLmhpbnREaXJlY3RpdmU/LmhpbnQgfHxcbiAgICAgICAgICAgICEhdGhpcy5oaW50Q29udGVudFxuICAgICAgICApO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxuICAgIG9uTW91c2VMZWF2ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmhpbnREaXJlY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMub25Ib3ZlcmVkKE5hTik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRYKGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5pc1NpbmdsZVBvaW50KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZVswXVswXSAvIDI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaW5kZXhcbiAgICAgICAgICAgID8gKHRoaXMudmFsdWVbaW5kZXggLSAxXVswXSArIHRoaXMudmFsdWVbaW5kZXhdWzBdKSAvIDJcbiAgICAgICAgICAgIDogMiAqIHRoaXMudmFsdWVbMF1bMF0gLSB0aGlzLmdldFgoMSk7XG4gICAgfVxuXG4gICAgZ2V0V2lkdGgoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoMTAwICogdGhpcy5jb21wdXRlV2lkdGgoaW5kZXgpKSAvIHRoaXMud2lkdGg7XG4gICAgfVxuXG4gICAgZ2V0SGludElkKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5hdXRvSWRTdHJpbmd9XyR7aW5kZXh9YDtcbiAgICB9XG5cbiAgICBnZXRDb250ZW50Q29udGV4dChcbiAgICAgICAgJGltcGxpY2l0OiBUdWlQb2ludCxcbiAgICAgICAgaW5kZXg6IG51bWJlcixcbiAgICApOiBUdWlMaW5lQ2hhcnRIaW50Q29udGV4dDxUdWlQb2ludCB8IHJlYWRvbmx5IFR1aVBvaW50W10+IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuaGludERpcmVjdGl2ZT8uZ2V0Q29udGV4dCh0aGlzLnZhbHVlLmluZGV4T2YoJGltcGxpY2l0KSwgdGhpcykgfHwge1xuICAgICAgICAgICAgICAgICRpbXBsaWNpdCxcbiAgICAgICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRIb3ZlcmVkKGhvdmVyZWQ6IG51bWJlciB8IG51bGwpOiBUdWlQb2ludCB8IG51bGwge1xuICAgICAgICAvLyBUaGlzIGNoZWNrcyBmb3IgTmFOIGFuZCBudWxsIHRvbyBzaW5jZSBhc3luYyBwaXBlIHJldHVybnMgbnVsbCBiZWZvcmUgZmlyc3QgaXRlbVxuICAgICAgICByZXR1cm4gdHVpSXNQcmVzZW50KGhvdmVyZWQpICYmIE51bWJlci5pc0ludGVnZXIoaG92ZXJlZClcbiAgICAgICAgICAgID8gdGhpcy52YWx1ZVtob3ZlcmVkXVxuICAgICAgICAgICAgOiBudWxsO1xuICAgIH1cblxuICAgIGdldEJvdHRvbSh5OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKDEwMCAqICh5IC0gdGhpcy55KSkgLyB0aGlzLmhlaWdodDtcbiAgICB9XG5cbiAgICBnZXRMZWZ0KHg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoMTAwICogKHggLSB0aGlzLngpKSAvIHRoaXMud2lkdGg7XG4gICAgfVxuXG4gICAgZ2V0T2Zmc2V0KHg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoMTAwICogKHRoaXMudmFsdWVbeF1bMF0gLSB0aGlzLmdldFgoeCkpKSAvIHRoaXMuY29tcHV0ZVdpZHRoKHgpO1xuICAgIH1cblxuICAgIG9uTW91c2VFbnRlcihpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmhpbnREaXJlY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuaGludERpcmVjdGl2ZS5yYWlzZShpbmRleCwgdGhpcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9uSG92ZXJlZChpbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkhvdmVyZWQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9ob3ZlcmVkJC5uZXh0KGluZGV4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc1NpbmdsZVBvaW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZS5sZW5ndGggPT09IDE7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGdldEQodmFsdWU6IHJlYWRvbmx5IFR1aVBvaW50W10sIHNtb290aGluZ0ZhY3RvcjogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnJlZHVjZShcbiAgICAgICAgICAgIChkLCBwb2ludCwgaW5kZXgpID0+XG4gICAgICAgICAgICAgICAgaW5kZXggPyBgJHtkfSAke3R1aURyYXcodmFsdWUsIGluZGV4LCBzbW9vdGhpbmdGYWN0b3IpfWAgOiBgTSAke3BvaW50fWAsXG4gICAgICAgICAgICAnJyxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbXB1dGVXaWR0aChpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGluZGV4ID09PSB0aGlzLnZhbHVlLmxlbmd0aCAtIDFcbiAgICAgICAgICAgID8gMiAqICh0aGlzLnZhbHVlW2luZGV4XVswXSAtIHRoaXMuZ2V0WChpbmRleCkpXG4gICAgICAgICAgICA6IHRoaXMuZ2V0WChpbmRleCArIDEpIC0gdGhpcy5nZXRYKGluZGV4KTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICp0dWlMZXQ9XCJob3ZlcmVkJCB8IGFzeW5jIGFzIGhvdmVyZWRcIj5cbiAgICA8c3ZnXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89XCJub25lXCJcbiAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwJVwiXG4gICAgICAgIGNsYXNzPVwidC1zdmdcIlxuICAgICAgICBbYXR0ci52aWV3Qm94XT1cInZpZXdCb3hcIlxuICAgID5cbiAgICAgICAgPGRlZnM+XG4gICAgICAgICAgICA8bGluZWFyR3JhZGllbnRcbiAgICAgICAgICAgICAgICB4MT1cIjBcIlxuICAgICAgICAgICAgICAgIHgyPVwiMFwiXG4gICAgICAgICAgICAgICAgeTE9XCIxXCJcbiAgICAgICAgICAgICAgICB5Mj1cIjBcIlxuICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImZpbGxJZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHN0b3BcbiAgICAgICAgICAgICAgICAgICAgc3RvcC1jb2xvcj1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldD1cIjAlXCJcbiAgICAgICAgICAgICAgICAgICAgc3RvcC1vcGFjaXR5PVwiMC41XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxzdG9wXG4gICAgICAgICAgICAgICAgICAgIHN0b3AtY29sb3I9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQ9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgc3RvcC1vcGFjaXR5PVwiMFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+XG4gICAgICAgIDwvZGVmcz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIHN0cm9rZT1cIm5vbmVcIlxuICAgICAgICAgICAgW2F0dHIuZmlsbF09XCJmaWxsXCJcbiAgICAgICAgICAgIFthdHRyLmRdPVwiZmlsbERcIlxuICAgICAgICAvPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgIHZlY3Rvci1lZmZlY3Q9XCJub24tc2NhbGluZy1zdHJva2VcIlxuICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXG4gICAgICAgICAgICBbYXR0ci5kXT1cImRcIlxuICAgICAgICAvPlxuICAgIDwvc3ZnPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkb3RzXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwb2ludCBvZiB2YWx1ZVwiXG4gICAgICAgICAgICBjbGFzcz1cInQtZG90XCJcbiAgICAgICAgICAgIFtzdHlsZS5sZWZ0LiVdPVwiZ2V0TGVmdChwb2ludFswXSlcIlxuICAgICAgICAgICAgW3N0eWxlLmJvdHRvbS4lXT1cImdldEJvdHRvbShwb2ludFsxXSlcIlxuICAgICAgICA+PC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0hpbnRzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHBvaW50IG9mIHZhbHVlOyBsZXQgaW5kZXggPSBpbmRleFwiPlxuICAgICAgICAgICAgPCEtLSBUT0RPOiBGaXggaGludCB0eXBlIC0tPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwidmFsdWUubGVuZ3RoID4gMSB8fCBkb3RzXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInQtY29sdW1uXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MudC1jb2x1bW5faG92ZXJlZF09XCJob3ZlcmVkID09PSBpbmRleFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnQtY29sdW1uX2hpbnRfaG92ZXJlZF09XCJkcml2ZXJzLmdldChpbmRleCkgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgW3R1aUhpbnRIb3N0XT1cImhpbnRIb3N0XCJcbiAgICAgICAgICAgICAgICBbdHVpSGludF09XCIkYW55KGhpbnREaXJlY3RpdmU/LmhpbnQgfHwgaGludENvbnRlbnQpXCJcbiAgICAgICAgICAgICAgICBbdHVpSGludENvbnRleHRdPVwiZ2V0Q29udGVudENvbnRleHQocG9pbnQsIGluZGV4KVwiXG4gICAgICAgICAgICAgICAgW3R1aUhpbnREZXNjcmliZV09XCJnZXRIaW50SWQoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUubGVmdC4lXT1cImdldExlZnQoZ2V0WChpbmRleCkpXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGguJV09XCJnZXRXaWR0aChpbmRleClcIlxuICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cIm9uTW91c2VFbnRlcihpbmRleClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWxpbmUgdC1saW5lX3ZlcnRpY2FsXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQuJV09XCJnZXRPZmZzZXQoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAjaGludEhvc3RcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWhvc3RcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUubGVmdC4lXT1cImdldE9mZnNldChpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuYm90dG9tLiVdPVwiZ2V0Qm90dG9tKHBvaW50WzFdKVwiXG4gICAgICAgICAgICAgICAgICAgIFt0dWlGb2N1c2FibGVdPVwiaXNGb2N1c2FibGVcIlxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZ2V0SGludElkKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc0ZvY3VzYWJsZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWxpbmUgdC1saW5lX2hvcml6b250YWxcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5ib3R0b20uJV09XCJnZXRCb3R0b20ocG9pbnRbMV0pXCJcbiAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdldEhvdmVyZWQoaG92ZXJlZCkgYXMgcG9pbnRcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJ4U3RyaW5naWZ5XCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1oaW50IHQtaGludF94XCJcbiAgICAgICAgICAgIFtzdHlsZS5sZWZ0LiVdPVwiZ2V0TGVmdChwb2ludFswXSlcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyB4U3RyaW5naWZ5KHBvaW50WzBdKSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJ5U3RyaW5naWZ5XCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1oaW50IHQtaGludF95XCJcbiAgICAgICAgICAgIFtzdHlsZS5ib3R0b20uJV09XCJnZXRCb3R0b20ocG9pbnRbMV0pXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgeVN0cmluZ2lmeShwb2ludFsxXSkgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { ChangeDetectionStrategy, Component, HostBinding, Inject, Input, NgZone, Optional, Self, ViewChildren, } from '@angular/core';
3
3
  import { TUI_LINE_CHART_OPTIONS, TuiLineChartComponent, tuiLineChartDrivers, TuiLineChartHintDirective, } from '@taiga-ui/addon-charts/components/line-chart';
4
- import { EMPTY_ARRAY, EMPTY_QUERY, TuiDay, tuiDefaultProp, TuiDestroyService, TuiHoveredService, tuiIsNumber, tuiIsPresent, TuiMonth, tuiPure, tuiZonefree, } from '@taiga-ui/cdk';
4
+ import { EMPTY_ARRAY, EMPTY_QUERY, TuiDay, TuiDestroyService, TuiHoveredService, tuiIsNumber, tuiIsPresent, TuiMonth, tuiPure, tuiZonefree, } from '@taiga-ui/cdk';
5
5
  import { combineLatest } from 'rxjs';
6
6
  import { filter, takeUntil } from 'rxjs/operators';
7
7
  import { TuiLineDaysChartHintDirective } from './line-days-chart-hint.directive';
@@ -137,27 +137,6 @@ TuiLineDaysChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
137
137
  useExisting: TuiLineDaysChartComponent,
138
138
  },
139
139
  ], viewQueries: [{ propertyName: "charts", predicate: TuiLineChartComponent, descendants: true }], ngImport: i0, template: "<tui-line-chart\n *ngFor=\"let month of months; let first = first\"\n class=\"t-chart\"\n [style.zIndex]=\"zIndex\"\n [dots]=\"dots\"\n [x]=\"first ? 0 : getX(month[0][0])\"\n [y]=\"y\"\n [width]=\"first ? firstWidth : getWidth(month[0][0])\"\n [height]=\"height\"\n [value]=\"month\"\n [smoothingFactor]=\"smoothingFactor\"\n [tuiHintContent]=\"hintContent ? hint : ''\"\n [yStringify]=\"yStringify\"\n [xStringify]=\"xStringify ? daysStringify : null\"\n></tui-line-chart>\n<ng-template\n #hint\n let-point\n>\n <ng-container *polymorpheusOutlet=\"hintContent as text; context: getHintContext(point[0], value)\">\n {{ text }}\n </ng-container>\n</ng-template>\n", styles: [":host{display:block}.t-chart{position:absolute;top:0;left:0;width:100%;height:100%}\n"], components: [{ type: i1.TuiLineChartComponent, selector: "tui-line-chart", inputs: ["value", "x", "y", "width", "height", "smoothingFactor", "xStringify", "yStringify", "filled", "dots"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.TuiHintOptionsDirective, selector: "[tuiHintContent]", inputs: ["tuiHintContent", "tuiHintDirection", "tuiHintAppearance", "tuiHintShowDelay", "tuiHintHideDelay"] }, { type: i4.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
140
- __decorate([
141
- tuiDefaultProp()
142
- ], TuiLineDaysChartComponent.prototype, "valueSetter", null);
143
- __decorate([
144
- tuiDefaultProp()
145
- ], TuiLineDaysChartComponent.prototype, "y", void 0);
146
- __decorate([
147
- tuiDefaultProp()
148
- ], TuiLineDaysChartComponent.prototype, "height", void 0);
149
- __decorate([
150
- tuiDefaultProp()
151
- ], TuiLineDaysChartComponent.prototype, "smoothingFactor", void 0);
152
- __decorate([
153
- tuiDefaultProp()
154
- ], TuiLineDaysChartComponent.prototype, "xStringify", void 0);
155
- __decorate([
156
- tuiDefaultProp()
157
- ], TuiLineDaysChartComponent.prototype, "yStringify", void 0);
158
- __decorate([
159
- tuiDefaultProp()
160
- ], TuiLineDaysChartComponent.prototype, "dots", void 0);
161
140
  __decorate([
162
141
  tuiPure
163
142
  ], TuiLineDaysChartComponent.prototype, "getHintContext", null);
@@ -223,4 +202,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
223
202
  type: HostBinding,
224
203
  args: ['style.zIndex']
225
204
  }], getHintContext: [], breakMonths: [] } });
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1kYXlzLWNoYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLWNoYXJ0cy9jb21wb25lbnRzL2xpbmUtZGF5cy1jaGFydC9saW5lLWRheXMtY2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tY2hhcnRzL2NvbXBvbmVudHMvbGluZS1kYXlzLWNoYXJ0L2xpbmUtZGF5cy1jaGFydC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sUUFBUSxFQUVSLElBQUksRUFDSixZQUFZLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLHlCQUF5QixHQUU1QixNQUFNLDhDQUE4QyxDQUFDO0FBQ3RELE9BQU8sRUFDSCxXQUFXLEVBQ1gsV0FBVyxFQUVYLE1BQU0sRUFDTixjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsWUFBWSxFQUNaLFFBQVEsRUFDUixPQUFPLEVBRVAsV0FBVyxHQUNkLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBQyxhQUFhLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7O0FBRS9FLE1BQU0sS0FBSyxHQUFhLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBZ0JuQyxNQUFNLE9BQU8seUJBQXlCO0lBMERsQyxZQUdxQixhQUFtRCxFQUNoQixRQUEy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c0JBRFYsS0FBSztnQkFLTixVQUFVO3NCQUZULEtBQUs7Z0JBTU4sVUFBVTtzQkFGVCxLQUFLO2dCQU1OLElBQUk7c0JBRkgsS0FBSztnQkFLTixNQUFNO3NCQURMLFdBQVc7dUJBQUMsY0FBYztnQkE4QjNCLGNBQWMsTUErRU4sV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPcHRpb25hbCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBUVUlfTElORV9DSEFSVF9PUFRJT05TLFxuICAgIFR1aUxpbmVDaGFydENvbXBvbmVudCxcbiAgICB0dWlMaW5lQ2hhcnREcml2ZXJzLFxuICAgIFR1aUxpbmVDaGFydEhpbnREaXJlY3RpdmUsXG4gICAgVHVpTGluZUNoYXJ0T3B0aW9ucyxcbn0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWNoYXJ0cy9jb21wb25lbnRzL2xpbmUtY2hhcnQnO1xuaW1wb3J0IHtcbiAgICBFTVBUWV9BUlJBWSxcbiAgICBFTVBUWV9RVUVSWSxcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIFR1aURheSxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlEZXN0cm95U2VydmljZSxcbiAgICBUdWlIb3ZlcmVkU2VydmljZSxcbiAgICB0dWlJc051bWJlcixcbiAgICB0dWlJc1ByZXNlbnQsXG4gICAgVHVpTW9udGgsXG4gICAgdHVpUHVyZSxcbiAgICBUdWlTdHJpbmdIYW5kbGVyLFxuICAgIHR1aVpvbmVmcmVlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpUG9pbnR9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpbHRlciwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7VHVpTGluZURheXNDaGFydEhpbnREaXJlY3RpdmV9IGZyb20gJy4vbGluZS1kYXlzLWNoYXJ0LWhpbnQuZGlyZWN0aXZlJztcblxuY29uc3QgRFVNTVk6IFR1aVBvaW50ID0gW05hTiwgTmFOXTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktbGluZS1kYXlzLWNoYXJ0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGluZS1kYXlzLWNoYXJ0LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2xpbmUtZGF5cy1jaGFydC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgICAgICBUdWlIb3ZlcmVkU2VydmljZSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVHVpTGluZUNoYXJ0SGludERpcmVjdGl2ZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBUdWlMaW5lRGF5c0NoYXJ0Q29tcG9uZW50LFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUxpbmVEYXlzQ2hhcnRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBAVmlld0NoaWxkcmVuKFR1aUxpbmVDaGFydENvbXBvbmVudClcbiAgICByZWFkb25seSBjaGFydHM6IFF1ZXJ5TGlzdDxUdWlMaW5lQ2hhcnRDb21wb25lbnQ+ID0gRU1QVFlfUVVFUlk7XG5cbiAgICBASW5wdXQoJ3ZhbHVlJylcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNldCB2YWx1ZVNldHRlcih2YWx1ZTogUmVhZG9ubHlBcnJheTxbVHVpRGF5LCBudW1iZXJdPikge1xuICAgICAgICBpZiAoIXZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IFtdO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdGFydCA9IHZhbHVlWzBdWzBdO1xuICAgICAgICBjb25zdCBtdXRhYmxlID0gWy4uLnZhbHVlXTtcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gVHVpRGF5Lmxlbmd0aEJldHdlZW4oc3RhcnQsIHZhbHVlW3ZhbHVlLmxlbmd0aCAtIDFdWzBdKSArIDE7XG5cbiAgICAgICAgdGhpcy52YWx1ZSA9IEFycmF5LmZyb20oe2xlbmd0aH0sIChfLCBkYXkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnREYXkgPSBzdGFydC5hcHBlbmQoe2RheX0pO1xuICAgICAgICAgICAgY29uc3Qgc2hpZnRlZCA9IGN1cnJlbnREYXkuZGF5U2FtZShtdXRhYmxlWzBdWzBdKSA/IG11dGFibGUuc2hpZnQoKSA6IG51bGw7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBzaGlmdGVkID8gc2hpZnRlZFsxXSA6IE5hTjtcblxuICAgICAgICAgICAgcmV0dXJuIFtjdXJyZW50RGF5LCBjdXJyZW50VmFsdWVdIGFzIFtUdWlEYXksIG51bWJlcl07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICB5ID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBoZWlnaHQgPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNtb290aGluZ0ZhY3RvciA9IHRoaXMub3B0aW9ucy5zbW9vdGhpbmdGYWN0b3I7XG5cbiAgICBASW5wdXQoKVxuICAgIGhpbnRDb250ZW50OiBQb2x5bW9ycGhldXNDb250ZW50PFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8W1R1aURheSwgbnVtYmVyXT4+O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHhTdHJpbmdpZnk6IFR1aVN0cmluZ0hhbmRsZXI8VHVpRGF5PiB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHlTdHJpbmdpZnk6IFR1aVN0cmluZ0hhbmRsZXI8bnVtYmVyPiB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRvdHMgPSB0aGlzLm9wdGlvbnMuZG90cztcblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuekluZGV4JylcbiAgICB6SW5kZXggPSAwO1xuXG4gICAgdmFsdWU6IFJlYWRvbmx5QXJyYXk8W1R1aURheSwgbnVtYmVyXT4gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFR1aUxpbmVEYXlzQ2hhcnRIaW50RGlyZWN0aXZlKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGhpbnREaXJlY3RpdmU6IFR1aUxpbmVEYXlzQ2hhcnRIaW50RGlyZWN0aXZlIHwgbnVsbCxcbiAgICAgICAgQFNlbGYoKSBASW5qZWN0KFR1aURlc3Ryb3lTZXJ2aWNlKSBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkOiBUdWlEZXN0cm95U2VydmljZSxcbiAgICAgICAgQEluamVjdChOZ1pvbmUpIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIEBJbmplY3QoVHVpSG92ZXJlZFNlcnZpY2UpIHByaXZhdGUgcmVhZG9ubHkgaG92ZXJlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4sXG4gICAgICAgIEBJbmplY3QoVFVJX0xJTkVfQ0hBUlRfT1BUSU9OUykgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBUdWlMaW5lQ2hhcnRPcHRpb25zLFxuICAgICkge31cblxuICAgIGdldCBtb250aHMoKTogUmVhZG9ubHlBcnJheTxyZWFkb25seSBUdWlQb2ludFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlLmxlbmd0aCA/IHRoaXMuYnJlYWtNb250aHModGhpcy52YWx1ZSkgOiBFTVBUWV9BUlJBWTtcbiAgICB9XG5cbiAgICBnZXQgZmlyc3RXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5tb250aHMubGVuZ3RoICogdGhpcy52YWx1ZVswXVswXS5kYXlzQ291bnQ7XG4gICAgfVxuXG4gICAgZ2V0IGhpbnQoKTpcbiAgICAgICAgfCBQb2x5bW9ycGhldXNDb250ZW50PFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8W1R1aURheSwgbnVtYmVyXT4+XG4gICAgICAgIHwgUG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0V2l0aEltcGxpY2l0PHJlYWRvbmx5IFR1aVBvaW50W10+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhpbnREaXJlY3RpdmU/LmhpbnQgPz8gdGhpcy5oaW50Q29udGVudDtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIGdldEhpbnRDb250ZXh0KFxuICAgICAgICB4OiBudW1iZXIsXG4gICAgICAgIHZhbHVlOiBSZWFkb25seUFycmF5PFtUdWlEYXksIG51bWJlcl0+LFxuICAgICk6IFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8W1R1aURheSwgbnVtYmVyXT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJGltcGxpY2l0OiB2YWx1ZVt4IC0gdmFsdWVbMF1bMF0uZGF5ICsgMV0sXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBjb21iaW5lTGF0ZXN0KFt0dWlMaW5lQ2hhcnREcml2ZXJzKHRoaXMuY2hhcnRzKSwgdGhpcy5ob3ZlcmVkJF0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIocmVzdWx0ID0+ICFyZXN1bHQuc29tZShCb29sZWFuKSksXG4gICAgICAgICAgICAgICAgdHVpWm9uZWZyZWUodGhpcy5uZ1pvbmUpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub25Ib3ZlcmVkKE5hTik7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZWFkb25seSBkYXlzU3RyaW5naWZ5OiBUdWlTdHJpbmdIYW5kbGVyPG51bWJlcj4gPSBpbmRleCA9PlxuICAgICAgICB0aGlzLnhTdHJpbmdpZnkgPyB0aGlzLnhTdHJpbmdpZnkodGhpcy5nZXREYXkoaW5kZXgpKSA6ICcnO1xuXG4gICAgZ2V0WChpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgY3VycmVudCA9IHRoaXMuZ2V0RGF5KGluZGV4KTtcbiAgICAgICAgY29uc3QgbW9udGhzID0gVHVpTW9udGgubGVuZ3RoQmV0d2Vlbih0aGlzLnZhbHVlWzBdWzBdLCBjdXJyZW50KTtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gbW9udGhzICogY3VycmVudC5kYXlzQ291bnQ7XG5cbiAgICAgICAgcmV0dXJuIGluZGV4IC0gb2Zmc2V0O1xuICAgIH1cblxuICAgIG9uSG92ZXJlZChkYXk6IFR1aURheSB8IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodHVpSXNOdW1iZXIoZGF5KSkge1xuICAgICAgICAgICAgdGhpcy5jaGFydHMuZm9yRWFjaChjaGFydCA9PiBjaGFydC5vbkhvdmVyZWQoTmFOKSk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGluZGV4ID0gVHVpTW9udGgubGVuZ3RoQmV0d2Vlbih0aGlzLnZhbHVlWzBdWzBdLCBkYXkpO1xuICAgICAgICBjb25zdCB4ID0gVHVpRGF5Lmxlbmd0aEJldHdlZW4odGhpcy52YWx1ZVswXVswXSwgZGF5KSArIHRoaXMudmFsdWVbMF1bMF0uZGF5IC0gMTtcbiAgICAgICAgY29uc3QgY3VycmVudCA9IHRoaXMuY2hhcnRzLmdldChpbmRleCk7XG5cbiAgICAgICAgdGhpcy5jaGFydHMuZm9yRWFjaChjaGFydCA9PiB7XG4gICAgICAgICAgICBpZiAoY2hhcnQgPT09IGN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50Lm9uSG92ZXJlZChjdXJyZW50LnZhbHVlLmZpbmRJbmRleChwb2ludCA9PiBwb2ludFswXSA9PT0geCkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjaGFydC5vbkhvdmVyZWQoTmFOKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmFpc2UoaW5kZXg6IG51bWJlciwge3ZhbHVlfTogVHVpTGluZUNoYXJ0Q29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHggPSB2YWx1ZVtpbmRleF1bMF07XG4gICAgICAgIGNvbnN0IG1vbnRoID0gdGhpcy5nZXREYXkoeCk7XG5cbiAgICAgICAgaWYgKHRoaXMuaGludERpcmVjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5oaW50RGlyZWN0aXZlLnJhaXNlKG1vbnRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub25Ib3ZlcmVkKG1vbnRoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFdpZHRoKGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXREYXkoaW5kZXgpLmRheXNDb3VudCAqIHRoaXMubW9udGhzLmxlbmd0aDtcbiAgICB9XG5cbiAgICBnZXRDb250ZXh0KFxuICAgICAgICBpbmRleDogbnVtYmVyLFxuICAgICAgICB7dmFsdWV9OiBUdWlMaW5lQ2hhcnRDb21wb25lbnQsXG4gICAgKTogVHVpQ29udGV4dFdpdGhJbXBsaWNpdDx1bmtub3duPiB7XG4gICAgICAgIGNvbnN0IHggPSB2YWx1ZVtpbmRleF1bMF07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaGludERpcmVjdGl2ZVxuICAgICAgICAgICAgPyB0aGlzLmhpbnREaXJlY3RpdmUuZ2V0Q29udGV4dCh0aGlzLmdldERheSh4KSlcbiAgICAgICAgICAgIDogdGhpcy5nZXRIaW50Q29udGV4dCh4LCB0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgYnJlYWtNb250aHMoXG4gICAgICAgIHZhbHVlOiBSZWFkb25seUFycmF5PFtUdWlEYXksIG51bWJlcl0+LFxuICAgICk6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVHVpUG9pbnRbXT4ge1xuICAgICAgICBjb25zdCBvZmZzZXQgPSB2YWx1ZVswXVswXS5kYXkgLSAxO1xuXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKFxuICAgICAgICAgICAge2xlbmd0aDogVHVpTW9udGgubGVuZ3RoQmV0d2Vlbih2YWx1ZVswXVswXSwgdmFsdWVbdmFsdWUubGVuZ3RoIC0gMV1bMF0pICsgMX0sXG4gICAgICAgICAgICAoXywgaSkgPT4gaSArIHZhbHVlWzBdWzBdLm1vbnRoICsgdmFsdWVbMF1bMF0ueWVhciAqIDEyLFxuICAgICAgICApXG4gICAgICAgICAgICAubWFwKGFic29sdXRlTW9udGggPT5cbiAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAubWFwPFR1aVBvaW50IHwgbnVsbD4oKFt7bW9udGgsIHllYXJ9LCB5XSwgaW5kZXgpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBtb250aCArIHllYXIgKiAxMiA9PT0gYWJzb2x1dGVNb250aCA/IFtpbmRleCArIG9mZnNldCwgeV0gOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIodHVpSXNQcmVzZW50KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5tYXAoKG1vbnRoLCBpbmRleCwgYXJyYXkpID0+XG4gICAgICAgICAgICAgICAgaW5kZXggPT09IGFycmF5Lmxlbmd0aCAtIDFcbiAgICAgICAgICAgICAgICAgICAgPyBtb250aFxuICAgICAgICAgICAgICAgICAgICA6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ubW9udGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5W2luZGV4ICsgMV0uZmluZChkYXkgPT4gIU51bWJlci5pc05hTihkYXlbMV0pKSB8fCBEVU1NWSxcbiAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERheShpbmRleDogbnVtYmVyKTogVHVpRGF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVbaW5kZXggLSB0aGlzLnZhbHVlWzBdWzBdLmRheSArIDFdWzBdO1xuICAgIH1cbn1cbiIsIjx0dWktbGluZS1jaGFydFxuICAgICpuZ0Zvcj1cImxldCBtb250aCBvZiBtb250aHM7IGxldCBmaXJzdCA9IGZpcnN0XCJcbiAgICBjbGFzcz1cInQtY2hhcnRcIlxuICAgIFtzdHlsZS56SW5kZXhdPVwiekluZGV4XCJcbiAgICBbZG90c109XCJkb3RzXCJcbiAgICBbeF09XCJmaXJzdCA/IDAgOiBnZXRYKG1vbnRoWzBdWzBdKVwiXG4gICAgW3ldPVwieVwiXG4gICAgW3dpZHRoXT1cImZpcnN0ID8gZmlyc3RXaWR0aCA6IGdldFdpZHRoKG1vbnRoWzBdWzBdKVwiXG4gICAgW2hlaWdodF09XCJoZWlnaHRcIlxuICAgIFt2YWx1ZV09XCJtb250aFwiXG4gICAgW3Ntb290aGluZ0ZhY3Rvcl09XCJzbW9vdGhpbmdGYWN0b3JcIlxuICAgIFt0dWlIaW50Q29udGVudF09XCJoaW50Q29udGVudCA/IGhpbnQgOiAnJ1wiXG4gICAgW3lTdHJpbmdpZnldPVwieVN0cmluZ2lmeVwiXG4gICAgW3hTdHJpbmdpZnldPVwieFN0cmluZ2lmeSA/IGRheXNTdHJpbmdpZnkgOiBudWxsXCJcbj48L3R1aS1saW5lLWNoYXJ0PlxuPG5nLXRlbXBsYXRlXG4gICAgI2hpbnRcbiAgICBsZXQtcG9pbnRcbj5cbiAgICA8bmctY29udGFpbmVyICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJoaW50Q29udGVudCBhcyB0ZXh0OyBjb250ZXh0OiBnZXRIaW50Q29udGV4dChwb2ludFswXSwgdmFsdWUpXCI+XG4gICAgICAgIHt7IHRleHQgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1kYXlzLWNoYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLWNoYXJ0cy9jb21wb25lbnRzL2xpbmUtZGF5cy1jaGFydC9saW5lLWRheXMtY2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tY2hhcnRzL2NvbXBvbmVudHMvbGluZS1kYXlzLWNoYXJ0L2xpbmUtZGF5cy1jaGFydC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sUUFBUSxFQUVSLElBQUksRUFDSixZQUFZLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLHlCQUF5QixHQUU1QixNQUFNLDhDQUE4QyxDQUFDO0FBQ3RELE9BQU8sRUFDSCxXQUFXLEVBQ1gsV0FBVyxFQUVYLE1BQU0sRUFDTixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWCxZQUFZLEVBQ1osUUFBUSxFQUNSLE9BQU8sRUFFUCxXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFDLGFBQWEsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7QUFFL0UsTUFBTSxLQUFLLEdBQWEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFnQm5DLE1BQU0sT0FBTyx5QkFBeUI7SUFtRGxDLFlBR3FCLGFBQW1ELEVBQ2hCLFFBQTJCLEVBQzlDLE1B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blN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9wdGlvbmFsLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIFRVSV9MSU5FX0NIQVJUX09QVElPTlMsXG4gICAgVHVpTGluZUNoYXJ0Q29tcG9uZW50LFxuICAgIHR1aUxpbmVDaGFydERyaXZlcnMsXG4gICAgVHVpTGluZUNoYXJ0SGludERpcmVjdGl2ZSxcbiAgICBUdWlMaW5lQ2hhcnRPcHRpb25zLFxufSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tY2hhcnRzL2NvbXBvbmVudHMvbGluZS1jaGFydCc7XG5pbXBvcnQge1xuICAgIEVNUFRZX0FSUkFZLFxuICAgIEVNUFRZX1FVRVJZLFxuICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQsXG4gICAgVHVpRGF5LFxuICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgIFR1aUhvdmVyZWRTZXJ2aWNlLFxuICAgIHR1aUlzTnVtYmVyLFxuICAgIHR1aUlzUHJlc2VudCxcbiAgICBUdWlNb250aCxcbiAgICB0dWlQdXJlLFxuICAgIFR1aVN0cmluZ0hhbmRsZXIsXG4gICAgdHVpWm9uZWZyZWUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUdWlQb2ludH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmlsdGVyLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtUdWlMaW5lRGF5c0NoYXJ0SGludERpcmVjdGl2ZX0gZnJvbSAnLi9saW5lLWRheXMtY2hhcnQtaGludC5kaXJlY3RpdmUnO1xuXG5jb25zdCBEVU1NWTogVHVpUG9pbnQgPSBbTmFOLCBOYU5dO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1saW5lLWRheXMtY2hhcnQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9saW5lLWRheXMtY2hhcnQudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGluZS1kYXlzLWNoYXJ0LnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgVHVpRGVzdHJveVNlcnZpY2UsXG4gICAgICAgIFR1aUhvdmVyZWRTZXJ2aWNlLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUdWlMaW5lQ2hhcnRIaW50RGlyZWN0aXZlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFR1aUxpbmVEYXlzQ2hhcnRDb21wb25lbnQsXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpTGluZURheXNDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIEBWaWV3Q2hpbGRyZW4oVHVpTGluZUNoYXJ0Q29tcG9uZW50KVxuICAgIHJlYWRvbmx5IGNoYXJ0czogUXVlcnlMaXN0PFR1aUxpbmVDaGFydENvbXBvbmVudD4gPSBFTVBUWV9RVUVSWTtcblxuICAgIEBJbnB1dCgndmFsdWUnKVxuICAgIHNldCB2YWx1ZVNldHRlcih2YWx1ZTogUmVhZG9ubHlBcnJheTxbVHVpRGF5LCBudW1iZXJdPikge1xuICAgICAgICBpZiAoIXZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IFtdO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdGFydCA9IHZhbHVlWzBdWzBdO1xuICAgICAgICBjb25zdCBtdXRhYmxlID0gWy4uLnZhbHVlXTtcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gVHVpRGF5Lmxlbmd0aEJldHdlZW4oc3RhcnQsIHZhbHVlW3ZhbHVlLmxlbmd0aCAtIDFdWzBdKSArIDE7XG5cbiAgICAgICAgdGhpcy52YWx1ZSA9IEFycmF5LmZyb20oe2xlbmd0aH0sIChfLCBkYXkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnREYXkgPSBzdGFydC5hcHBlbmQoe2RheX0pO1xuICAgICAgICAgICAgY29uc3Qgc2hpZnRlZCA9IGN1cnJlbnREYXkuZGF5U2FtZShtdXRhYmxlWzBdWzBdKSA/IG11dGFibGUuc2hpZnQoKSA6IG51bGw7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBzaGlmdGVkID8gc2hpZnRlZFsxXSA6IE5hTjtcblxuICAgICAgICAgICAgcmV0dXJuIFtjdXJyZW50RGF5LCBjdXJyZW50VmFsdWVdIGFzIFtUdWlEYXksIG51bWJlcl07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgeSA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIGhlaWdodCA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIHNtb290aGluZ0ZhY3RvciA9IHRoaXMub3B0aW9ucy5zbW9vdGhpbmdGYWN0b3I7XG5cbiAgICBASW5wdXQoKVxuICAgIGhpbnRDb250ZW50OiBQb2x5bW9ycGhldXNDb250ZW50PFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8W1R1aURheSwgbnVtYmVyXT4+O1xuXG4gICAgQElucHV0KClcbiAgICB4U3RyaW5naWZ5OiBUdWlTdHJpbmdIYW5kbGVyPFR1aURheT4gfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgeVN0cmluZ2lmeTogVHVpU3RyaW5nSGFuZGxlcjxudW1iZXI+IHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIGRvdHMgPSB0aGlzLm9wdGlvbnMuZG90cztcblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuekluZGV4JylcbiAgICB6SW5kZXggPSAwO1xuXG4gICAgdmFsdWU6IFJlYWRvbmx5QXJyYXk8W1R1aURheSwgbnVtYmVyXT4gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFR1aUxpbmVEYXlzQ2hhcnRIaW50RGlyZWN0aXZlKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGhpbnREaXJlY3RpdmU6IFR1aUxpbmVEYXlzQ2hhcnRIaW50RGlyZWN0aXZlIHwgbnVsbCxcbiAgICAgICAgQFNlbGYoKSBASW5qZWN0KFR1aURlc3Ryb3lTZXJ2aWNlKSBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkOiBUdWlEZXN0cm95U2VydmljZSxcbiAgICAgICAgQEluamVjdChOZ1pvbmUpIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIEBJbmplY3QoVHVpSG92ZXJlZFNlcnZpY2UpIHByaXZhdGUgcmVhZG9ubHkgaG92ZXJlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4sXG4gICAgICAgIEBJbmplY3QoVFVJX0xJTkVfQ0hBUlRfT1BUSU9OUykgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBUdWlMaW5lQ2hhcnRPcHRpb25zLFxuICAgICkge31cblxuICAgIGdldCBtb250aHMoKTogUmVhZG9ubHlBcnJheTxyZWFkb25seSBUdWlQb2ludFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlLmxlbmd0aCA/IHRoaXMuYnJlYWtNb250aHModGhpcy52YWx1ZSkgOiBFTVBUWV9BUlJBWTtcbiAgICB9XG5cbiAgICBnZXQgZmlyc3RXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5tb250aHMubGVuZ3RoICogdGhpcy52YWx1ZVswXVswXS5kYXlzQ291bnQ7XG4gICAgfVxuXG4gICAgZ2V0IGhpbnQoKTpcbiAgICAgICAgfCBQb2x5bW9ycGhldXNDb250ZW50PFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8W1R1aURheSwgbnVtYmVyXT4+XG4gICAgICAgIHwgUG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0V2l0aEltcGxpY2l0PHJlYWRvbmx5IFR1aVBvaW50W10+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhpbnREaXJlY3RpdmU/LmhpbnQgPz8gdGhpcy5oaW50Q29udGVudDtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIGdldEhpbnRDb250ZXh0KFxuICAgICAgICB4OiBudW1iZXIsXG4gICAgICAgIHZhbHVlOiBSZWFkb25seUFycmF5PFtUdWlEYXksIG51bWJlcl0+LFxuICAgICk6IFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8W1R1aURheSwgbnVtYmVyXT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJGltcGxpY2l0OiB2YWx1ZVt4IC0gdmFsdWVbMF1bMF0uZGF5ICsgMV0sXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBjb21iaW5lTGF0ZXN0KFt0dWlMaW5lQ2hhcnREcml2ZXJzKHRoaXMuY2hhcnRzKSwgdGhpcy5ob3ZlcmVkJF0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIocmVzdWx0ID0+ICFyZXN1bHQuc29tZShCb29sZWFuKSksXG4gICAgICAgICAgICAgICAgdHVpWm9uZWZyZWUodGhpcy5uZ1pvbmUpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub25Ib3ZlcmVkKE5hTik7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZWFkb25seSBkYXlzU3RyaW5naWZ5OiBUdWlTdHJpbmdIYW5kbGVyPG51bWJlcj4gPSBpbmRleCA9PlxuICAgICAgICB0aGlzLnhTdHJpbmdpZnkgPyB0aGlzLnhTdHJpbmdpZnkodGhpcy5nZXREYXkoaW5kZXgpKSA6ICcnO1xuXG4gICAgZ2V0WChpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgY3VycmVudCA9IHRoaXMuZ2V0RGF5KGluZGV4KTtcbiAgICAgICAgY29uc3QgbW9udGhzID0gVHVpTW9udGgubGVuZ3RoQmV0d2Vlbih0aGlzLnZhbHVlWzBdWzBdLCBjdXJyZW50KTtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gbW9udGhzICogY3VycmVudC5kYXlzQ291bnQ7XG5cbiAgICAgICAgcmV0dXJuIGluZGV4IC0gb2Zmc2V0O1xuICAgIH1cblxuICAgIG9uSG92ZXJlZChkYXk6IFR1aURheSB8IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodHVpSXNOdW1iZXIoZGF5KSkge1xuICAgICAgICAgICAgdGhpcy5jaGFydHMuZm9yRWFjaChjaGFydCA9PiBjaGFydC5vbkhvdmVyZWQoTmFOKSk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGluZGV4ID0gVHVpTW9udGgubGVuZ3RoQmV0d2Vlbih0aGlzLnZhbHVlWzBdWzBdLCBkYXkpO1xuICAgICAgICBjb25zdCB4ID0gVHVpRGF5Lmxlbmd0aEJldHdlZW4odGhpcy52YWx1ZVswXVswXSwgZGF5KSArIHRoaXMudmFsdWVbMF1bMF0uZGF5IC0gMTtcbiAgICAgICAgY29uc3QgY3VycmVudCA9IHRoaXMuY2hhcnRzLmdldChpbmRleCk7XG5cbiAgICAgICAgdGhpcy5jaGFydHMuZm9yRWFjaChjaGFydCA9PiB7XG4gICAgICAgICAgICBpZiAoY2hhcnQgPT09IGN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50Lm9uSG92ZXJlZChjdXJyZW50LnZhbHVlLmZpbmRJbmRleChwb2ludCA9PiBwb2ludFswXSA9PT0geCkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjaGFydC5vbkhvdmVyZWQoTmFOKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmFpc2UoaW5kZXg6IG51bWJlciwge3ZhbHVlfTogVHVpTGluZUNoYXJ0Q29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHggPSB2YWx1ZVtpbmRleF1bMF07XG4gICAgICAgIGNvbnN0IG1vbnRoID0gdGhpcy5nZXREYXkoeCk7XG5cbiAgICAgICAgaWYgKHRoaXMuaGludERpcmVjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5oaW50RGlyZWN0aXZlLnJhaXNlKG1vbnRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub25Ib3ZlcmVkKG1vbnRoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFdpZHRoKGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXREYXkoaW5kZXgpLmRheXNDb3VudCAqIHRoaXMubW9udGhzLmxlbmd0aDtcbiAgICB9XG5cbiAgICBnZXRDb250ZXh0KFxuICAgICAgICBpbmRleDogbnVtYmVyLFxuICAgICAgICB7dmFsdWV9OiBUdWlMaW5lQ2hhcnRDb21wb25lbnQsXG4gICAgKTogVHVpQ29udGV4dFdpdGhJbXBsaWNpdDx1bmtub3duPiB7XG4gICAgICAgIGNvbnN0IHggPSB2YWx1ZVtpbmRleF1bMF07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaGludERpcmVjdGl2ZVxuICAgICAgICAgICAgPyB0aGlzLmhpbnREaXJlY3RpdmUuZ2V0Q29udGV4dCh0aGlzLmdldERheSh4KSlcbiAgICAgICAgICAgIDogdGhpcy5nZXRIaW50Q29udGV4dCh4LCB0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgYnJlYWtNb250aHMoXG4gICAgICAgIHZhbHVlOiBSZWFkb25seUFycmF5PFtUdWlEYXksIG51bWJlcl0+LFxuICAgICk6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVHVpUG9pbnRbXT4ge1xuICAgICAgICBjb25zdCBvZmZzZXQgPSB2YWx1ZVswXVswXS5kYXkgLSAxO1xuXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKFxuICAgICAgICAgICAge2xlbmd0aDogVHVpTW9udGgubGVuZ3RoQmV0d2Vlbih2YWx1ZVswXVswXSwgdmFsdWVbdmFsdWUubGVuZ3RoIC0gMV1bMF0pICsgMX0sXG4gICAgICAgICAgICAoXywgaSkgPT4gaSArIHZhbHVlWzBdWzBdLm1vbnRoICsgdmFsdWVbMF1bMF0ueWVhciAqIDEyLFxuICAgICAgICApXG4gICAgICAgICAgICAubWFwKGFic29sdXRlTW9udGggPT5cbiAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAubWFwPFR1aVBvaW50IHwgbnVsbD4oKFt7bW9udGgsIHllYXJ9LCB5XSwgaW5kZXgpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBtb250aCArIHllYXIgKiAxMiA9PT0gYWJzb2x1dGVNb250aCA/IFtpbmRleCArIG9mZnNldCwgeV0gOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIodHVpSXNQcmVzZW50KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5tYXAoKG1vbnRoLCBpbmRleCwgYXJyYXkpID0+XG4gICAgICAgICAgICAgICAgaW5kZXggPT09IGFycmF5Lmxlbmd0aCAtIDFcbiAgICAgICAgICAgICAgICAgICAgPyBtb250aFxuICAgICAgICAgICAgICAgICAgICA6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ubW9udGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5W2luZGV4ICsgMV0uZmluZChkYXkgPT4gIU51bWJlci5pc05hTihkYXlbMV0pKSB8fCBEVU1NWSxcbiAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERheShpbmRleDogbnVtYmVyKTogVHVpRGF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVbaW5kZXggLSB0aGlzLnZhbHVlWzBdWzBdLmRheSArIDFdWzBdO1xuICAgIH1cbn1cbiIsIjx0dWktbGluZS1jaGFydFxuICAgICpuZ0Zvcj1cImxldCBtb250aCBvZiBtb250aHM7IGxldCBmaXJzdCA9IGZpcnN0XCJcbiAgICBjbGFzcz1cInQtY2hhcnRcIlxuICAgIFtzdHlsZS56SW5kZXhdPVwiekluZGV4XCJcbiAgICBbZG90c109XCJkb3RzXCJcbiAgICBbeF09XCJmaXJzdCA/IDAgOiBnZXRYKG1vbnRoWzBdWzBdKVwiXG4gICAgW3ldPVwieVwiXG4gICAgW3dpZHRoXT1cImZpcnN0ID8gZmlyc3RXaWR0aCA6IGdldFdpZHRoKG1vbnRoWzBdWzBdKVwiXG4gICAgW2hlaWdodF09XCJoZWlnaHRcIlxuICAgIFt2YWx1ZV09XCJtb250aFwiXG4gICAgW3Ntb290aGluZ0ZhY3Rvcl09XCJzbW9vdGhpbmdGYWN0b3JcIlxuICAgIFt0dWlIaW50Q29udGVudF09XCJoaW50Q29udGVudCA/IGhpbnQgOiAnJ1wiXG4gICAgW3lTdHJpbmdpZnldPVwieVN0cmluZ2lmeVwiXG4gICAgW3hTdHJpbmdpZnldPVwieFN0cmluZ2lmeSA/IGRheXNTdHJpbmdpZnkgOiBudWxsXCJcbj48L3R1aS1saW5lLWNoYXJ0PlxuPG5nLXRlbXBsYXRlXG4gICAgI2hpbnRcbiAgICBsZXQtcG9pbnRcbj5cbiAgICA8bmctY29udGFpbmVyICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJoaW50Q29udGVudCBhcyB0ZXh0OyBjb250ZXh0OiBnZXRIaW50Q29udGV4dChwb2ludFswXSwgdmFsdWUpXCI+XG4gICAgICAgIHt7IHRleHQgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=